首页
社区
课程
招聘
[原创]你用 OllyDbg 吗? 千万不要相信他也不要相信你的眼睛!
2008-7-28 04:45 37062

[原创]你用 OllyDbg 吗? 千万不要相信他也不要相信你的眼睛!

2008-7-28 04:45
37062
收藏
点赞7
打赏
分享
最新回复 (57)
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mmbug 2008-8-20 10:40
26
0
写的好乱啊,是不是利用下了断点产生CC,然后没有取消断点,然后去读了计算??
雪    币: 2071
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
sessiondiy 4 2008-8-20 11:14
27
0
连你都说乱, 那就肯定是乱了 
看呒的跳过. 讲到硬断的跳过
不要再顶出来了
雪    币: 214
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wangxlxk 2008-8-20 21:00
28
0
希望全世界比我高的人全挂了  哈哈哈 开玩笑的全挂了 我去哪学去.
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小黑冰 2008-8-24 01:42
29
0
楼主给他写个出来`````````
雪    币: 2071
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
sessiondiy 4 2008-8-24 02:00
30
0
这样子多没个性
变水帖了
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
seanchan 2008-8-24 17:05
31
0
,恩,氛围不错,有动力啊,知识无止境啊
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hswqs 2008-8-25 08:48
32
0
努力学习中,谢谢
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chenfengwu 2008-9-15 13:14
33
0
道行不够,不是很懂
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bingxue冰雪 2008-9-25 22:38
34
0
我想破一个软件的注册码,可是根本不会用OllyDbg ,有谁告诉我该怎么办吗?真的是菜鸟一个哦,希望能有高手的指点!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jwasami 2008-11-21 23:12
35
0
学习一下啊。。。。
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
jjnet 5 2008-11-22 01:47
36
0
确实有标题party嫌疑
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuguan 2008-11-24 18:08
37
0
我也遇见过这样的情形,就是在OD能够看到代码的第一行,按鼠标滚动浏览原来的代码就会发生改变,一直没有弄清,可能与这个类似吧?
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stupidass 2008-11-27 17:08
38
0
有一种东西,叫做花指令
雪    币: 147
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
xflin 2009-4-4 09:54
39
0
我最害怕hying,因为我常用内存断点和硬件断点,INT 3的少用
雪    币: 314
活跃值: (10)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
kflnig 14 2009-4-4 13:52
40
0
讨论激烈啊,学习了。百家争鸣,才是创造知识的时代啊。
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dsjHZAHfaf 2009-4-4 13:55
41
0
OllyDbg中的OpCode的Hex显示有时也是错误的.大家别太迷信.
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nantz 2009-4-4 20:36
42
0
跟跟大数计算器BigInt Calculator pro 代码在OD中变换.执行是正常的.
很多push指令变成了push es 等等.
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fzysoft 2009-4-8 22:53
43
0
LZ标题是否托大了,OD能解决99.9%问题话,谁不能容忍0.1%的错误?
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
wzanthony 2009-4-8 23:59
44
0
个人认为这并不是一个错误,而是只能这样处理,原因如下:
1、软断要怎么实现?让程序崩掉,再捕获异常。让程序崩掉的方法很多,不过一个字节就能搞崩的,估计也就int3能搞搞,所以代码改写为int3无可厚非。但是改写后,不能让调试者发现代码变了,所以它需要特意记录下原先的数值用于显示,而且也要用于代码还原。
2、程序修改自身代码,OD很难获知。在改写自身代码之前,一般都会有VirtualProtect修改区段属性,所以给区段加“不可写”属性,再捕获写入异常也不一定能解决问题。
而改写自身代码后,OD之前写入的int3必定会被覆盖,但是OD之前又特意记录下了原先的数值,所以显示的时候,还是会显示出原来的E8,这样就会导致“乱码”,但是由于内存中实际已经被改写,所以执行的与我们看到的不同。
3、禁用或者删除断点,会还原代码,也就是还原之前记录下的数值,所以执行的就与我们看到的相同。
4、启用断点,这个不用多说了,大家都知道。

个人认为,这基本上没有根治的方法,这相当于你用特殊的方法,把断点加在了本不应该加的地方(指令的非首字节),那断点工作异常也是可以理解的。
OD最多也就可以判断一下断点的实际位置的值到底是不是CC,如果是的话,显示原数值,否则自动禁用断点,不过如果这段代码被改写后,断点位置的实际值刚好也是CC,那就无能为力了。可能也正是因为不能保证解决问题,所以才根本就没有做这被认为“多余”的处理。

不过之前学脱SecuRom壳时,发现它的反调试很厉害,软断不起作用也就算了,硬断也不起作用,而且是直接无视掉但是可以正常运行,不会出错。这可不是加错断点了,我在GetVersion头部下断,断不下来,但是改写头部代码,jmp至空地,OutputDebugString输出,再jmp回去,改好后F9,调试信息乖乖出来了。至今没脱成功,也不知道原理是什么……
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MichaelHc 2009-5-17 22:28
45
0
“中国牛人SYSTEMDEBUG例外”,我很想知道SYSTEMDEBUG是谁,为什么google不到啊?下次见着了也好膜拜下。
雪    币: 261
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hacker一疒亻 2009-5-20 09:03
46
0
好帖子,这是经验之谈呀
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
anykey 2009-5-20 16:01
47
0
         ÿ
雪    币: 85463
活跃值: (198795)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 2009-5-20 16:32
48
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
webwizard 2010-1-21 16:58
49
0
不多说。单纯的学习!
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
龙行九天 2010-1-25 23:38
50
0
还在学习阶段,只能慢慢学了
游客
登录 | 注册 方可回帖
返回