TopSoftdeveloper/SetWindowDisplayAffinity-Bypass
GitHub: TopSoftdeveloper/SetWindowDisplayAffinity-Bypass
一个 Windows 安全研究项目,演示了无需 DLL 注入即可绕过 SetWindowDisplayAffinity 窗口捕获保护的非侵入式截图技术。
Stars: 125 | Forks: 5
# SetWindowDisplayAffinity-Bypass : 绕过 Windows 窗口捕获保护(最终版本)
## 先前研究
* 驱动程序解决方案请见 https://github.com/TopSoftdeveloper/Bypass-SetWindowDisplayAffinity
## 概述
在 Microsoft Windows 上,应用程序可以通过使用带有以下标志的 **`SetWindowDisplayAffinity`** API 来限制屏幕捕获:
* **`WDA_MONITOR`**
* **`WDA_EXCLUDEFROMCAPTURE`**
这些标志通常被大多数捕获工具(例如 Print Screen、Snipping Tool、OBS 等)用来防止屏幕截图和屏幕录制。
本仓库演示了一种**非侵入式技术**来捕获此类受保护窗口的屏幕截图,**无需使用 DLL 注入**或 API hooking。
## 背景
从历史上看,试图绕过此保护机制的开发者依赖于:
* 向目标进程进行 DLL 注入
* Hook `SetWindowDisplayAffinity` 以修改或覆盖其参数
虽然这些方法有效,但它们存在以下缺点:
* 会修改目标进程
* 具有侵入性且更容易被检测到
* 可能会引发不稳定或安全风险
本项目探索了一种**替代方法**,避免了向受保护的应用程序注入代码。
## 演示
该概念受到以下参考项目的启发并与之相关:
🔗 **参考:**
[https://github.com/wongfei/wda_monitor_trick](https://github.com/wongfei/wda_monitor_trick)
本仓库在此基础上进一步说明了即使启用了 `WDA_MONITOR` 或 `WDA_EXCLUDEFROMCAPTURE`,在特定条件下依然可以获取屏幕截图。
## 关键点
* ✅ 无需 DLL 注入
* ✅ 目标进程内无 API hooking
* ✅ 适用于受 `SetWindowDisplayAffinity` 保护的窗口
* ❌ 不保证在所有 Windows 版本或 GPU 驱动程序上都能生效
* ❌ 不用于生产环境或恶意用途
## 结果
查看 video.mp4 文件以了解其工作原理。
## 联系与支持
如果您想讨论本项目或支持未来的研究:
* **Telegram**: [@somerwork](https://t.me/somerwork)
* **捐赠 (BTC)**:
`bc1q43u0n865fuxc4j2vgm4wp98xuuaawgkgq8yrf4`
标签:API绕过, UML, 截屏保护, 研究项目, 端点可见性, 系统底层