一个轻量级的 Windows 反调试 / 反抓包检测库,采用中文类名与 API,便于国内项目直接集成。
| 检测项 | 说明 |
|---|---|
| 调试器进程检测 | 扫描 x64dbg、OllyDbg、IDA、Cheat Engine 等常见调试器进程 |
| 抓包进程检测 | 扫描 Wireshark、Fiddler、Charles、Burp Suite 等常见抓包工具 |
| 自定义进程检测 | 传入自定义进程黑名单进行匹配 |
| 调试标志检测 | 调用 IsDebuggerPresent |
| PEB 标志检测 | 直接读取 PEB.BeingDebugged,可绕过部分 API Hook |
| 调试端口检测 | 通过 NtQueryInformationProcess 查询 ProcessDebugPort |
| 硬件断点检测 | 读取线程 Dr0~Dr3 与 Dr7 调试寄存器 |
| 综合检测 | 调用以上所有检测,任一命中即返回 true |
.
├── Defense.h # 头文件
├── Defense.cpp # 实现文件
├── demo/
│ └── main.cpp # 演示程序
├── build.bat # MSVC 一键构建(x86 + x64)
├── build_x86.bat # MSVC x86 构建
├── build_x64.bat # MSVC x64 构建
├── build_mingw.bat # MinGW-w64 构建
├── README.md
└── .gitignore
- Windows 7 或更高版本
- 以下任一工具链:
- MSVC:Visual Studio 2017+,安装“使用 C++ 的桌面开发”工作负荷
- MinGW-w64:g++ 支持
-m32/-m64
在项目根目录打开命令提示符,执行:
build.bat脚本会自动查找最新安装的 Visual Studio,依次构建 x86 与 x64 版本:
build\x86\Defense_x86.lib+build\x86\Demo_x86.exebuild\x64\Defense_x64.lib+build\x64\Demo_x64.exe
单独构建某一架构:
build_x86.bat
build_x64.batbuild_mingw.bat输出产物:
build\x86\libDefense_x86.a+build\x86\Demo_x86.exebuild\x64\libDefense_x64.a+build\x64\Demo_x64.exe
#include "Defense.h"
#include <iostream>
int main() {
if (防破解::综合检测()) {
std::cout << "检测到调试或抓包环境" << std::endl;
// 可在此执行反制逻辑,如退出、上报等
} else {
std::cout << "环境安全" << std::endl;
}
return 0;
}单独使用某一项:
if (防破解::检测调试器进程()) { /* ... */ }
if (防破解::检测硬件断点()) { /* ... */ }
std::vector<std::string> 黑名单 = { "notepad.exe", "calc.exe" };
if (防破解::检测指定进程(黑名单)) { /* ... */ }- 正常环境:运行
build\x64\Demo_x64.exe,所有项应显示“未检测到”。 - 调试器环境:用
x64dbg/WinDbg打开 Demo,调试相关项应显示“检测到”。 - 抓包工具环境:启动
Wireshark/Fiddler后运行 Demo,抓包项应显示“检测到”。 - 硬件断点:在调试器中对
main函数设置硬件断点,检测硬件断点项应显示“检测到”。
- 本库仅用于合法的安全防护、软件保护、反作弊研究等场景。
- 反调试技术可被绕过,建议作为多层防护的一部分,不要单独依赖。
- 某些安全软件可能将进程扫描行为视为可疑,请根据实际场景评估使用。
本项目仅供学习研究使用,请勿用于非法目的。使用本项目造成的任何后果由使用者自行承担。