![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
反调试
大雄_RE
一个热爱逆向,喜爱学习、分享的猿。
展开
-
反调试——CheckRemoteDebuggerPresent
原理:查询进程环境块(PEB)中的IsDebugged标志。如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。它不仅可以探测系统其他进程是否被调试,通过传递自身进程句柄还可以探测自身是否被调试。检测函数样例:BOOL CheckDebug() { BOOL ret; CheckRemoteDebuggerPresent(GetCurrentProcess(), &ret); return ret; }原创 2021-10-21 12:47:12 · 1027 阅读 · 0 评论 -
反调试——IsDebuggerPresent
IsDebuggerPresent查询进程环境块(PEB)中的IsDebugged标志。如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。直接调用实现:BOOL CheckDebug() { return IsDebuggerPresent(); } 看到过的一种函数动态调用实现:BOOL CheckDebug() { HANDLE hKernel32 = NULL; DWORD d原创 2021-10-14 21:47:54 · 618 阅读 · 0 评论