常见Windows反调试手段

本文详细介绍了Windows系统中的各种反调试手段,包括检测BeingDebuged字段、ProcessHeap属性、STARTUPINFO信息、NtGlobalFlag,以及API反调试、系统痕迹检测、识别调试器行为等。同时,文章讨论了如何通过修改数据结构、利用中断和异常来干扰调试器,并提到了一些常见的调试器漏洞和插件。
摘要由CSDN通过智能技术生成

检测数据结构

BeingDebuged(字段检测)

被调试时,BeingDebuged字段的值为1,否则为0

汇编码:

mov eax,fs:[0x30]
mov eax,byte ptr[eax+0x2]

API IsDebuggerPresent
被调试时,返回值为非零

int main()
{
   
    if (IsDebuggerPresent())
    {
   
        std::cout << "Stop debugging program!" << std::endl;
        exit(-1);
    }
    return 0;
}

API CheckRemoteDebuggerPresent
IsDebuggerPresent功能一致

对于X64进程

KERNELBASE!IsDebuggerPresent:
00007ffc`ab6c1aa0 65488b042560000000 mov   rax,qword ptr gs:[60h]
00007ffc`ab6c1aa9 0fb64002           movzx eax,byte ptr [rax+2]
00007ffc`ab6c1aad c3                 ret

破解方法:
通过在检查代码执行之前,将eingDebugged设置为0,可以使用dll注入来完成

mov eax, dword ptr fs:[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值