nicocarlino/band-4-window-creation
GitHub: nicocarlino/band-4-window-creation
通过向 explorer.exe 进程注入 Shellcode 调用未公开 API,实现在无需数字签名的情况下创建覆盖全屏应用和系统组件的高层级置顶窗口。
Stars: 1 | Forks: 0
# 🪟 band 4 overlay 创建
一个 C++ 库,用于在高层 band(band 4 / 通知级别)中创建窗口——
保持置顶于全屏游戏、任务管理器和其他系统窗口之上——
**无需证书、无需保护路径、无需清单文件**。
## 🎬 演示
如我们所见,该窗口保持在任务管理器之上。
## 🤔 问题所在 如果您想在高层 band(通知、overlay 等)中创建窗口, 使其保持置顶于全屏游戏、任务管理器和其他系统窗口之上, 您会使用未公开的 `CreateWindowInBand` 函数。 问题在于,要在高层 band 中创建窗口,Microsoft 要求: - 您的可执行文件上具有有效的证书/签名 - 您的程序位于受保护的路径中,例如 `Program Files` 或 `System32` - 包含 `uiAccess=true` 的清单文件 即使满足这些条件,根据您程序的用途,您的签名也可能会被吊销。 ## 💡 解决方案 该库通过将 shellcode 注入到 `explorer.exe` 中解决了这个问题,因为 `explorer.exe` 已经拥有必要的权限,并在其内部创建窗口——无需证书、无需保护路径、无需清单文件。 ## 🚀 用法 ``` #include "overlay/overlay.hpp" int main(){ overlay::init(true, &hwnd); // true = debug output, hwnd = pointer to a HWND variable that will store the HWND of the created window // your code here overlay::exit(true); } ``` ## ⚙️ 工作原理 1. 🔍 通过 `GetShellWindow` 获取 `explorer.exe` 的 PID 2. 💾 使用 `VirtualAllocEx` 在 `explorer.exe` 中分配内存 3. ✍️ 将 shellcode payload 和配置结构体写入已分配的内存中 4. 🧵 通过 `CreateRemoteThread` 在 `explorer.exe` 中生成一个远程线程 5. 🪟 该线程在 `explorer.exe` 的上下文中调用 `CreateWindowInBand`,绕过所有签名和权限要求标签:C++, CreateWindowInBand, explorer.exe, GUI覆盖层, shellcode注入, SSH蜜罐, VirtualAllocEx, Windows API, ZBID_IMMERSIVE_NOTIFICATION, 免签名, 子域名枚举, 安全对抗, 安全测试, 攻击性安全, 数据擦除, 游戏覆盖层, 窗口置顶, 端点可见性, 系统安全, 绕过权限验证, 网络安全, 进程注入, 远线程注入, 隐私保护