首页
社区
课程
招聘
[突破]天天用的软件,居然使OllyDbg各种断点失灵!到底是什么技术?新突破
发表于: 2008-8-25 14:13 15887

[突破]天天用的软件,居然使OllyDbg各种断点失灵!到底是什么技术?新突破

2008-8-25 14:13
15887
本人最近在尝试动态调试一些程序时发现一个问题:
      当用OllyICE(是修改过的OllyDbg)调试例如QQ,TM(TMShell.exe),跑跑卡丁车这三个程序时,当把程序设置第一次断在"系统断点后",程序能够载入,但是所有类型的断点都不能在程序(或者说是整个地址空间)中设置。一按F2就报断点无法设置,按照PE里的地址看代码却能够看到,而且用PEID去测试TMShell.exe时,返回的是VC6.0(应该算是无壳吧),测试跑跑卡丁车,有壳ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov。
      一开始怀疑是OllyICE的问题,但是如果用OllyICE调试例如notepad.exe,emeditor.exe,飞鸽等都能正常调试,接着又对瑞星一顿设置,将保护全部关闭,仍然无果。最后拿出WinDBG测试,结果居然和OllyICE一样,不能设置断点,不能单步跟踪。
      个人觉得这是一种反调试技术,但不知道他到底如何工作的,因为我总觉得程序只是刚加载怎么会不让使用WriteProcessMemory呢?希望大侠解答,感激不尽。(对了,我的机器没有病毒,或者其他的反调试驱动)
      问题在2008-08-26日被解答,答案在7楼。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
换个英文版的尝试下,楼主说的这些都是属于大型的游戏或者商业软件,对于反调试方面应该是很强的,
2008-8-25 14:38
0
雪    币: 202
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
英文版,中文版,繁体中文版,各种版本都不可以,而且还包括静态反编译的W32dsm89,对他甚至不能直接静态反编译,必须要用C32asm才能看到代码。我对PE不了解,是不是PE被做了某种修改。
2008-8-25 14:45
0
雪    币: 371
活跃值: (67)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
可以做很多的.
比如
1.使用tls(好像是的吧)来做anti-od.
2.保护drx.int3等来进行anti.
如2楼所言大型的商业程序等都是有很强的保护的.
---
可以试一下:
IDA pro进行分析,如果已加壳则脱之.
2008-8-25 21:40
0
雪    币: 202
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不是TLS在做怪,因为TMShell.exe里TLS table 为空。跑跑卡丁车的TLS table清空后仍然不能下断点。关于楼上说的调试寄存器的说法,我想也不太可能。问题的关键在于程序加载时,od和windows到底做了那些工作。
2008-8-26 09:39
0
雪    币: 203
活跃值: (274)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
关注.
lz可以换一台电脑试一下.
2008-8-26 10:08
0
雪    币: 202
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
问题找到了,线索还是多亏楼上的提醒,换台机器后发现另一台的机器的跑跑卡丁车能够使用F2开关断点了(我是指F2能够使用,能不能断下看下文),然后有些奇怪和沮丧
      奇怪的是为什么他的机器好用,人品问题(我将大部分此类问题归结为人品问题^-*)。然后在这台机器上继续调试,因为调试起始断点在系统断点,所以Ctrl+F12来到主模块领空,发现当在主线程中按F8后,OllyICE顿住了,几秒后弹出一个提示框大体意思是OD注入代码没成功,要再等5秒,确定后进入等待的死循环,沮丧ing..... why?看了下屏幕的右下角是NOD32,我的机器是瑞星2007(前文提到过)。我的思绪又回归到人品问题的本质上来,开始怀疑是不是两台机器的杀毒软件造成了这些奇怪的问题呢?
      回到我的机器上来,打开瑞星2007,看了看监控(文件,邮箱,网页监控)好像没有一个和内存有关,再看防御(系统加固,应用程序访问控制,程序启动控制,恶意行为检测等全部打开中)昨天都关掉过也没有用。最后一个工具(账号保险柜...),账号保险柜?这个东西怎么用,从来没注意过,打开,发现卡丁车,TMShell.exe,QQ全部在里面,并且显示已开启保护,看来这东西起来后就开始保护程序了(其实这个想法是错误的!这东西从装完瑞星后就一直启动,并且在你第一次运行游戏时自动添加到保护列表中),点击关闭保护,回到OD调试TMShell.exe!哇。。 没有提示断点失败了,原来凶手就是它。
      下面让我们看看这个牛逼的账号保险柜:

       瑞星“账号保险柜”利用主动防御技术自动屏蔽木马、病毒常用的多种恶意行为,包括注入DLL、内存被篡改、注入代码、挂起、强制结束程序、键盘监听等。如果用户感觉不够安全,还可以选择更多的保护规则。软件受保护之后,瑞星就会通过主动防御体系实时监控所有的不安全行为,自动加以屏蔽,用户的账号密码就相当于放入了保险柜,使那些试图窃取账号密码的木马、病毒、恶意软件等无可奈何。

      看到了吧,这个账号保险柜非常的厉害,而我们是被防止”内存被篡改“卡住的,以至于WinDBG都卡住了。下面我们重新审视一边TMShell.exe,跑跑卡丁车这两个程序。
      TMShell.exe确实无壳,而且也没有TLS功能。跑跑卡丁车有壳有TLS功能,但TLS并不保护内存,清空后程序启动直接失败!原因待续。。关于主模块调试F8卡住的问题仍然不解,怀疑可能还是杀毒软件的问题,待续解答。
       最后提醒喜欢调试的朋友,小心你的杀毒软件。他对于我们是一把双刃剑。当你扮演Cracker时最好使用没有杀毒软件的操作系统,不要让它成为鞋里的沙子!
       2008-08-27又有新的突破,10楼请关注。
2008-8-26 10:55
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
楼主厉害。
潜水两年
所有的帖子都在这儿了

杀毒软件有时候的确是比较使人郁闷的
2008-8-26 16:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
呵呵,瑞星保险柜可以让很多注入式的外挂失效。
2008-8-26 18:13
0
雪    币: 202
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼上的解答大家都看到了,最后仍留下了两个疑问。处于好奇本人有继续研究了一下瑞星的账号保护工具。账号保护工具本来的目的是保护一些著名的商业软件。防止Cracker攻击,外挂篡改,键盘监听等等。也包括恶意关闭和内存篡改。
      经过我的努力,两个问题仍没有结果。但是我突然在想为什么OllyDbg不是著名的软件呢?为什么瑞星不保护我的这个知名工具呢?欲善其功,必先利其器。我不求利,只求我调试的时候不被破坏(例如加载一些变态壳的时候,直接退出,好像很多人都在问这个问题。)好了,下面看一下我做的试验。
      首先我先打开我的账号保护工具,我想通过自定义增加,把OllyDbg加到保护列表中。打开后我发现根本没有他妈的自定义增加(对不起有些失礼,主要是太可气了! ),放弃自定义的想法。接着看了看受保护的几个软件QQ,Tm,跑跑。发现有个修改路径的功能,但是只能针对能够保护端软件进行修改路径。 尝试把跑跑的路径改成OllyDbg路径,失败!说该路径下没找到跑跑程序!他是怎么找到程序的呢?(名字,数字签名,还是其他的什么)先不管了,把OllyICE改名为KartRider.exe,并将所有OllyDbg文件拷贝到跑跑目录里。接着在保护工具里重新选择跑跑。成功了!!!!!!!!成功了!!!!!!
      后来想想也是,由于游戏程序更新比较频繁,除了用名字定位外,很难提供其他的方式定位。
      好了,既然瑞星识别了,那我们需要测试一下到底好不好用。为了能测出效果,我用了一下几种测试方法,还是满有意思的:
      1、利用保护的OllyDbg调试一个外挂,正常情况是一加载就自动退出OllyDbg。
      2、利用未保护的OllyDbg调试保护的OllyDbg。
      3、利用保护的OllyDbg调试保护的OllyDbg。
      4、利用保护的OllyDbg调试保护的其他程序。
      5、利用保护的OllyDbg调试未保护的OllyDbg,用未保护的OllyDbg调试受保护的OllyDbg。
      结论如下:
      1、外挂不能结束OllyDbg了,能够正常加载了,我的系统仍不能在模块内调试(有的程序就能),不解..高手解答。
      2、断点全部失灵(如我所料)!
      3、能够调试,奇怪中....
      4、能够调试,同上
      5、断点全部失灵!

      总结一下,受保护的OllyDbg(一下简称强OD)抗干扰能力特别强,应该能强于StrongOD(我猜的)。但是为什么强OD能调试其他受保护的程序有些不解。强OD所调试的程序并不处于保护之内,为什么目前也不清楚。这条推论从第五条得知,也请大家仔细体会第五条的目的。虽然OD变得更抗干了,但我仍不知道会不会影响OD的正常工作,希望大家积极测试,有结论告知一声。
2008-8-27 16:35
0
雪    币: 7
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=;]...[/QUOTE]
为什么强OD能调试其他受保护的程序有些不解..

这个问题说明, 保险箱内的程序是不会被保险箱监控的..所以遇到被保护的程序操作.直接全部跳过..所以不管你调试什么,都会被允许..
2008-8-27 21:44
0
雪    币: 239
活跃值: (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
12
断点设置不成...看起来像是WriteProcessMemory被HOOK掉了..
PS:我没用过那个保险柜...不对我说的话负责
2008-8-27 22:27
0
雪    币: 107
活跃值: (419)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
他们的安全 优先级处在同级的时候。。。自然没啥了
2008-10-26 12:54
0
雪    币: 326
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
顶一个,坐下来慢慢看
2008-12-26 17:13
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
是件很有趣的事,这种事我想我今后也会发生(现在没学会什么)。希望大家学习楼主的精神.
2008-12-26 19:38
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
16
很欣赏楼主的专研精神...
不过我在想估计 你说它的保护能强 过StrongOD(膜拜海大侠),我想估计不会....原理有差别.呵呵
楼主继续,不仅有潜水,而且很有潜力...
2008-12-27 08:18
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
17
佩服楼主的钻研精神!
2008-12-27 11:37
0
雪    币: 193
活跃值: (872)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
学习了
2008-12-27 14:06
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习一下 还是需要多尝试呀
2008-12-28 11:51
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习了!
又长了见识!
2010-12-11 03:25
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
学习一下
是需要多尝试的
2010-12-11 08:48
0
游客
登录 | 注册 方可回帖
返回
//