ollydbg是一款非常不错的反汇编工具,软件内主要针对反汇编的调试,给您在使用上带来了更多的便利。另外ollydbg内还支持Windows双系统,满足了更多用户在使用上的需求。


2、减少了出错的可能性,使调试工作更加容易
3、是反汇编工作的常用工具
4、附带了118脱壳脚本和各种插件
5、支持Windows平台下的32/64位系统上使用
6、功能非常强大,已经完全取代了SoftICE

您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg反汇编工具中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。OllyDbg支持即时调试,根本不需要安装,可直接在软盘中运行!
线程
OllyDbg反汇编工具可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。
调试DLLs
您可以利用OllyDbg调试标准动态链接库(DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
源码级调试
OllyDbg反汇编工具可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。
代码高亮
OllyDbg的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。
名称
OllyDbg可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。
已知函数
OllyDbg反汇编工具可以识别 2300 多个C 和Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。
函数调用
OllyDbg反汇编工具可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
配置
有多达百余个选项用来设置OllyDbg 的外观和运行。
数据格式:OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
运行环境
OllyDbg可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
支持的处理器
OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。

F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。

打开ollydbg,载入目标程序,如下图。

在汇编窗口中点击鼠标右键,选中strfinder字符查找插件,选择搜索ascII字符串,如下图。

找到我们要修改的字符串,双击追踪到汇编窗口,如下图。

在汇编窗口中,点击鼠标右键,选择数据窗口中跟随,立即常数,如下图。

在数据窗口中,选择一段内存,不要超过了原来字符串的长度,点击鼠标右键,选择编辑--二进制编辑,如下图。

在编辑数据地址对话框中的mbcs栏输入我们的字符,如下图。

点击hex栏,在刚刚改过的字符后面输入00 00来截断字符串,点击确定,如下图。

点击鼠标右键,选择编辑--复制所有改变到可执行文件,如下图。

点击鼠标右键,点击保存文件,如下图 。

在弹出的文件已更改的提示中,选择是,如下图。

输入文件名,点击保存,如下图。

双击打开我们保存的程序,修改成功,结果如下图。

在ollydbg中设置断点
打开ollydbg,加载需要调试的程序,如下图。

找到我们需要下断点的地方,点击F2,这时在地址处就有红色表示,即为断点,如下图。

下完断点后,我们点击运行,工具栏上的三角符号,这时程序将运行到我们下断点的位置,这时我们可以看到内存数据和寄存器都有变化,如下图。

再次点击f2,可以取消断点,如下图。

如果我们想重新加载程序,我们可以点击工具栏的额后退按钮,如下图。

点击后,ollydbg会提示重新加载可执行文件,我们点击yes,如下图。

稍等片刻,将会加载完成,程序停在程序执行的入口,如下图。

调试菜单->;选择符号路径 然后在弹出的对话框设置路径即可。注意调试文件为udd格式,,当被调试文件路径发生变化时调试信息不再可用,,比如:你在C盘有一个文件用ollydby调试并加入注视或断点后,,把这个文件移到别的路径下,再用ollydbg打开调试信息注视和断点不被显示。
断点和注释窗口只能查看到当前模块的断点和注释,且当前被ollydbg分析为代码的断点和注释才能被看到。
2.对Ollydbg的菜单做出调整。
3.针对一些有可能被检测的插件进行了删减。
4.修改了一些可能被检测的内容。
5.更新ollydbg的插件为目前较新的版本。

【软件介绍】
OllyDBG中文破解版是一款非常不错的软件逆向分析工具,在国内大多数的人都是使用OllyDbg来修改破解软件。OLLYDBG是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。
【软件特色】
1、目前为止最流行的调试解密工具2、减少了出错的可能性,使调试工作更加容易
3、是反汇编工作的常用工具
4、附带了118脱壳脚本和各种插件
5、支持Windows平台下的32/64位系统上使用
6、功能非常强大,已经完全取代了SoftICE

【功能说明】
启动您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg反汇编工具中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。OllyDbg支持即时调试,根本不需要安装,可直接在软盘中运行!
线程
OllyDbg反汇编工具可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR 返回一样)。
调试DLLs
您可以利用OllyDbg调试标准动态链接库(DLLs)。OllyDbg 会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
源码级调试
OllyDbg反汇编工具可以识别所有 Borland 和 Microsoft 格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。
代码高亮
OllyDbg的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。
名称
OllyDbg可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。Object 扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。
已知函数
OllyDbg反汇编工具可以识别 2300 多个C 和Windows API 中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。您还可以在已知函数设定 Log断点并可以对参数进行记录。
函数调用
OllyDbg反汇编工具可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
配置
有多达百余个选项用来设置OllyDbg 的外观和运行。
数据格式:OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
运行环境
OllyDbg可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
支持的处理器
OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。

【常用快捷键】
F2:设置断点,只要在光标定位的位置按F2键即可,再按一次F2键则会删除断点。F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。

【使用教程】
修改字符串打开ollydbg,载入目标程序,如下图。

在汇编窗口中点击鼠标右键,选中strfinder字符查找插件,选择搜索ascII字符串,如下图。

找到我们要修改的字符串,双击追踪到汇编窗口,如下图。

在汇编窗口中,点击鼠标右键,选择数据窗口中跟随,立即常数,如下图。

在数据窗口中,选择一段内存,不要超过了原来字符串的长度,点击鼠标右键,选择编辑--二进制编辑,如下图。

在编辑数据地址对话框中的mbcs栏输入我们的字符,如下图。

点击hex栏,在刚刚改过的字符后面输入00 00来截断字符串,点击确定,如下图。

点击鼠标右键,选择编辑--复制所有改变到可执行文件,如下图。

点击鼠标右键,点击保存文件,如下图 。

在弹出的文件已更改的提示中,选择是,如下图。

输入文件名,点击保存,如下图。

双击打开我们保存的程序,修改成功,结果如下图。

在ollydbg中设置断点
打开ollydbg,加载需要调试的程序,如下图。

找到我们需要下断点的地方,点击F2,这时在地址处就有红色表示,即为断点,如下图。

下完断点后,我们点击运行,工具栏上的三角符号,这时程序将运行到我们下断点的位置,这时我们可以看到内存数据和寄存器都有变化,如下图。

再次点击f2,可以取消断点,如下图。

如果我们想重新加载程序,我们可以点击工具栏的额后退按钮,如下图。

点击后,ollydbg会提示重新加载可执行文件,我们点击yes,如下图。

稍等片刻,将会加载完成,程序停在程序执行的入口,如下图。

【常见问题】
怎样保存ollydbg的调试信息以便下次使用?调试菜单->;选择符号路径 然后在弹出的对话框设置路径即可。注意调试文件为udd格式,,当被调试文件路径发生变化时调试信息不再可用,,比如:你在C盘有一个文件用ollydby调试并加入注视或断点后,,把这个文件移到别的路径下,再用ollydbg打开调试信息注视和断点不被显示。
断点和注释窗口只能查看到当前模块的断点和注释,且当前被ollydbg分析为代码的断点和注释才能被看到。
【更新日志】
1.对Ollydbg的窗口签名进行了更改,从而避免被针对性检测。2.对Ollydbg的菜单做出调整。
3.针对一些有可能被检测的插件进行了删减。
4.修改了一些可能被检测的内容。
5.更新ollydbg的插件为目前较新的版本。

