123456

 

2012年9月19日

反调试功能<CheckRemoteDebuggerPresent>

摘要: CheckRemoteDebuggerPresent这个API可以检测是否有调试器的存在,而且这个和PEB里面的BeingDebugged无关了。看一下CheckRemoteDebuggerPresent的声明: __in HANDLE hProcess, __in_out PBOOL pbDebuggerPresent);第一个参数是进程句柄,第二参数用于存放结果。返回值表示函数是否执行成功,; 堆栈示意图;push pBool ; ebp + c;push hProcess ; ebp + 8;push retaddr ; ebp + 4;push ... 阅读全文

posted @ 2012-09-19 16:10 hgy413 阅读(607) 评论(0) 推荐(0) 编辑

反调试功能<IsDebuggerPresent>

摘要: 依赖于API的反调试这个函数会看PEB中的BeingDebugged是否为0,不为0就表示无调试器,否则表示有调试器.注意的是以前代码都会对这个函数首字节是否为0x64作判断,但在win7下,需要对应kernelBase中的IsDebuggerPresent,而不是kernel32中的IsDebuggerPresent//使用IsDebuggerPresent函数检测DbgToolType AntiDebugged::AD_IsDebuggerPresent(){ HMODULE hKernelBaseDll = ::LoadLibrary(TEXT("kernelBase.dll& 阅读全文

posted @ 2012-09-19 15:14 hgy413 阅读(340) 评论(0) 推荐(0) 编辑

导航