A pure Python implementation of Microsoft's Remote Desktop Protocol (RDP) and VNC client/server, built on Twisted.
RDPY is a pure Python implementation of the Microsoft Remote Desktop Protocol (RDP) and VNC protocol, built on the Twisted networking engine. It enables developers to create custom RDP/VNC clients, servers, and security tools like MITM proxies and honeypots. The project solves the need for a programmable, extensible remote desktop toolkit in Python.
Security researchers, penetration testers, and developers building custom remote desktop applications or automation scripts that require low-level RDP/VNC protocol manipulation.
Developers choose RDPY for its pure Python implementation, integration with the Twisted async framework, and comprehensive suite of built-in security and diagnostic tools not found in standard RDP clients.
Remote Desktop Protocol in Twisted Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides full RDP and VNC protocol implementation in Python, enabling deep customization and integration into Python-based security or automation workflows, as evidenced by the library examples for custom clients and servers.
Leverages the Twisted event-driven network engine for scalable, asynchronous protocol handling, making it suitable for building concurrent tools like MITM proxies and honeypots.
Includes ready-to-use binaries for man-in-the-middle attacks, honeypots, and screenshot capture, offering practical utilities for penetration testing and security analysis without additional coding.
Supports embedding remote desktop views into custom Qt applications via rdpy.ui.qt4.QRemoteDesktop, facilitating the development of GUI-based tools as shown in the client binaries.
Requires manual setup of PyQt4 and OS-specific dependencies, with virtualenv workarounds needed, making deployment cumbersome and error-prone compared to simpler pip-install packages.
Relies on PyQt4 and Python 2.7 examples in the README, indicating potential compatibility issues with modern Python versions and lack of updates for current libraries.
Admits that bitmap decompression is implemented in C for performance, suggesting other protocol handling may be slower and not ideal for real-time, high-bandwidth remote desktop scenarios.