首页
社区
课程
招聘
[分享]我的断点心得——帮初学者进阶
发表于: 2008-12-21 16:02 51228

[分享]我的断点心得——帮初学者进阶

2008-12-21 16:02
51228
收藏
免费 8
支持
分享
最新回复 (92)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
感谢楼主,讲的很清晰,让初学者能有学习的兴趣
2008-12-22 15:09
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
27
1.算法,请看我在8楼的回复说明。你那个改EDI,是爆破。

2.发布软件注册机,论坛明令禁止。发布破解文章可以,但需要有一些注意事项,比如隐去软件的名称等。请阅读版规。
2008-12-22 18:16
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
先帮你顶,再慢慢看!
2008-12-22 20:40
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
29
现在虽然没时间玩电脑,但偶尔还是得来逛逛的.
2008-12-22 20:57
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
"下面我来讲今天的第3个技巧:RUN跟踪。不熟悉的人先去看看OD的说明书,照着说明书将相关选项设置好,否则可能不起作用。"
请教:我按照OD说明书上的设置好,仍然不能向你说的那样断下。
PS:设置完中断条件后需要取消GetWindowTextA的断点么?
如果不取消,我会一直在这个地方断下,无论用crtl+f11还是crtl+f12.
如果取消,程序就会跑来。
2008-12-22 21:46
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
31
请再仔细看看原文。

条件断点生效后,先返回到krnln模块当中,然后再用Run跟踪走到EXE模块。

这里面的原理,虽然很简单,但没有一定基础的还是不太好理解,以后慢慢就懂了。
2008-12-23 00:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
认真看了一下,可能理解能力差,有些问题要问一下

问1:原文:我们希望只有在读取用户输入内容时才中断,先来到OD的“窗口”窗口

这是GetWindowTextW断了几次后再看windows窗口?我第四次断后还是没有运行,我这里所谓的运行是指程序界面正常显示,能写入东东,而事实是第一次断时程序就运行了,任务栏上能看见,只是界面无法正常显示.而且我一直F9也没用,界面还是无法正常显示.

问2:原文:再回到反汇编窗口,在GetWindowTextW这行按Shift+F2,弹出如下条件断点对话框

"这行"是应该是反汇编窗口第一行了,写成"在GetWindowTextW这行"令人有些疑惑,还有一个问题,就是我恁个人理解,在第四次断下后,按文中意思下好断点后运行没有断下来,直接就弹出错误提示框了.

望能解释一二.
2008-12-23 13:16
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
中于,你比我还菜。我问的就够笨的了。你比我强不了多少。
问一、不用管他运行了几次。

问二、“这行”就是在堆栈里中断的这行GetWindowTextW,在反汇编窗口里可没有这行显示。他只是停在一个高亮的地方,就是在这个高亮的位置处Shift+F2.确定,在运行后,返回,在向上找。
书呆子老大,你写的只有会汇编的人才能看懂。俺看不大明白。还是不详细。不会汇编的看不了。象我,就那个ESP+4,我想了好长时间,注明怎么的来的就好了。
所谓一个笨蛋提问。三个高手都不一定能回答清楚。
2008-12-23 13:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
谢谢你回答,
你在堆栈这一行shift+F2?不知你试过了没有?而我在堆栈shift+F2是没反应的,难道是我od的问题?以前也没听说过在堆栈下断的.
2008-12-23 13:48
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
35
楼上几位,原文已经改正,并用蓝字标出。

我的意思是断点要下在GetWindowTextW这个函数的代码当中,只是我说得不太清楚。

回toufyqin:

  “窗口”窗口,就是点一下OD工具栏中的带 “W”字样的按钮,或者在菜单上点 “查看”->“窗口”。打开这个界面的目的是看一下编辑框(Edit)的句柄是多少。请注意我原文中给的代码中红字部分。有了这个句柄值,我们才好用这个值下条件断点。

    我们要下条件断点,代替刚开始试验的普通无条件断点,所以下断点是位置是在代码中。因为之前下断点只是试探性的,是为了看看这个断点有没有用,所以不用管它中断几次。

断点条件中的[esp+4]=XXXXXXXX,其中XXXXXXXX的值就是我们在“窗口”界面中看到的Edit控件的句柄值,这个值每次运行都不一样,我给的那个值只是个例子,不要照抄。
2008-12-23 14:45
0
雪    币: 202
活跃值: (151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
新人很热衷对大牛们文章的膜拜,自然把这样他们认为“没有深度”的文章略过了。
2008-12-23 14:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
终于理清了,又学到了新的一招,非常感谢!以往太沉溺于"字串参考"了.
2008-12-23 19:17
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
看完再顶,顶完还要看,包括兄弟们的回贴.
脱壳难,VM难,找关键代码也难.郁闷ing...
现在unpacker cracker门槛越来越高了.
2008-12-23 19:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
明白了,谢谢
2008-12-23 23:16
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
40
看不懂, 收藏。。。。。。。。。。。。。。。。。。。。。。。。。
2008-12-23 23:21
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
认真看完了帖子,更加理解了条件断点,但对于run跟踪,有点点迷惑,因为OD实在用得不是很熟悉,没有大量的例子练习过。虽然也看了中文帮助文档,说明上有这么一句:可以通过按Ctrl+F11(Run跟踪步入,进入子函数)或者Ctrl+F12(Run跟踪步过,一次执行完子函数)开始Run跟踪,并用F12或者Esc键停止跟踪。

本来想多看看run跟踪来看看它到底是用在哪些方面,但在坛子里搜索了下“run 跟踪”,提示找不到帖子,只好自己琢磨了。
对于run跟踪,我的理解是这样的,如果不对,请大家指正:假设我们从程序的某个地方开始按F7/F8键跟踪程序,每按一次键,程序走一步,我们在纸上面做一次记录,这些记录包括当前执行的指令、指令的地址、寄存器的变化等等(甚至更进一步:内存数据段内哪个地址的值发生了变化),按一次F7/F8键,我们就做一次记录,相当于填表格一样的填下来,一直到我们想要的地方(比如关键地方、或者OEP)停止下来,然后在我们停下来的地方下一次F2断点或者硬件断点等,这个断点等待下一次备用。但是人工跟踪和记录这些信息非常慢,于是就有了run跟踪,设置了run跟踪,它会自动的帮我们记录这些信息,Ctrl+F11/F12就相当于我们不停的按F7/F8,如果我们用Ctrl+T设置了条件,就相当于没有用run跟踪时设置的一个断点。

大概的理解就这么多,不知道还有没有其他的功能。
还有个问题:设置了run 跟踪后按下F9,它是否自动的记录跟踪的结果呢,跟踪的效果跟Ctrl+F11/F12是否一样?或者是否只能用Ctrl+F11/F12才能run跟踪到记录?

对于第三个例子,设置好条件断点后,当程序到达krnln模块内,我采用内存断点,在exe模块的所有段上面都设置了内存访问断点,也能到达同一个地方。
2009-1-11 17:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
蛮有用的,感谢啊
2009-1-12 19:46
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
43
基本上跟我理解得差不多,OD1.1的RUN 跟踪似乎就是通过自动单步来实现的。不过OD2.0使用了另一种方法来实现RUN跟踪,就是虚拟执行。

关于在.text下内存断点的方法,确实是一种很好的方法,你提得很好,想来跟脱壳时的“二次内存镜像断点”法的思路有异曲同工之妙。

补充一点,F9是不启动Run跟踪的。
2009-1-16 01:53
0
雪    币: 267
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
谢谢了很适合我,收藏了.
2009-1-18 00:18
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
牛人一位~
很不错的文章~
2009-1-19 09:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
学习了,run跟踪没用过。得学习下
2009-1-23 17:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
看来还是积累不够!还得狠啃汇编基础及各种工具的使用说明书,楼主的好贴子应该顶一下!
2009-2-9 17:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
非常好,非常好.
学西了
2009-2-9 17:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
谢谢 好好看看
2009-2-12 13:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
同意楼上的.'
2009-2-18 18:36
0
游客
登录 | 注册 方可回帖
返回
//