一、简介
OD,是一个反汇编工具,又叫OllyDebug,一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3 级的调试器,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。
二、安装
下载链接:https://down.52pojie.cn/Tools/Debuggers/
下载完成后解压,文件夹文件目录如下。使用前将安装包解压到固定目录下,然后运行根目录下的”路径修复工具.exe“文件,这个文件会自动把ollydbg.ini中的“C:\吾爱破解专用版Ollydbg”路径全部替换成当前解压出来的文件夹路径,方便程序识别插件和一些功能,当你移动OD目录后,也要进行同样操作,更新配置中的路径。
除了直接启动 OllyDBG 来调试外,我们还可以把 OllyDBG 添加到资源管理器右键菜单,这样我们就可以直接在 .exe 及 .dll 文件上点右键选择“用Ollydbg打开”菜单来进行调试。要把 OllyDBG 添加到资源管理器右键菜单,只需点菜单 选项->添加到浏览器,将会出现一个对话框,先点击“添加 Ollydbg 到系统资源管理器菜单”,再点击“完成”按钮即可。要从右键菜单中删除也很简单,还是这个对话框,点击“从系统资源管理器菜单删除 Ollydbg”,再点击“完成”就行了。
通过Options->Appearance->Directions可以配置OD的UDD 路径和Plugin路径
其中UDD路径保存了我们调试的信息:
Plugin插件路径包含了各种插件:
三、界面介绍
如上图所示几个部分:
- 菜单栏:对文件的主要操作及其功能,命令以及操作、显示等都在这里。
- 工具栏:常用功能的便捷按钮
- 反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
- 寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。
- 信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。
- 数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。
- 堆栈窗口:显示当前线程的堆栈。
四、窗口内容介绍
-
首先运行待分析文件,选择File->Open或使用热键F3,载入Hello.exe.
-
反汇编窗口内容主要分为4个部分:1:程序汇编地址;2:机器码;3:反汇编语句;4:注释信息窗口。如下图
-
当前所选线程的CPU寄存器内容。点击标签寄存器(FPU)可以切换显示寄存器的方式。
其中显示的有1:通用寄存器信息;2:标志位、段寄存器信息;3:浮点寄存器信息
-
信息窗口显示当前选中的命令的参数:EBP的值
-
数据窗口显示内存和文件的内容,主要分为3个部分:1:中转数据仓库地址;2:HEX二进制代码;3:文本ACCII编码
-
堆栈窗口:显示 ESP寄存器指向的信息
五、工具栏快捷方式介绍
按钮1=F3,打开被调试的exe文件;按钮2=CTRL+F2,重新加载被调试的程序。按钮3=ALT+F2,关闭被测试的文件。
1=F9运行,2=F12暂停,3=F7单步入,4=F8单步过,5=CTRL+F11跟踪步入,6=CTRL+F12跟踪步过;7=CTRL+F9 执行到返回,8=转到反汇编窗口的地址
L:查看OD运行的日志信息
E:被调试exe程序所加载的所有模块的信息(加载基址,大小,入口(OEP),名称,版本,路径)OEP:(Original Entry Point)
M:程序的内存映射视图(memory map)
T:线程信息
W:窗口windows信息
H:handles 句柄表
C:显示CPU窗口(反汇编窗口)ALT+C
/ :P,显示补丁(Patches)信息 CTRL+P
K:调用堆栈 ALT+K
B:软件断点列表 Alt+B
R:显示参考(数据引用等) references
… : RUN跟踪轨迹,run trace
S :源码source显示窗口
五、常用快捷键
调试中我们经常要用到的快捷键有这些:
F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。
工具栏对应的快捷方式有
Ctrl+A :分析代码(函数,参数…)
Ctrl+G : 跳转到
Ctrl+X : 复制地址
Ctrl+E :修改内存
Ctrl+B :二进制搜索
Ctrl+F :指令搜索(单条指令)
Ctrl+S :指令搜索(多条指令)
Ctrl+F9 :运行到返回(ret指令位置)
Ctrl+F12: 重启调试
Ctrl+Shift+x :复制二进制数据