反调试——CheckRemoteDebuggerPresent

原理:查询进程环境块(PEB)中的IsDebugged标志。

如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。

它不仅可以探测系统其他进程是否被调试,通过传递自身进程句柄还可以探测自身是否被调试。

检测函数样例:

BOOL CheckDebug()  
{  
    BOOL ret;  
    CheckRemoteDebuggerPresent(GetCurrentProcess(), &ret);  
    return ret;  
}

欢迎关注我的微博:大雄_RE。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。


版权声明:本文为shadow20080578原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。