RDP Wrapper的工作原理是什么?

9 人参与

在 Windows 远程桌面协议(RDP)背后,有一段被系统默认隐藏的授权逻辑:只有单一会话、且必须通过正式的企业版许可才能启动。RDP Wrapper 通过在系统层面插入一层“透明代理”,让这层限制失效,从而实现多用户并发、家庭版也能提供服务的效果。

核心机制概览

RDP Wrapper 的入口是 rdpwrap.dll,它在 termsrv.dll(远程桌面服务核心库)加载时被提前注入。注入后,Wrapper 会劫持关键的 API 调用,例如 WTSStartRemoteSessionLicenseCheck,并在返回前修改返回值,使系统误以为已通过授权检查。

关键组件

  • rdpwrap.dll:实现函数钩子、内存补丁,是整个 Wrapper 的心脏。
  • rdpwrap.ini:维护 Windows 版本与对应的补丁偏移表,确保不同系统构建号使用正确的内存地址。
  • RDPConf.exe / RDPCheck.exe:提供可视化的状态检测,帮助用户确认 Wrapper 是否成功挂载。
  • 服务管理脚本(install.bat):负责以管理员权限注册 Wrapper 服务、启动 TermService 并写入必要的注册表键值。

版本匹配与升级

每一次 Windows 10/11 的累计更新都会改动 termsrv.dll 的内部结构,导致原有的内存偏移失效。RDP Wrapper 通过 rdpwrap.ini 中的“BuildNumber → Offset”映射表,动态决定要补丁的地址。社区维护的 GitHub Issues 区经常出现针对新 Build 的“手动修补”方案,用户只需下载对应的 ini 文件覆盖原有配置,即可恢复兼容。

安全与兼容性考量

因为 Wrapper 直接修改系统 DLL,理论上会触发 Windows 的完整性检查(如 SFC、Windows Defender 监控)。实际使用中,建议在受控的内部网络或实验机上部署,并在每次系统补丁后重新验证 RDPCheck.exe 的结果。若出现红色的 Listener 状态,往往意味着补丁失效,需要更新 ini 或者回滚到兼容的系统构建。

参与讨论

9 条评论
  • 代码幻境

    这玩意儿真的省事儿。

    回复
  • 孔雀王子

    装完后连上两台都没卡。

    回复
  • 瑾萱

    谁能给点新版ini?

    回复
  • 大将军

    看到有人因为补丁失效把机器回滚,场面有点尴尬。

    回复
  • 优雅的长颈鹿

    真是省了买服务器的钱,省下的预算还能买点软件。

    回复
  • 星尘绘梦

    怎么知道哪个offset对我系统?

    回复
  • 腐骨之王

    我之前在Win10 1909上装过,升级后必须手动更新ini才能继续用。

    回复
  • 狂野的兔子

    RDPWrapper的dll注入原理挺有意思的,类似hook技术。

    回复
  • Faye飞翼

    如果系统开启了完整性保护,这玩意会被拦截吗?

    回复