Rust implementation of the Microsoft Remote Desktop Protocol (RDP)
Find a file
2023-05-19 09:44:21 -04:00
.cargo refactor: re-organize workspace (#101) 2023-03-29 19:09:15 -04:00
.github ci: run fuzz jobs longer and in parallel 2023-05-10 13:58:53 -04:00
crates fix: change read_pdu to return BytesMut (#143) 2023-05-19 09:44:21 -04:00
fuzz fix(pdu): panic in mcs module found by fuzzing (#133) 2023-05-16 16:19:22 +00:00
web-client fix(web-client): paths to web crate and unsupported call (#128) 2023-05-11 16:00:04 +00:00
xtask test: organize integration tests into single crate 2023-05-11 19:41:11 -04:00
.gitignore chore(xtask): extend CLI options 2023-05-10 13:58:53 -04:00
ARCHITECTURE.md refactor: error handling 2023-05-15 23:45:22 -04:00
Cargo.lock fix: proprietary certificate public key extraction (#134) 2023-05-16 18:54:48 -04:00
Cargo.toml refactor: error handling 2023-05-15 23:45:22 -04:00
LICENSE-APACHE ironrdp: initial commit 2019-07-10 17:31:26 -04:00
LICENSE-MIT ironrdp: initial commit 2019-07-10 17:31:26 -04:00
README.md docs: update list of supported codecs 2023-05-10 13:58:53 -04:00
rust-toolchain.toml refactor: re-organize workspace (#101) 2023-03-29 19:09:15 -04:00
rustfmt.toml style: run cargo fmt 2022-04-15 13:39:34 -04:00
typos.toml fix: run typos check (#120) 2023-05-09 15:18:51 +00:00

IronRDP

A collection of Rust crates providing an implementation of the Microsoft Remote Desktop Protocol, with a focus on security.

Demonstration

https://user-images.githubusercontent.com/3809077/202049929-76f42471-aeb0-41da-9118-0dc6ea491bd2.mp4

Video Codec Support

Supported codecs:

  • Uncompressed raw bitmap
  • Interleaved Run-Length Encoding (RLE) Bitmap Codec
  • RDP 6.0 Bitmap Compression
  • Microsoft RemoteFX (RFX)

How to enable RemoteFX on server

Run the following PowerShell commands, and reboot.

Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'ColorDepth' -Type DWORD -Value 5
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services' -Name 'fEnableVirtualizedGraphics' -Type DWORD -Value 1

Alternatively, you may change a few group policies using gpedit.msc:

  1. Run gpedit.msc.

  2. Enable Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/RemoteFX for Windows Server 2008 R2/Configure RemoteFX

  3. Enable Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1

  4. Enable Computer Configuration/Administrative Templates/Windows Components/Remote Desktop Services/Remote Desktop Session Host/Remote Session Environment/Limit maximum color depth

  5. Reboot.

Architecture

See the ARCHITECTURE.md document.