找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6908|回复: 6

古老的INT 2D检测调试器

 火.. [复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-8-7 21:05:23 | 显示全部楼层 |阅读模式
从某外国的人的汇编代码移植过来的,对StrongOD无效。。。
很久没在WIN32底层版发贴,当灌水了。。。

  1. #include <Windows.h>

  2. int main()
  3. {
  4.         char str0[]="Debugger not detected!";
  5.         char str1[]="Debugger detected!";
  6.         char str2[]="Check Debugger";
  7.         PVOID p=(PVOID)GetProcAddress(LoadLibraryW(L"user32.dll"),"MessageBoxA");
  8.         system("pause");
  9.         __try
  10.         {
  11.                 __asm //check debugger
  12.                 {
  13.                         int 0x2d
  14.                         nop
  15.                 }
  16.         }
  17.         __except(EXCEPTION_EXECUTE_HANDLER)
  18.         {
  19.                 __asm //Debugger not detected!
  20.                 {
  21.                         xor eax,eax
  22.                         push eax
  23.                         lea eax,str2
  24.                         push eax
  25.                         lea eax,str0
  26.                         push eax
  27.                         xor eax,eax
  28.                         push eax
  29.                         call p
  30.                 }
  31.                 goto end;
  32.         }
  33.         __asm //Debugger detected!
  34.         {
  35.                 xor eax,eax
  36.                 push eax
  37.                 lea eax,str2
  38.                 push eax
  39.                 lea eax,str1
  40.                 push eax
  41.                 xor eax,eax
  42.                 push eax
  43.                 call p
  44.         }
  45. end:
  46.         return 0;
  47. }
复制代码

32

主题

8

回帖

0

精华

铜牌会员

积分
110
发表于 2011-8-8 11:27:32 | 显示全部楼层

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2011-8-10 16:26:55 | 显示全部楼层
sb666 发表于 2011-8-8 19:39
vb版
VERSION 5.00
Begin VB.Form Form1


还有一个绝招,强行置顶,挡住OD的界面。
当然,别人HOOK SetWindowPos这招就废了。

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2011-8-11 16:41:35 | 显示全部楼层
Tesla.Angela 发表于 2011-8-10 16:26
还有一个绝招,强行置顶,挡住OD的界面。
当然,直接HOOK SetWindowPos也行。

你这两个都不现实,因为你是对其它进程操作,这个可以被轻易BAN掉。
有个鬼佬说,自己调试自己,就能防止被其它进程调试。
我没有试过,你试试吧。

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2011-8-11 17:12:15 | 显示全部楼层
sb666 发表于 2011-8-8 19:39
vb版
VERSION 5.00
Begin VB.Form Form1


从唯物主义的观点看,无论StrongOD再怎么NB,也不可能做到让程序在被调试时和没有被调试时一模一样。
可以检测时间,如果在注册时,某段本需要只十几毫秒来执行的代码竟然用了大于1秒钟,即可认为被调试,直接退出即可。这个在VB里用两次TIMER函数的返回值相减取绝对值即可。

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2011-8-11 23:56:21 | 显示全部楼层
sb666 发表于 2011-8-8 19:39
vb版
VERSION 5.00
Begin VB.Form Form1

"在运行到关键代码时挂起所有进程“这个某大型游戏就是这么搞的

别人可以不让你挂起。
另外下次回帖最好不要使用“点评”,否则搞得我好像在自言自语。。。

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2011-8-12 17:36:09 | 显示全部楼层
sb666 发表于 2011-8-12 12:28
用驱动操作调度表呢?看谁能阻止。有些游戏都有些病态了,比如腾讯那个反外挂,挂钩一大堆钩子,处理超差 ...


对付钩子最好的办法是镜像内核。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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