Rust implementation of the Microsoft Remote Desktop Protocol (RDP)
Find a file
2023-08-15 10:50:00 -05:00
.cargo refactor: re-organize workspace (#101) 2023-03-29 19:09:15 -04:00
.github ci: wrong comparison operator for coverage diff (#176) 2023-08-15 10:50:00 -05:00
crates fix(web): detect errors when opening WebSocket (#173) 2023-08-11 17:04:08 -05:00
fuzz build(fuzz): fix build (#163) 2023-07-12 15:16:44 +00:00
web-client fix(web): detect errors when opening WebSocket (#173) 2023-08-11 17:04:08 -05:00
xtask ci: wrong comparison operator for coverage diff (#176) 2023-08-15 10:50:00 -05:00
.gitignore chore(xtask): extend CLI options 2023-05-10 13:58:53 -04:00
ARCHITECTURE.md ci: add web client check job 2023-05-23 08:31:19 -04:00
Cargo.lock chore(deps): bump sspi to 0.10.1 (#175) 2023-08-14 20:45:32 +00:00
Cargo.toml chore(deps): bump sspi to 0.10.1 (#175) 2023-08-14 20:45:32 +00: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 chore: fix xtask for windows (#150) 2023-06-14 22:16:24 +00:00
rustfmt.toml style: run cargo fmt 2022-04-15 13:39:34 -04:00
typos.toml feat(pdu): pointer messages PDUs parsing support 2023-07-17 17:59:53 +03: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.