看雪论坛
发新帖
24

[逆向分析基础] [原创]OllyDBG 入门系列(一)-认识OllyDBG

CCDebuger 2006-2-13 17:23 1123457
OllyDBG 入门系列(一)-认识OllyDBG

作者:CCDebuger

一、OllyDBG 的安装与配置

OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。汉化版的发布版本是个 RAR 压缩包,同样只需解压到一个目录下运行 OllyDBG.exe 即可:

OllyDBG 中各个窗口的功能如上图。简单解释一下各个窗口的功能,更详细的内容可以参考 TT 小组翻译的中文帮助:

反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下 OllyDBG 就可以生效了。

启动后我们要把插件及 UDD 的目录配置为绝对路径,点击菜单上的 选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:

因为我这里是把 OllyDBG 解压在 F:\OllyDBG 目录下,所以相应的 UDD 目录及插件目录按图上配置。还有一个常用到的标签就是上图后面那个字体,在这里你可以更改 OllyDBG 中显示的字体。上图中其它的选项可以保留为默认,若有需要也可以自己修改。修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动 OllyDBG。在这个对话框上点确定,重新启动一下 OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。有人可能知道插件的作用,但对那个 UDD 目录不清楚。我这简单解释一下:这个 UDD 目录的作用是保存你调试的工作。比如你调试一个软件,设置了断点,添加了注释,一次没做完,这时 OllyDBG 就会把你所做的工作保存到这个 UDD 目录,以便你下次调试时可以继续以前的工作。如果不设置这个 UDD 目录,OllyDBG 默认是在其安装目录下保存这些后缀名为 udd 的文件,时间长了就会显的很乱,所以还是建议专门设置一个目录来保存这些文件。

另外一个重要的选项就是调试选项,可通过菜单 选项->调试设置 来配置:

新手一般不需更改这里的选项,默认已配置好,可以直接使用。建议在对 OllyDBG 已比较熟的情况下再来进行配置。上面那个异常标签中的选项经常会在脱壳中用到,建议在有一定调试基础后学脱壳时再配置这里。

除了直接启动 OllyDBG 来调试外,我们还可以把 OllyDBG 添加到资源管理器右键菜单,这样我们就可以直接在 .exe 及 .dll 文件上点右键选择“用Ollydbg打开”菜单来进行调试。要把 OllyDBG 添加到资源管理器右键菜单,只需点菜单 选项->添加到浏览器,将会出现一个对话框,先点击“添加 Ollydbg 到系统资源管理器菜单”,再点击“完成”按钮即可。要从右键菜单中删除也很简单,还是这个对话框,点击“从系统资源管理器菜单删除 Ollydbg”,再点击“完成”就行了。

OllyDBG 支持插件功能,插件的安装也很简单,只要把下载的插件(一般是个 DLL 文件)复制到 OllyDBG 安装目录下的 PLUGIN 目录中就可以了,OllyDBG 启动时会自动识别。要注意的是 OllyDBG 1.10 对插件的个数有限制,最多不能超过 32 个,否则会出错。建议插件不要添加的太多。

到这里基本配置就完成了,OllyDBG 把所有配置都放在安装目录下的 ollydbg.ini 文件中。

二、基本调试方法

OllyDBG 有三种方式来载入程序进行调试,一种是点击菜单 文件->打开 (快捷键是 F3)来打开一个可执行文件进行调试,另一种是点击菜单 文件->附加 来附加到一个已运行的进程上进行调试。注意这里要附加的程序必须已运行。第三种就是用右键菜单来载入程序(不知这种算不算)。一般情况下我们选第一种方式。比如我们选择一个 test.exe 来调试,通过菜单 文件->打开 来载入这个程序,OllyDBG 中显示的内容将会是这样:

调试中我们经常要用到的快捷键有这些:

F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于 SoftICE 中的 F9)

F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。(相当于 SoftICE 中的 F10)

F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。(相当于 SoftICE 中的 F8)

F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。(相当于 SoftICE 中的 F7)

F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。(相当于 SoftICE 中的 F5)

CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。(相当于 SoftICE 中的 F12)

ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于 SoftICE 中的 F11)

上面提到的几个快捷键对于一般的调试基本上已够用了。要开始调试只需设置好断点,找到你感兴趣的代码段再按 F8 或 F7 键来一条条分析指令功能就可以了。就写到这了,改天有空再接着灌。

--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (972)
26
wenglingok 2006-2-13 17:25
2
进来学习拉。

有没有续集!
85
fly 2006-2-13 17:28
3
Ollydbg.hlp
通常在学习新工具的时候我会先看其帮助文档
24
CCDebuger 2006-2-13 17:32
4
这个主要是给刚学破解的新手看的,准备做个系列,引导新手入门。续集要等等了,主要是现在没什么时间。
douser 2006-2-13 17:35
5
比如有代码
1
2
3
4

我想跳过第2行,从1直接执行3应该怎么操作?
8
kanxue 2006-2-13 17:37
6
[i]最初由 douser 发布[/i] [B]比如有代码 1 2 3 4 ........ [/B]


1
2
3
4   //按F4
douser 2006-2-13 17:49
7
记住了,以前偶尔瞎按能过去
JiANGWEi 2006-2-13 17:54
8
支持楼主,我等需要的就是这样的入门教程。
chinavsboy 2006-2-13 18:08
9
谢谢,新手需要的就是这种简单易懂的东西
hao1geren 2006-2-13 18:43
10
若若的问一下,
大家是怎么学会使用OD的?
只是看Ollydbg.hlp?
我也大体看过,可能是没仔细看的原因,比如F7,F8,Shift+F?
好像都没有,
F4大概也没吧?
如有错,让大家高兴一下,
明天是什么节了!哈哈~~
hao1geren 2006-2-13 18:47
11
问个问题,
A.exe 运行的时候需要 B.ocx,OD载入A.exe,F9结果程序没有运行起来,遇到这种情况该怎么处理,是不是 忽略??异常没设置对?
chang 2006-2-13 19:16
12
好东西,新人必看。
yjh 2006-2-13 20:36
13
谢谢,我是菜菜,我爱这个。
xingbing 2006-2-13 20:58
14
继续往下写呀。系统看看。
assassiono 2006-2-14 01:00
15
[i]最初由 hao1geren 发布[/i] [B]问个问题, A.exe 运行的时候需要 B.ocx,OD载入A.exe,F9结果程序没有运行起来,遇到这种情况该怎么处理,是不是 忽略??异常没设置对? [/B]


放到同一个目录试试..
endofcool 2006-2-14 09:24
16
精彩,一开始,我就被F7,F8困惑了好久了,还有F4的功能,根本找不到,以前我只能在要运行到的地方F2,然后F9,等断下后在按F2取消断点,很是麻烦.还有一个问题就是下载的OD里面根本没帮助文件,就算有,一般也不去看滴  :)
无梦徽州 2006-2-14 11:14
17
在坛主的指点下,努力学习这个好资料.望还有下文呀.盼望着盼望着:东风来了.
1
Jockey 2006-2-14 12:52
18
支持把这样的东东做成一个教程,因为我也是一个初学者开始接触Ollydbg,有很多东西都没有弄懂!

         谢谢。。
18
wzwgp 2006-2-14 16:05
19
很需要这样帮助新手的热心人。
秋池飞叶 2006-2-14 16:16
20
这个好呀,适合新手学习,强力支持的说。
arron 2006-2-14 22:09
21
[i]最初由 JiANGWEi 发布[/i] [B]支持楼主,我等需要的就是这样的入门教程。 [/B]


支持
黑馒头 2006-2-14 23:11
22
学习完毕……
赞一个!
domino 2006-2-14 23:45
23
支持! 我找OD 教?很久了
proice 2006-2-15 07:08
24
可否发个详细点的 SoftICE工具 的使用教程!
ccbwx 2006-2-15 21:41
25
基础教育,我是菜菜,我喜欢。
天生任性 2006-2-15 22:34
26
终于都找到一个容易看懂的教程,感谢大侠
gb3668 2006-2-15 22:49
27
终于等来了OD的系统教程,谢谢!
eyesonly 2006-2-15 23:14
28
谢谢给新手提供,学习
铁马冰河 2006-2-16 09:45
29
好东西,支持楼主多写续篇
1
寒湖鹤影 2006-2-16 10:04
30
期待着入门五、六及以后的内容
wansky 2006-2-16 11:52
31
好东西啊
来学习一下~~~~
林志嫌 2006-2-16 12:34
32
学习中。。。。
nrj 2006-2-16 13:57
33
好东西呀学习呀
flyness 2006-2-16 16:28
34
学习学习
无梦徽州 2006-2-16 23:44
35
[i]最初由 CCDebuger 发布[/i] [B]这个主要是给刚学破解的新手看的,准备做个系列,引导新手入门。续集要等等了,主要是现在没什么时间。 [/B]

今天在网上逛了一下,各大技术性的网站纷纷转载,足以说明文章精彩.
慕容听雨 2006-2-17 14:11
36
希望作者可以发OD的系列专题
theiablue 2006-2-17 14:12
37
初学OllyDbg
很有帮助
非常感谢
无梦徽州 2006-2-17 22:57
38
本人天生愚钝,每天都进站好好的把楼主的这个系列资料学习一遍.
delphis 2006-2-18 02:58
39
太好了
楼主实在是太有耐心了
讲的真细致
希望后面对帖子能继续把od详细介绍下
这个对我们这样的菜鸟帮助太大了
3x
begone 2006-2-18 20:45
40
我支持下!我正在看哦!
bichang 2006-2-18 21:07
41

顶。。。。。。。。。。。。。。。。
传教士 2006-2-18 23:39
42
支持楼主,我等需要的就是这样的入门教程。
have 2006-2-19 00:08
43
初学破解,很有帮助。谢谢了~~~
木子 2006-2-19 08:15
44
学习
zhangyilan 2006-2-21 19:25
45
入门学习的好东西。顶
lovesmt 2006-2-26 10:44
46
对新手帮助很大呀,谢谢楼上的
十三语 2006-2-28 12:42
47
能不能做个教程给看看,像我 这样智商的人看起来还是有点吃力的!
lcw 2006-3-1 16:55
48
顶一下哈~!!
东海浪子 2006-3-2 20:58
49
太谢谢了,我正不知如何学习呢??
kgd 2006-3-4 11:07
50
多谢楼主啦~~~~~~~~~~~~
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 微信公众号:ikanxue
Time: 0.014, SQL: 9 / 京ICP备10040895号-17