存档

文章标签 ‘反调试’

调试与反调试(3)–CheckRemoteDebuggerPresent

2011年4月22日 6 条评论

CheckRemoteDebuggerPresent这个API可以检测是否有调试器的存在,而且这个和PEB里面的BeingDebugged无关了。看一下CheckRemoteDebuggerPresent的声明:

BOOL WINAPI CheckRemoteDebuggerPresent(
__in HANDLE hProcess,
__in_out PBOOL pbDebuggerPresent
);

第一个参数是进程句柄,第二参数用于[......]

继续阅读

调试与反调试(二)——BeingDebugged

2011年4月21日 2 条评论

如果进程处于被调试状态,那么PEB里面的BeingDebugged标志会置位,《调试与反调试(一)——IsDebuggerPresent》中的IsDebuggerPresent就是这么实现的~不信?可以看网上流传的Windows 2000源代码,在“\win2k\private\windows\base\client\debug.c”里面可以看到,就是这么实现的:

BOOL
APIENTRY
IsDebuggerPresent(
VOID
)
 
/*[......]

继续阅读

调试与反调试(一)——IsDebuggerPresent

2011年4月21日 没有评论

IsDebuggerPresent是一个声明与kernel32.dll中的函数,通过它可以检测当前进程是否正在被调试。当然,这是一个很古老的API了,我相信不会有人用这个来检测程序在被调试,因为这个很容易绕过。对于专业的调试器而言,IsDebuggerPresent根本就没有用武之地。下面看一个例子:

// 作者:代码疯子
// 博客:http://www.programlife.net/
// 转载请注明:本文来自程序人生——Www.ProgramLife.Net
#include <[......]

继续阅读