000nico/band-4-window-creation

GitHub: 000nico/band-4-window-creation

通过向explorer.exe注入shellcode调用未公开的CreateWindowInBand函数,在无需签名和特权的情况下创建始终置顶于全屏应用和系统窗口之上的band 4级别窗口。

Stars: 6 | Forks: 0

# band 4 overlay 创建 一个用于在高级别 band(band 4 / 通知级别)中创建窗口的 C++ 库 — 能够保持在全屏游戏、任务管理器和其他系统窗口的顶层 — **无需证书、无需受保护路径、无需清单文件**。 ## 🎬 演示

demo

如我们所见,该窗口保持在任务管理器之上。

## 问题背景 如果你想在高级别 band(通知、overlay 等)中创建一个窗口, 使其保持在全屏游戏、任务管理器和其他系统窗口的顶层, 你需要使用未公开的 `CreateWindowInBand` 函数。 问题在于,要在高级别 band 中创建窗口,Microsoft 要求: - 可执行文件具有有效的证书/签名 - 程序位于受保护的路径中,如 `Program Files` 或 `System32` - 包含 `uiAccess=true` 的清单文件 即便如此,根据程序的具体用途,你的签名仍然可能会被吊销。 ## 解决方案 本库通过向 `explorer.exe` 注入 shellcode 来解决此问题,因为 `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`,绕过所有签名和权限要求
标签:CreateWindowInBand, C++库, explorer.exe, shellcode执行, SSH蜜罐, UI权限绕过, Windows开发, ZBID_IMMERSIVE_NOTIFICATION, 免杀技术, 安全防御绕过, 提权技术, 无清单, 无签名, 暴力破解检测, 未公开API, 游戏覆盖层, 游戏辅助开发, 窗口覆盖层, 端点可见性, 进程注入, 远程线程注入