[讨论]一个简单反调试的实现(兼容WIN32/WIN64)
直接上代码,主要原理是根据处理异常的时间长短判断是否存在调试器。在有调试器的情况下,异常处理的时间远比正常情况要长。
#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 ***** 哈哈 我一定是第一个回复的!
nice... 学习学习,向老大学习~ 看看帖子的内容 谢谢了, 学习ing 恩恩 不错 来学习了 看看了。。。。 x64上很好用,是因为x64无法hook,从而破掉这个检测吗?
OD里的忽略异常,是否就可以过掉这中方法了。 确实比较简单的 谢谢支持一下 看看这是什么 好东西看一下 可以,先自己写一个调试器, 然后把所有异常消息,全部忽略掉.并且把触发的异常代码打印一下.
这样就可以看出,频繁触发的什么异常,就知道软件搞什么鬼了.然后再调试器忽略掉这个异常就OK了 看 我是来学习的... 主动触发异常 貌似很多游戏保护都有了 学习学习 看看 看不懂 先把有关系的都下载收藏
恩恩 不错 来学习了 学习学习, 试试看。。。 感谢分享... 谢谢分享! 感謝分享!! 反调试也好,加壳也好,都是过滤掉一批技术水平低却想不劳而获的人,当然高手面对vmp应该也会一阵恶心 谢谢分享,学习简单的反调试技术
页:
[1]