找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3794|回复: 5

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

[复制链接]
发表于 2015-1-1 00:20:03 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

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

直接上代码,主要原理是根据处理异常的时间长短判断是否存在调试器。
在有调试器的情况下,异常处理的时间远比正常情况要长。
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. int main()
  4. {
  5.         DWORD t1,t2;
  6.         //测试GetTickCount的有效性,如果无效则表示发现调试器
  7.         t1=GetTickCount();
  8.         Sleep(500);
  9.         t2=GetTickCount();
  10.         if(t2-t1<400)
  11.                 puts("FIND DBG\n");
  12.         else
  13.                 puts("NO DBG\n");
  14.         //故意引发异常查找调试器
  15.         t1=GetTickCount();
  16.         __try
  17.         {
  18.                 memcpy((PVOID)1234,(PVOID)5678,90);
  19.                 //DebugBreak();
  20.         }
  21.         __except(1)
  22.         {
  23.                 t2=GetTickCount();
  24.                 puts("goto __except!\n");
  25.         }
  26.         if(t2-t1>10)
  27.                 puts("FIND DBG");
  28.         else
  29.                 puts("NO DBG");
  30.         getchar();
  31.         return 0;
  32. }
复制代码
这东西在WIN32上当然过不了SOD,但是在WIN64上很好用。{:soso_e113:}

不过在产品上实现反调试,当然不需要我们费劲:
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表于 2016-6-3 17:59:03 | 显示全部楼层
隐藏了什么内容?
回复 赞! 靠!

使用道具 举报

发表于 2017-1-5 16:00:26 | 显示全部楼层
白加黑治感冒疗效好
回复 赞! 靠!

使用道具 举报

发表于 2017-4-4 00:01:09 | 显示全部楼层
算另类么?
回复

使用道具 举报

发表于 2017-4-5 09:25:22 | 显示全部楼层
come here to study
回复 赞! 靠!

使用道具 举报

发表于 2017-11-23 16:32:50 | 显示全部楼层
一定要回复
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 17:36 , Processed in 0.041638 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表