OD(OllyDbg)使用教程
od反编译工具用法

od反编译工具用法反编译是指将已经编译过的程序文件转换为高级源代码的过程。
反编译工具可以帮助开发者了解和学习其他人编写的程序,对于调试和修复软件错误也很有帮助。
OD (OllyDbg) 是一种广泛使用的反汇编调试工具,本文将介绍如何使用OD进行反编译。
OD的基本使用方法如下:2.打开需要反编译的程序:在OD主界面上点击“文件”菜单,然后选择“打开”选项,浏览并选择需要反编译的程序文件,并点击“打开”按钮。
3.反汇编代码窗口:OD会在主界面上打开一个反汇编代码窗口,这个窗口将显示程序的机器码和相应的汇编指令。
4.反编译代码:可以通过“右键单击”汇编指令,然后选择“跟随”选项来进行反编译。
OD会尝试寻找并显示反编译后的代码。
5.查看变量和数据:在OD的主界面上,有一个“数据窗口”,可以显示程序中的变量和内存数据。
在反汇编代码窗口中选择一些指令,然后在数据窗口中查看它所使用的变量和数据的值。
6.设置断点:在OD中设置断点可以帮助我们在特定指令上暂停执行程序,以便查看程序状态和调试错误。
在反汇编代码窗口中选择一些指令,然后点击“上方”菜单中的“条件断点”选项,OD会弹出一个对话框,可以在其中设置断点条件。
7.运行程序:在OD的主界面上,有一个“执行”菜单,可以用于运行程序。
可以通过点击“执行”菜单中的“运行”选项来启动程序的执行。
当程序遇到断点时,会停止执行并进入调试模式。
8.调试程序:在OD的调试模式下,可以通过一些常用的调试功能来调试程序。
例如,可以通过“单步执行”菜单选项逐行执行程序代码,通过“寄存器窗口”查看和修改寄存器值,通过“内存窗口”查看和修改内存数据等。
需要注意的是,使用OD进行反编译需要一定的汇编和调试知识。
同时,反编译软件可能涉及违法行为,如未获得程序开发者的许可而进行反编译。
请确保遵守法律规定,并只在合法和正当的情况下使用反编译工具。
在使用OD进行反编译时,可以参考以下一些技巧和注意事项:1.了解汇编语言与机器码的对应关系:汇编语言是将机器码转换为可读性更高的指令的语言,因此了解汇编语言的基本语法和常见指令有助于理解和分析程序。
OllyDBG新手使用说明书

OllyDBG 新手使用说明书OLLYDBG完全教程(一)一、什么是 OllyDbg ?OllyDbg 是一种具有可视化界面的 32 位汇编 - 分析调试器。
它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。
Version 1.10 是最终的发布版本。
这个工程已经停止,我不再继续支持这个软件了。
但不用担心:全新打造的OllyDbg 2.00 不久就会面世!运行环境: OllyDbg 可以以在任何采用奔腾处理器的Windows 95、98、ME、NT或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用 300-MHz以上的奔腾处理器以达到最佳效果。
还有, OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[ Trace ]之类的扩展功能话,建议您最好使用 128MB以上的内存。
支持的处理器:OllyD 的数据格式,但是不支持SSE2 指令集。
bg 支持所有80x86、奔腾、 MMX、3DNOW!、 Athlon 扩展指令集、 SSE指令集以及相关配置:有多达百余个(天呀!)选项用来设置OllyDbg 的外观和运行。
数据格式: OllyDbg 的数据窗口能够显示的所有数据格式: HEX、ASCII 、UNICODE、 16/32 位有 / 无符号 /HEX 整数、32/64/80 位浮点数、地址、反汇编( MASM、IDEAL或是 HLA)、PE文件头或线程数据块。
帮助:此文件中包含了关于理解和使用 OllyDbg 的必要的信息。
如果您还有 Windows API帮助文件的话(由于版权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函数的相关帮助。
启动:您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到 OllyDbg 中,或者重新启动上一个被调试程序,或是挂接[ Attach ]一个正在运行的程序。
外挂编写必备工具2OllyDBG (OD)入门系列

00440F70 |. EB 32 JMP SHORT CrackMe3.00440FA4
00440F72 |> 6A 00 PUSH 0
OllyDBG中各个窗口的功能如上图。简单解释一下各个窗口的功能,的反汇编代码,标题栏上的地址、HEX数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于SoftICE中的F11)
外挂编写必备工具2——OllyDBG(OD)入门系列2
OllyDBG入门系列(二)-字串参考
上一篇是使用入门,现在我们开始正式进入破解。今天的目标程序是看雪兄《加密与解密》第一版附带光盘中的镜像打包中的CFF Crackme #3,采用用户名/序列号保护方式。原版加了个UPX的壳。刚开始学破解先不涉及壳的问题,我们主要是熟悉用OllyDBG来破解的一般方法。我这里把壳脱掉来分析,附件是脱壳后的文件,直接就可以拿来用。先说一下一般软件破解的流程:拿到一个软件先别接着马上用OllyDBG调试,先运行一下,有帮助文档的最好先看一下帮助,熟悉一下软件的使用方法,再看看注册的方式。如果是序列号方式可以先输个假的来试一下,看看有什么反应,也给我们破解留下一些有用的线索。如果没有输入注册码的地方,要考虑一下是不是读取注册表或Key文件(一般称keyfile,就是程序读取一个文件中的内容来判断是否注册),这些可以用其它工具来辅助分析。如果这些都不是,原程序只是一个功能不全的试用版,那要注册为正式版本就要自己来写代码完善了。有点跑题了,呵呵。获得程序的一些基本信息后,还要用查壳的工具来查一下程序是否加了壳,若没壳的话看看程序是什么编译器编的,如VC、Delphi、VB等。这样的查壳工具有PEiD和FI。有壳的话我们要尽量脱了壳后再来用OllyDBG调试,特殊情况下也可带壳调试。下面进入正题:
OD教程OllyDebug 教程

3、上一版中部分未汉化的内容这次除了不能汉化的外,基本上都已汉化。
4、另有一个界面未作美化的汉化版放在原版界面目录,可以按自己的喜好选择使用哪一个。
5、FixOD 目录下放的是用 freecat 的 AutoPath.dll 打过补丁的 OllyDBG,使用前请先备份好你原来的Ollydbg.exe文件,再把这个目录下的Ollydbg.exe、AutoPath.dll、AutoPath.ini复制到你的OllyDBG安装目录下就可以了。
O文免费版本软件包含有英文配置补丁,原版界面等,是最全的OD完全版
OD(OllyDebug)V2.01 汇编及分析调试器简体中文免费版主要说明:
1、界面采用 BoOMBoX/TSRh2004 制作的美化界面,主要为了好看一点。
2、绝大部分句子都重新翻译过,力求做到准确。
OD使用完全教程

OD使用完全教程.txt如果不懂就说出来,如果懂了,就笑笑别说出来。
贪婪是最真实的贫穷,满足是最真实的财富。
幽默就是一个人想哭的时候还有笑的兴致。
OllyDbg调试工具使用完全教程一,什么是 OllyDbg?OllyDbg 是一种具有可视化界面的 32 位汇编-分析调试器。
它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。
Version 1.10 是最终的发布版本。
这个工程已经停止,我不再继续支持这个软件了。
但不用担心:全新打造的 OllyDbg 2.00 不久就会面世!运行环境: OllyDbg 可以以在任何采用奔腾处理器的 Windows 95、98、ME、NT 或是 XP(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。
还有,OllyDbg 是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。
支持的处理器: OllyDbg 支持所有 80x86、奔腾、MMX、3DNOW!、Athlon 扩展指令集、SSE 指令集以及相关的数据格式,但是不支持SSE2指令集。
配置:有多达百余个(天呀!)选项用来设置 OllyDbg 的外观和运行。
数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCII、UNICODE、 16/32位有/无符号/HEX整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。
帮助:此文件中包含了关于理解和使用 OllyDbg 的必要的信息。
如果您还有 Windows API 帮助文件的话(由于版权的问题 win32.hlp 没有包括在内),您可以将它挂在 OllyDbg 中,这样就可以快速获得系统函数的相关帮助。
启动:您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。
OllyDBG完美教程

OllyDBG完美教程(超强入门级)关键词:OD、OllyDBG、破解入门、调试专用工具、反汇编一、OllyDBG 的安装与配置OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。
汉化版的发布版本是个 RAR 压缩包,同样只需解压到一个目录下运行 OllyDBG.exe 即可:OllyDBG 中各个窗口的功能如上图。
简单解释一下各个窗口的功能,更详细的内容可以参考 TT 小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。
用鼠标左键点击注释标签可以切换注释显示的方式。
寄存器窗口:显示当前所选线程的 CPU 寄存器内容。
同样点击标签寄存器 (FPU) 可以切换显示寄存器的方式。
信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。
数据窗口:显示内存或文件的内容。
右键菜单可用于切换显示方式。
堆栈窗口:显示当前线程的堆栈。
要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下 OllyDBG 就可以生效了。
启动后我们要把插件及 UDD 的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把 OllyDBG 解压在 F:\OllyDBG 目录下,所以相应的 UDD 目录及插件目录按图上配置。
还有一个常用到的标签就是上图后面那个字体,在这里你可以更改 OllyDBG 中显示的字体。
上图中其它的选项可以保留为默认,若有需要也可以自己修改。
修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动 OllyDBG。
在这个对话框上点确定,重新启动一下 OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。
ollydbg使用方法

ollydbg使用方法ollydbg是一款用于逆向工程和调试程序的强大工具。
它可以帮助我们分析和修改二进制文件,以理解程序的内部工作原理。
在本文中,我们将介绍ollydbg的使用方法,以帮助读者快速上手使用该工具。
一、ollydbg的安装和配置我们需要下载ollydbg的安装文件,并按照向导完成安装过程。
安装完成后,我们可以在程序菜单中找到ollydbg的快捷方式。
二、打开目标程序在ollydbg中打开目标程序的方法有两种:直接拖拽到ollydbg窗口中或通过菜单中的“文件”选项来打开程序。
无论使用哪种方法,我们都需要找到目标程序所在的路径,并选择打开。
三、调试程序1. 设置断点:在ollydbg中,断点是一种被设置在程序中的暂停执行的标记点。
我们可以通过双击程序中的某一行代码或者在该行代码上点击右键,然后选择“Toggle Breakpoint”来设置断点。
设置断点后,当程序执行到该行代码时,会自动停止执行,方便我们进行调试。
2. 单步执行:在调试过程中,我们可以使用单步执行功能来逐行执行程序。
我们可以通过菜单中的“调试”选项,或者使用快捷键F7来进行单步执行。
单步执行可以帮助我们逐行分析程序的执行流程,以及观察变量的值的变化。
3. 查看寄存器和内存:在调试过程中,我们经常需要查看程序中的寄存器和内存的值。
ollydbg提供了寄存器窗口和内存窗口,可以方便地查看这些信息。
我们可以通过菜单中的“窗口”选项,选择“寄存器”或者“内存”来打开相应的窗口。
4. 分析代码:在调试过程中,我们可以使用ollydbg的反汇编窗口来查看程序的汇编代码。
我们可以通过菜单中的“窗口”选项,选择“反汇编”来打开反汇编窗口。
反汇编窗口可以帮助我们分析程序的执行流程,以及理解代码的逻辑。
5. 修改变量值:在调试过程中,我们可以通过ollydbg来修改程序中的变量的值。
我们可以在变量所在的内存地址上点击右键,然后选择“修改”,来修改变量的值。
Ollydbg图解

Ollydbg强大的调试工具,简单的介绍一下,在以后的使用中再详细介绍每个功能是具体使用。
如果不把常用到的软件先介绍一下,等使用的时候再介绍会很麻烦。
所以前面的几篇文章就当作铺垫吧。
虽然这几篇文章都很枯燥,但是有不能不提前介绍。
前面的配置很简单,需要掌握。
其余的窗口介绍,名词介绍,和后面的快捷键可以了解一下就算了,我们会在以后的实践当中慢慢去使用的。
这篇文章主要是认识软件,了解快捷键,学会配置插件和UDD的绝对路径,学会添加到右键。
OllyDBG 的安装与配置到OD的文件夹下面直接运行ollydbg.exe即可。
反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。
用鼠标左键点击注释标签可以切换注释显示的方式。
寄存器窗口:显示当前所选线程的 CPU 寄存器内容。
同样点击标签寄存器 (FPU) 可以切换显示寄存器的方式。
信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。
数据窗口:显示内存或文件的内容。
右键菜单可用于切换显示方式。
堆栈窗口:显示当前线程的堆栈。
每个窗口以后都会用到。
等具体使用的时候在具体讲解。
第一次使用OD首先要配置插件和UDD的目录为绝对路径,否则很多莫名其妙的错误会出现。
点击菜单上的选项->界面,将会出来一个界面选项的对话框,点击其中的目录标签:UDD 目录的作用是保存你调试的工作。
比如你调试一个软件,设置了断点,添加了注释,一次没做完,这时 OllyDBG 就会把你所做的工作保存到这个 UDD 目录,以便你下次调试时可以继续以前的工作。
如果不设置这个 UDD 目录,OllyDBG 默认是在其安装目录下保存这些后缀名为 udd 的文件,时间长了就会显的很乱,所以还是建议专门设置一个目录来保存这些文件。
另外一个重要的选项就是调试选项,可通过菜单选项->调试设置来配置:上面那个异常标签中的选项经常会在脱壳中用到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的:可以让软件运行的时候停在设断点的地方,以方便 反复跟踪调试
当关闭程序时,OllyDbg会将设置好的断点保存在UDD文件 中,下次运行时还有效。
.
11
5、调试分析:
调试分析其实就是分析程序代码的意义,如图:
阅读这些代码时,首先要搞清楚各API函数的定义,还弄明白 那些汇编程序代码的具体含义
MOVSX 先符号扩展,再传送
REP 当CX/ECX0时重复
AND 与运算
TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果)
.
20
上面是我的总结,大家可以大致的了解一下,有什么 不清楚的地方,可以过来跟我交流。共享的文件里面 还有教程,大家可以根据里面的教程,做更深入的学 习。还有很多汇编代码的含义没有介绍,共享文件里 面有完备的代码解释,可以好好看看,参考参考。
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序 将直接开始运行
CTR+F9:执行到返回。此命令在执行到一个 ret (返回指令)指令 时暂停,常用于从系统领空返回到我们调试的程序领空
ALT+F9:执行到用户代码。可用于从. 系统领空快速返回到我们调
.
7
2、加载目标文件调试
运行OllyDbg后,打开选项/调试设置
程序运行之后,在系统 空间里会触发一个INT3
文件入口点
程序的Winmain()函数入口点, 但一般都是在文件入口点
.
8
设置完成之后,载入文件,出现如图所示:
虚拟地址
机器码:
CPU执行的机器 代码
.
汇编指令: 和机器码对应的
程序代码
5
试的程序领空
如何加载程序?
• 点击菜单 文件->打开 (快捷键是 F3)来打 开一个可执行文件进行调试
• 点击菜单 文件->附加 来附加一个已运行的进 程上进行调试。注意这里要附加的程序必须已运 行。
.
6
基本操作:
1、准备工作 我们以Traceme这个软件为例,了解Traceme序列号的验证流程
.
12
6、保存修改后的文件
图中红色的就是我们修改的地方,然后就点右键,复制到
文件,就可以保存当前的修.改
13
我们现在来举个简答你的例子
破解TraceMe的注册码 操作步骤如图:
.
14
首先当然要载入TraceMe,载入之后就会出现如下窗口
文件入口点
然后我们要找到GetDlgItemTextA函数,因为程序从文本框 中将内容读取出来,需要用到这个函数。我们就用Ctrl+G 打开跟随表达式的窗口,在里面输入函数名就可以跟踪到 函数名存在的地方
注意:这里又回到TraceMe的领空了
我们可以按Alt+B调出断点窗口,然后将GetDlgItemTextA的断点改为已禁止
.
17
接下来就在004011AE下一个断点,因为这里有调用到 GetDlgItemTextA这个函数
然后就要开始分析这些汇编代码的意义,所以,我们在使 用这个软件的时候,一定要明白这些代码的含义,现在我 们只是先认识一下这个软件的作用,所以就不为大家做出 分析,接下来就是修改代码了。其实我们要是分析下来, 可以发现,其实问题就在于一个代码行--004011F5
.
15
注意:此时的领空是模块USER32,领空就是在
某一时刻,CPU的CS:EIP所指向代码的所有者
领空
接着,在USER32的领空中,在77D6B05E代码行按下F2, 下断点,然后按F9运行,然后键入下图所示:
.
16
点check,可以看到程序被OD截停在下断点的地方,如图所示: 接着,按Alt+F9,返回到用户代码,可以回到:
.
4
调试中我们经常要用到的快捷键有这些:
F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即 可,再按一次F2键则会删除断点
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令, 遇到 CALL 等子程序不进入其代码
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子 程序时会进入其中,进入后首先会停留在子程序的第一条指令上
RET 子程序返回指令
CMP 比较.(两操作数作减法,仅修改标志位,不回送结果)
JNZ(或jNE) OPR --------------结果不为零转移,测试条件ZF=0
DEC 减 1 INC 加 1
JZ(或jE) OPR---------------结果为零转移, 测试条件ZF=1
SUB 减法
LEA 装入有效地址 例: LEA DX,string ;把偏移地址存到DX.
.
18
修改这一反汇编代码段,双击反汇编列后者按空格键, 键入NOP,点汇编
最后 F9运行,你会看到:
.
19
下面就介绍一些分析常用的汇编代码含义:
MOV 传送字或字节 如MOV A B,就是将B中的字传给A
PUSH 把字压入堆栈
CALL 子程序调用指令
XOR 异或运算 所谓异或,就是两值不同,则为真,反之,为假
显示反汇编窗口中选中的第一 个命令的参数及一些跳转目标
地址、字串等
显示当前所选线程 的 CPU 寄存器内
容。
显示当前线程的堆栈
显示内存或文件的
Байду номын сангаас
内容。
.
3
反汇编窗口的列中,双击的效果:
• 地址列:显示相对被单击地址的地址,再次 双击返回到标准地址模式; • Hex数据列:设置或取消无条件断点,对应 的快捷键是F2键; • 反汇编列:调用汇编器,可直接修改汇编代 码; • 注释列:允许增加或编辑注释,对应快捷键 是“;“键
9
3、单步跟踪
调试器一个最基本功能就是动态跟踪,OllyDbg单步跟踪功能键:
F7与F8的区别:在遇到CALL时,F8会直接跳过,而F7就跟进去
.
10
4、设置断点
断点是调试器的一个重要功能,它能使程序中断在需要的 地方,从而方便对其分析,常用的断点是INT3,其原理是 OllyDbg将断点处的代码设置为int3指令。
工具介绍
OllyDbg调试器
.
1
什么是OllyDbg?
OllyDbg简称OD,是一款具有可视化界面的用户模式调试器,结合了动态 调试和静态分析,具有强大的反汇编引擎,能够识别数千个被C和 Windows所使用的函数,并能将其参数注释出,能自动分析函数过程、循 环语句、代码中的字符串等。
.
2
显示被调试程序的反汇编代 码