CheckRemoteDebuggerPresent
关于CheckRemoteDebuggerPresent
kernel32
的CheckRemoteDebuggerPresent()
函数用于检测指定进程是否正在被调试. Remote
在单词里是指同一个机器中的不同进程.
如果调试器存在(通常是检测自己是否正在被调试), 该函数会将pbDebuggerPresent
指向的值设为0xffffffff
.
检测代码
可以用以下32位代码检测32位环境
或64位代码检测64位环境
如何绕过
比如有如下的代码
我们可以直接修改isDebuggerPresent
的值或修改跳转条件来绕过(注意不是CheckRemoteDebuggerPresent
的izhi, 它的返回值是用于表示函数是否正确执行).
Last updated