目录
动态分析技术调试器
什么是OllyDbg
OllyDbg能干什么
OllyDbg窗口介绍
1、反汇编面板窗口
2、信息面板窗口
3、数据面板窗口
4、寄存器面板窗口
5、栈面板窗口
动态分析技术调试器
动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型。用户模式调试器是指用来调试用户模式应用程序的调试器,工作在Ring3级例如llyDbgx64dbg、VisualC++等编译器自带的调试器。内核模式调试器是指能调试操作系统内核的调试器,例如OllyDbg。
什么是OllyDbg
OllyDbg(简称“OD”)是由leh Yuschuk(网上查了很久,竟然很少OD作者的消息。在一个国外站点上,我零星地找到一点资料:Oleh Yuschuk: 可能是前苏联->俄罗斯人,前苏联解体后移民德国且一直住在德国一个古老的小城,具体的信息查询不到)编写的一款具有可视化界面的用户模式调试器,可以在当前各种版本的 Windows上运行NT系统架构更能发挥OllyDbg 的强大功能。
OllyDbg能干什么
OllyDbg结合了动态调试和静态分析,具有 GUI界面,非常容易上手,对异常的跟踪处理相当灵活。这些特性使OllyDbg成为调试Ring3级程序的首选工具。它的反汇编引擎很强大,可识别数千个被C和Wimdows频繁使用的函数,并能将其参数注释出来。它会自动分析函数过程循环语句代码中的字符串等。此外,开放式的设计给了这个软件很强的生命力。通过爱好者们的不断修改和扩充,OllyDbg的脚本执行能力和开放插件接口使其变得越来越强大。
官方的下载地址:OllyDbg v1.10 OllyDbg这里推荐吾爱的插件多超好用。
OllyDbg窗口介绍
OllDbg启动后会打开多个子窗口,单击“View”菜单或工具栏上的“L”“E”“M”等快捷按钮可在各子窗口之间切换如下图所示。这些快捷按与“View”菜单的功能项对应包括Log窗口CPU窗口等各窗口功能描述请参考0llyDbg的帮助文档。
单击“File”“Open”选项(快捷键“F3”)打开一个EXE文件OllyDbg会立即加载文件自动分析并列出汇编代码。默认的当前窗口是CPU窗口,它是0yDbg中最重要的窗口,对应的图标是C,调试程序的绝大部分操作都要在这个窗口中进行。该窗口包括5个面板窗口分别是反汇编面板、寄存器面板、信息面板、数据面板和栈(stack)面板,如下图所示。各窗口的外观属性例如标题栏(bar)字体(font)等可以通过对应窗口右键快捷菜单中的“Appearance”(界面选项)选项控制。
1、反汇编面板窗口
反汇编面板窗口(Disassembler window)显示被调试程序的代码有4列分别是地址(Address)十六进制的机器码(Hexdump)反汇编代码(Disassembly)和注释(Comment)。在最后一列注释中显示了相关API参数或运行简表,非常有用。
在反汇编面板窗口的列(注意:不是列标题》中,默认情况下,双击可以完成如下操作。
- Address列:显示被双击行地址的相对地址,再次双击返回标准地址模式。
- Hexdump列:设置或取消无条件断点,对应的快捷键是“F2”键。
- Disassembly列:调用汇编器,可直接修改汇编代码,对应的快捷键是空格键。
- Comment列:允许增加或编辑注释,对应的快捷键是“”键。
从键盘上选择多行,可按“Shit”键和上下光标键(或者“PgUp”/“PgDn”键)实现也可利用右键快捷菜单命令实现。按“Ctl”键并按上/下光标键,可逐行滚动汇编窗口(当数据与代码混合时,此功能非常有用)。
2、信息面板窗口
在进行动态跟踪时,信息面板窗口(Information window)将显示与指令相关的各寄存器的值API函数调用提示和跳转提示等信息。
3、数据面板窗口
数据面板窗口(Dumpwindow)以十六进制和字符方式显示文件在内存中的数据。要显示指定内存地址的数据,可单击右键快捷菜单中的“Cotoexpression”命令或按“Ctl+G”快捷键打开地址窗口,输人地址。
4、寄存器面板窗口
寄存器面板窗口(Registerswindow)显示CPU各寄存器的值支持浮点MMX和3DNow!寄存器。可以单击右键或窗口标题切换显示寄存器的方式。
5/栈面板窗口
栈面板窗口(Stack window)显示的内容即ESP指向地址的内容。将数据放入的操作称为人栈(push)从栈中取出数据的操作称为出栈(pop)。窗口非常重要各API函数和子程序都利用它传递参数和变量等。