Youssix/PEBWatch

GitHub: IWishI808/PEBWatch

PEBWatch 是一款用于检测 Windows 进程环境块篡改的防御性研究工具。

Stars: 0 | Forks: 0

# PEBWatch PEBWatch 是一款面向 Windows x64 平台的防御性研究原型,用于检测对进程环境块 (PEB) 的篡改。它可对 PEB 状态进行快照,进行时间维度的比较,并将 PEB 模块列表与通过 `VirtualQuery` 发现的内存区域进行交叉验证。 其目标是演示实用的 PEB 取证技术:模块脱链、命令行篡改、镜像路径欺骗以及调试标志操控。 ## 已实现功能 - 在 x64 环境下通过 `__readgsqword(0x60)` 直接访问 PEB - 手动定义 PEB、LDR 和进程参数结构体 - 遍历 `InLoadOrderModuleList` - 获取基准及当前 PEB 快照 - 检测快照间新增和移除的模块 - 通过 `VirtualQuery` 扫描带有 PE 头的已提交 `MEM_IMAGE` 区域 - 检测 PEB 列表中缺失的、但有镜像内存支持的幽灵模块 - 检测 `BeingDebugged` 和 `NtGlobalFlag` 的变化 - 通过 `NtQueryInformationProcess` 检查 `ProcessDebugPort` 的一致性 - 检测 `ImagePathName` 和命令行的变化 ## 防御性应用场景 - 识别从 PEB 加载器列表中脱链的模块 - 检测启动后的命令行或镜像路径篡改 - 发现基础的反调试标志操控行为 - 对比用户态进程元数据与内存中的实际证据 - 支持事件响应与恶意软件分析实验室的工作流程 ## 构建 依赖项: - Visual Studio 2022 - x64 原生工具命令提示符 构建命令: ``` cl /W4 /O2 /DWIN32_LEAN_AND_MEAN /Fe:pebwatch.exe src\main.c src\peb_reader.c src\tamper_detect.c /link ntdll.lib kernel32.lib ``` 运行命令: ``` pebwatch.exe ``` 该工具会获取基准快照,打印已加载模块,然后每两秒检查一次变化。 ## 当前状态 PEBWatch 是一款面向实验室环境的原型工具。它使用手动定义的结构体布局和进程内检查。目前尚未集成 ETW、内核 VAD 遍历或驱动组件;这些将是未来自然的功能扩展方向。 ## 负责任地使用 本项目旨在用于防御性取证、恶意软件分析实验室和授权的安全研究。它不包含隐蔽、持久化、注入或规避功能。 ## 相关文章 - [PEB 内部机制](https://youssix.github.io/2026/05/15/peb-windows-internals/) ## 许可证 MIT
标签:Awesome列表, Conpot, DAST, PEB监控, SecList, Visual Studio, Windows安全, x64架构, 内存取证, 内存扫描, 命令行篡改, 图像路径欺骗, 子域名枚举, 安全原型, 完整性监控, 实验室工具, 客户端加密, 恶意软件分析, 数字取证, 模块列表检查, 端点可见性, 篡改检测, 系统安全, 结构定义, 网络安全, 自动化脚本, 调试标志检测, 进程完整性, 进程环境块, 防御性安全, 隐私保护