0xAA55 发表于 2015-1-1 00:20:03

【讨论】一个简单反调试的实现(兼容WIN32/WIN64)

原帖网址:http://www.vbasm.com/thread-8294-1-1.html
原作者:@美俪女神
转载请注明出处。

直接上代码,主要原理是根据处理异常的时间长短判断是否存在调试器。
在有调试器的情况下,异常处理的时间远比正常情况要长。#include <stdio.h>
#include <Windows.h>
int main()
{
        DWORD t1,t2;
        //测试GetTickCount的有效性,如果无效则表示发现调试器
        t1=GetTickCount();
        Sleep(500);
        t2=GetTickCount();
        if(t2-t1<400)
                puts("FIND DBG\n");
        else
                puts("NO DBG\n");
        //故意引发异常查找调试器
        t1=GetTickCount();
        __try
        {
                memcpy((PVOID)1234,(PVOID)5678,90);
                //DebugBreak();
        }
        __except(1)
        {
                t2=GetTickCount();
                puts("goto __except!\n");
        }
        if(t2-t1>10)
                puts("FIND DBG");
        else
                puts("NO DBG");
        getchar();
        return 0;
}这东西在WIN32上当然过不了SOD,但是在WIN64上很好用。{:soso_e113:}

不过在产品上实现反调试,当然不需要我们费劲:**** Hidden Message *****

stlcours 发表于 2016-6-3 17:59:03

隐藏了什么内容?

白加黑治感冒 发表于 2017-1-5 16:00:26

白加黑治感冒疗效好

左岸岛 发表于 2017-4-4 00:01:09

算另类么?

FFFFFFFE 发表于 2017-4-5 09:25:22

come here to study

Gamma 发表于 2017-11-23 16:32:50

一定要回复
页: [1]
查看完整版本: 【讨论】一个简单反调试的实现(兼容WIN32/WIN64)