AmashOnBlitz/ProcSpyPlusPlus

GitHub: AmashOnBlitz/ProcSpyPlusPlus

一款 Windows 进程 API 监控与拦截工具,通过 DLL 注入实时追踪或阻止目标进程的文件、注册表、网络、剪贴板、截图等操作。

Stars: 0 | Forks: 0

# ProcSpy++ ### 实时查看任何 Windows 应用程序*实际上*在做什么。
你是否曾好奇过你的应用程序在后台秘密地做些什么?写入你并未请求的文件?窥探你的剪贴板?发送网络数据包?**ProcSpy++ 让你能够查明真相 —— 甚至可以阻止它。** ## ⚡ 它能做什么? ProcSpy++ 将一个间谍 DLL 注入到任何正在运行的 Windows 进程中,并实时拦截其 Windows API 调用。无需源代码。无需调试器。只需注入并观察。 你可以**追踪**和**阻止**以下所有操作: - 📁 File — 创建、读取、写入 - 🗂️ Registry — 读取、写入 - 🌐 Network — 发送、接收 - 🧵 Thread — 创建 - 📦 DLL — 加载事件 - 📋 Clipboard — 打开、获取、设置 - 🖼️ Screenshot — BitBlt 捕获尝试 - 🪟 Window & Dialog — 创建事件 ## 📥 下载 ### 预构建 EXE — 已在 Windows 11 x64 上测试 从 [**Releases**](../../releases) 获取。 ## 🔨 自行构建(推荐) 自行构建 = 匹配你系统的 DLL + 没有 AV(杀毒软件)的麻烦。 **要求:** Visual Studio 2026(推荐),“Desktop development with C++” 工作负载,Windows SDK 10.0+ ``` 1. git clone https://github.com/AmashOnBlitz/ProcSpyPlusPlus.git 2. Open ProcSpy++.sln in Visual Studio 3. Build the SpyDll project first → produces SpyDll.dll 4. Build the ProcSpy++ project → produces ProcSpy++.exe (Usually it chain compiles with ProcSpy++) 5. Ensure SpyDll.dll is in the same folder as ProcSpy++.exe 6. Right-click ProcSpy++.exe → Run as administrator (Recommended) ``` ## 🚀 如何使用 ### 第一步 — 注入 点击顶部栏的绿色 **Inject** 按钮。会出现一个进程选择器。 按名称筛选,勾选你的目标旁边的复选框,点击 **Inject**。该进程会出现在左侧面板中 —— 间谍 DLL 现已在其内部运行。 ### 第二步 — 选择进程并启用追踪 点击左侧面板中的进程名称以选中它。右下角的 **Tracking Panel** 将被激活。 现在勾选你想监控的任何 API 旁边的 **T** 复选框: - **T** — 追踪它(每次调用都会记录到活动日志中) - **B** — 阻止它(静默地阻止调用生效) ### 第三步 — 查看活动日志 一旦启用追踪,右侧的活动日志就会开始实时填充。 每种事件类型都有自己的颜色 —— 文件写入是橙色,网络是青色,注册表是紫色,截图是红色。你可以随时使用 **Clear** 按钮清除日志。 ### 第四步 — 自定义 DLL 注入 点击左侧工具栏中的图标以打开自定义注入对话框。选择任何进程,浏览到任何 `.dll`,将其注入。 这对于将你自己的 payload 加载到进程中以进行测试非常有用。 ### 第五步 — 弹出 当你完成后,点击红色的 **Eject** 按钮。选择一个进程或一次性弹出所有内容。 DLL 会先发出信号优雅地停止运行,然后再断开连接。 ## 🔬 底层原理 这才是有趣的地方。ProcSpy++ 实际上是两个程序伪装成一个。 ### 注入器 当你点击 Inject 时: 1. `SpyDll.dll` 被复制到一个唯一命名的临时文件中(这样每个进程都有自己的副本,并且会在重启时自动删除) 2. 目标进程通过 `OpenProcess(PROCESS_ALL_ACCESS)` 打开 3. 通过 `VirtualAllocEx` 在其内部分配内存 4. DLL 路径通过 `WriteProcessMemory` 写入 5. 调用 `CreateRemoteThread`,指向 `LoadLibraryA` —— 目标进程自行加载 DLL 6. 如果失败(某些受保护的进程会阻止远程线程),则回退到 `QueueUserAPC` —— 它将 `LoadLibraryA` 排队到目标中的现有线程上 一旦加载完毕,ProcSpy++ 会创建一个命名管道(`\\.\pipe\messagePipeline_`)并等待 DLL 回连。 ### 间谍 DLL 当 `DllMain` 在目标进程内触发的那一刻: 1. 一个 **HookThread** 启动,并使用 [MinHook](https://github.com/TsudaKageyu/minhook) 安装 API hooks 2. 一个 **MessengerThread** 启动,连接到命名管道,并开始将日志事件流式传输回 GUI 3. 它监听从管道传回的命令 —— `Track|File Write`、`Block|Registry Write` 等。 只有当某个特定 API 的 **Track** 标志被启用时,DLL 才会记录调用。通过管道发送 `Track|
标签:API Hook, C++, DAST, DLL注入, IP 地址批量处理, Linux, SSH蜜罐, Win32 API, WSL, 云资产清单, 剪贴板监控, 子域名枚举, 实时拦截, 应用行为审计, 恶意软件分析, 截图检测, 数据包嗅探, 数据擦除, 文件监控, 注册表监控, 流量审计, 系统安全, 系统底层, 网络安全, 进程注入, 逆向工程, 隐私保护