ollydbg中文版是一款Windows平台下的32/64位调试器,是一款反汇编工作的常用工具软件,ollydbg中文版支持插件扩展功能,最擅长分析函数过程、循环语句、选择语句、表[tables]、常量、代码中的字符串、欺骗性指令[tricky constructs]、API调用、函数中参数的数目和import表等等,ollydbg中文版有多达百余个选项用来设置OllyDbg的外观和运行,ollydbg中文版还可以用来调试多线程程序。因此用户可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误,有需要的用户可以到此下载。
软件功能及特点
数据格式
OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
帮助
此文件中包含了关于理解和使用 OllyDbg 的必要的信息。如果您还有 Windows API 帮助文件的话(由于版权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函数的相关帮助。启动您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。OllyDbg支持即时调试。OllyDbg根本不需要安装,可直接在软盘中运行!
调试DLLs
您可以利用OllyDbg调试标准动态链接库(DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
源码级调试
OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。代码高亮OllyDbg 的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。线程OllyDbg 可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。
分析
OllyDbg 的最大特点之一就是分析。它会分析函数过程、循环语句、选择语句、表[tables]、常量、代码中的字符串、欺骗性指令[tricky constructs]、API调用、函数中参数的数目,import表等等.. 这些分析增加了二进制代码的可读性,减少了出错的可能性,使得我们的调试工作更加容易。
Object扫描
OllyDbg 可以扫描Object文件/库(包括 OMF 和 COFF 格式),解压代码段[code segments]并且对其位置进行定向Implib扫描由于一些DLL文件的输出函数使用的索引号,对于人来说,这些索引号没有实际含义。如果您有与DLL相应的输入库[import library],OllyDbg 就可以将序号转换成符号名称。完全支持Unicode几乎所有支持 ASCⅡ 的操作同时也支持 UNICODE,反之亦然。名称OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。
已知函数
OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。函数调用OllyDbg 可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯软件的快捷键回车键- 将选中的命令添加到命令历史[command history]中,如果当前命令是一个跳转、函数或者是转换表的一个部分,则进入到目的地址。退格键 - 移除选中部分的自动分析信息。如果分析器将代码误识别为数据,这个快捷键就非常有用。请参考解码提示[decoding hints].Alt+退格键 - 撤消所选部分的修改,以备份数据的相应内容替换所选部分。仅当备份数据存在且与所选部分不同时可用。Ctrl+F1 -如果API帮助文件已经选择,将打开与首个选择行内的符号名相关联的帮助主题。F2 -在首个选择的命令上开关INT3 断点[Breakpoint],也可以双击该行第二列。Shift+F2 -在首个选择命令设置条件断点,参见忽略Kernel32中内存访问异常[Ignore memory access violations in Kernel32]。F4 -执行到所选行,在首个选择的命令上设置一次性断点,然后继续执行调试程序,直到OllyDbg捕获到异常或者停止在该断点上。在程序执行到该命令之前,该一次性断点一直有效。如有必要,可在断点窗口[Breakpoints window]中删除它。Shift+F4 -设置记录断点(一种条件断点,当条件满足时一些表达式的值会记录下来), 详情参见断点[Breakpoint]。Ctrl+F5 -打开与首个选择的命令相对应的源文件。Alt+F7 -转到上一个找到的参考。Alt+F8 -转到下一个找到参考。Ctrl+A -分析当前模块的代码段。Ctrl+B - 开始二进制搜索。Ctrl+C -复制所选内容到剪贴板。复制时会简单地按列宽截断不可见内容,如果希望排除不需要的列,可把这些列的宽度调整到最小。Ctrl+E -以二进制(十六进制)格式编辑所选内容。Ctrl+F -开始命令搜索。Ctrl+G -转到某地址。该命令将弹出输入地址或表达式的窗口。该命令不会修改 EIP。Ctrl+J -列出所有的涉及到该位置的调用和跳转,在您用这个功能之前,您必须使用分析代码功能。Ctrl+K - 查看与当前函数相关的调用树[Call tree]。在您用这个功能之前,您必须使用分析代码功能。Ctrl+L - 搜索下一个,重复上一次的搜索内容。Ctrl+N - 打开当前模块的名称(标签)列表。Ctrl+O - 扫描object文件。扫描Object文件。该命令会显示扫描Object文件对话框,您可以在该对话框中选择Object文件或者lib文件,并扫描这个文件,试图找到在实际代码段中用到的目标模块。Ctrl+R -搜索所选命令的参考。该命令扫描激活模块的全部可执行代码,以找到涉及到首个选中的命令的全部相关参考(包括:常量、跳转及调用),您可以在参考中使用快捷键Alt+F7 和 Alt+F8来浏览这些参考。为便于您使用,被参考的命令也包含在该列表中。Ctrl+S -命令搜索。该命令显示命令查找[Find command]对话框供您输入汇编命令,并从当前命令开始搜索。星号[Asterisk](*) -转到原始位置(激活线程的EIP处)。Ctrl+星号(*) - 指定新的起始位置,设置当前所选线程的EIP为首个选择字节的地址。您可以在选择EIP并撤消该操作。加号[Plus](+) -如果run跟踪[run trace] 没有激活,则根据命令历史[command history]跳到下一条运行过命令的地方;否则跳到Run跟踪的下一个记录。Ctrl+加号 - 跳到前一个函数开始处。(注意只是跳到,并不执行)减号[Minus](-) - 如果run跟踪[run trace] 没有激活,则根据命令历史[command history]跳到前一条运行过命令的地方;否则跳到Run跟踪的前一个记录。Ctrl+减号 - 跳到下一个函数开始处。(注意只是跳到,并不执行)空格[Space] - 修改命令。您可在显示对话框中以汇编语言修改实际指令或输入新指令,这些指令将替换实际代码,您也可以在想要修改的指令处双击鼠标。冒号[Colon](:) - 添加标签。显示添加标签窗口[Add label]或修改标签窗口[Change label],您可在此输入与首个选择的命令中的第一个字节相关联的标签(符号名)。
注意,在多种编程语言中,冒号可以是标签的一部分分号[Semicolon](;) - 添加注释[comment]。显示添加注释窗口[Add label]或修改注释窗口[Change label],您可在此输入与首条所选命令的第一个字节相关联的注释(注释串会显示在最后一列中)。
注意,多种汇编语言使用分号作为注释开始。您也可以在注释列双击需要注释的命令行
常见问题
1、怎样保存ollydbg的调试信息以便下次使用?
调试菜单-选择符号路径 然后在弹出的对话框设置路径即可。注意调试文件为udd格式,,当被调试文件路径发生变化时调试信息不再可用,,比如:你在C盘有一个文件用ollydby调试并加入注视或断点后,,把这个文件移到别的路径下,再用ollydbg打开调试信息注视和断点不被显示。
PS:断点和注释窗口只能查看到当前模块的断点和注释,且当前被ollydbg分析为代码的断点和注释才能被看到
更新日志
1.对Ollydbg的窗口签名进行了更改,从而避免被针对性检测。
2.对Ollydbg的菜单做出调整。
3.针对一些有可能被检测的插件进行了删减。
4.修改了一些可能被检测的内容。
5.更新ollydbg的插件为目前较新的版本。