Ollydbg是一款实用的反汇编工具,我们可以通过软件轻松的过掉那些强壳的反调试保护,是一款功能十分强大的反汇编工具。软件当中包含了很多的插件工具,能给完美的支持大家在破译过程中的各个需要。通过指令我们可以在软件中机型不同的方案指定,能够进行个性化的代码高亮方案。我们可以使用软件中条件跳转、入栈、出栈、调用等指令,为我们的使用中带来许多的便利。软件支持多个不同版本的操作系统,能够在不同处理器上进行高速使用。我们可以进行多线程的调试使用,通过多线程程序,我们得以实现线程之间的来回转化、恢复等功能。并且软件还会将每一个线程的错误都继续宁显示,为处理上带来更加准确的修改调整。软件对于很多函数都进行了收录录用,能够识别2000多个API与C中的常用函数,对于一些实用的函数均有收录。通过这一特性,我们可以灵活的进行编写自己想要的各个内容程序。软件还支持识别Borland和Microsoft格式的调试信息,通过信息的源代码、函数名等实现源码级别的调试。本次为大家带来的是
Ollydbg汉化破解版的最新资源包,有需要的朋友可以在本站进行资源包的下载与使用,对于软件感兴趣的朋友不妨下载体验下,相信会对大家的平常使用上带来许多的帮助的。
使用教程
一、窗口界面
我们只需要解压一个到目录当中即可,然后我们在运行exe程序就可以了
反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
寄存器窗口:显示当前所选线程的 CPU 寄存器内容。同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。
信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。
数据窗口:显示内存或文件的内容。右键菜单可用于切换显示方式。
堆栈窗口:显示当前线程的堆栈。当被调试程序暂停运行时,堆栈窗口一般会自动滚动将当前ESP指向的地址放在窗口的第一条。并且这个地址被高亮显示。在某些情况下禁止滚动会更方便一些,可以通过在堆栈窗口右键单击[锁定堆栈]来禁止堆栈自动滚动。
菜单窗口:顾名思义,一些命令以及操作、显示等都在这里。
命令行窗口:用来下断点等相关命令。
二、调试教程
查壳工具有 PEiD 和 FI。有壳的话我们要尽量脱了壳后再来用 OllyDBG 调试,特殊情况下也可带壳调试。
1、我们先来运行一下这个 crackme(用 PEiD 检测显示是 Delphi 编的)
2、当crackme 已经把用户名和注册码都输好了后,我们点击“Register now !”再弹出了的对话框放置中点击确定接口
3、启动我们的软件,然后打开文件,将上叙的crackme文件进行使用
4、再反汇编的窗口当中右键调出菜单,然后找到参考文本字串选项
下方的超级字串参考+ 插件会更快,但具体看个人使用情况
5、然后在弹出来的对话框当中右键输入,选择“查找文本”菜单项,输入“Wrong Serial, try again!”的开头单词“Wrong”(注意这里查找内容要区分大小写)来查找,右键跳出窗口进行选择
6、到了这里后我们点击右键菜单来进行参考的查找
7、然后在图中00440F2C 处按 F2 键设个断点,现在我们按 F9 键,程序已运行起来了。
我在上面那个编辑框中随便输入一下,下面那个编辑框还保留为原来的“754-GFX-IER-954”,我们点一下那个“Register now !”按钮,暂停在我们下的断点处。看下信息窗口,这时可以看到刚才输入的内容了,堆栈 SS:[0012F9AC]=00D44DB4, (ASCII "CCDebuger")
EAX=00000009
上面的内存地址 00D44DB4 中就是我们刚才输入的内容,我这里是 CCDebuger。你可以在 堆栈 SS:[0012F9AC]=00D44DB4, (ASCII "CCDebuger") 这条内容上左击选择一下,再点右键,在弹出菜单中选择“数据窗口中跟随数值”,你就会在下面的数据窗口中看到你刚才输入的内容。而 EAX=00000009 指的是你输入内容的长度。如我输入的 CCDebuger 是9个字符。
8、然后按F8进行一个分析,然后按F7,进入到CALL
根据分析,我们知道用户名必须是“Registered User”。我们按 F9 键让程序运行,出现错误对话框,点确定,重新在第一个编辑框中输入“Registered User”,再次点击那个“Register now !”按钮,被 OllyDBG 拦下。因为地址 00440F34 处的那个 CALL 我们已经分析清楚了,这次就不用再按 F7 键跟进去了,直接按 F8 键通过。我们一路按 F8 键,来到第二个关键代码处:
地址 00440F51 处的 CALL CrackMe3.00403B2C 和上面我们分析的地址 00440F34 处的 CALL CrackMe3.00403B2C一样,
9、然后我们点击菜单,在断点上进行点击,进入断点窗口,将断点删除,将得出结论的进行输入,然后就成功了
三、软件快捷功能选项
F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于 SoftICE 中的 F9)
F3:加载一个可执行的程序,进行调试分析
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。(相当于 SoftICE 中的 F7)
F5:缩小,还原当前的窗口
F7:执行一行代码,遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条 指令上。
F8:执行一行代码,遇到 CALL 等子程序不进入其代码。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。(相当于 SoftICE 中的 F5)。
CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。(相当于 SoftICE 中的 F12)。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于 SoftICE 中的 F11)。
上面提到的几个快捷键对于一般的调试基本上已够用了。要开始调试只需设置好断点,找到你感兴趣的代码段再按 F8 或 F7 键来一条条分析指令功能就可以了。
通过OD将程序的标题“Hello world”改为“OD Class 01” 直接单步执行法 按F8单步执行,找到MessageBox传参的地方,直接在数据窗口修改即可s
四、断点法
1、在反汇编窗口中按下Ctrl+G,输入GetDlgItemTextA,发现存在这个API函数,点击OK,并按F2下断点
2、按F9运行程序,输入用户名和序列号,点check,程序断下;
3、单步执行程序,共断下两次,依次用Ctrl+F9执行到返回,继续向下执行,则可看到
爆破方法: ①将测试其返回值后的跳转Nop掉; ②将test eax,eax改为mov al,1
右键=>复制到可执行文件=>选择;右键=>备份=>保存数据到文件,命名为TraceMe1.exe,运行之,输入用户名和密码,点check,提示成功。
此外,另一个读取编辑框函数:GetWindowText;还可通过Ctrl+N打开应用程序的导入表,查看程序总共导入了哪些API函数。
五、寄存器
1、常用寄存器
EAX:扩展累加寄存器
EBX:扩展基址寄存器
ECX:扩展计数寄存器
EDX:扩展数据寄存器
ESI:扩展来源寄存器
EDI:扩展目标寄存器
上方的我们都可以进行使用,以下的需要满足条件才可正常的使用
EBP:扩展基址指针寄存器
ESP:扩展堆栈指针寄存器
EIP:扩展的指令指针寄存器
2、指令
Z标志位(0标志),这个标志位是最常用的,运算结果为0时候,Z标志位置1,否则置0。
O标志位(溢出标志),在运行过程中,如操作数超出了机器能表示的范围则称为溢出,此时OF位置1,否则置0。
C标志位(进位标志),记录运算时从最高有效位产生的进位值。
软件功能
1、代码高亮
OllyDbg的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。您可以定制个性化高亮方案。
2、运行环境
软件可以以在任何采用奔腾处理器的Windows95、98、ME、NT或是XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。还有,软件是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
3、支持的处理器
软件支持所有80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。
4、线程
软件可以调试多线程程序。因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。并且线程窗口将会显示每个线程的错误(就像调用GETLASTERROR返回一样)。
5、函数调用
软件可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。
6、已知函数
软件可以识别2300多个C和WindowsAPI中的常用函数及其使用的参数。您可以添加描述信息、预定义解码。
7、源码级调试
软件可以识别所有Borland和Microsoft格式的调试信息。这些信息包括源代码、函数名、标签、全局变量、静态变量。有限度的支持动态(栈)变量和结构。
8、配置
有多达百余个选项用来设置软件的外观和运行。
数据格式:软件的数据窗口能够显示的所有数据格式:HEX、ASCⅡ、UNICODE、16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、ideaL或是HLA)、PE文件头或线程数据块。
9、调试DLLs
您可以利用软件调试标准动态链接库(DLLs)。软件会自动运行一个可执行程序。这个程序会加载链接库,并允许您调用链接库的输出函数。
10、启动
您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到软件中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。软件支持即时调试,根本不需要安装,可直接在软盘中运行!
11、名称
OllyDbg可以根据Borland和Microsoft格式的调试信息,显示输入/输出符号及名称。Object扫描器可以识别库函数。其中的名称和注释您可任意添加。如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[importlibrary]来恢复原来的函数名称。不仅如此,软件还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bitfields]…)并能够解码为已知的函数调用。
推荐评语
好用的软件