OD(OllyDbg)使用教程

合集下载

od反编译工具用法

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 ?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)入门系列

外挂编写必备工具2OllyDBG (OD)入门系列
00440F6B |. E8 F8C0FFFF CALL CrackMe3.0043D068
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 教程

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使用完全教程

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完美教程

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中打开目标程序的方法有两种:直接拖拽到ollydbg窗口中或通过菜单中的“文件”选项来打开程序。

无论使用哪种方法,我们都需要找到目标程序所在的路径,并选择打开。

三、调试程序1. 设置断点:在ollydbg中,断点是一种被设置在程序中的暂停执行的标记点。

我们可以通过双击程序中的某一行代码或者在该行代码上点击右键,然后选择“Toggle Breakpoint”来设置断点。

设置断点后,当程序执行到该行代码时,会自动停止执行,方便我们进行调试。

2. 单步执行:在调试过程中,我们可以使用单步执行功能来逐行执行程序。

我们可以通过菜单中的“调试”选项,或者使用快捷键F7来进行单步执行。

单步执行可以帮助我们逐行分析程序的执行流程,以及观察变量的值的变化。

3. 查看寄存器和内存:在调试过程中,我们经常需要查看程序中的寄存器和内存的值。

ollydbg提供了寄存器窗口和内存窗口,可以方便地查看这些信息。

我们可以通过菜单中的“窗口”选项,选择“寄存器”或者“内存”来打开相应的窗口。

4. 分析代码:在调试过程中,我们可以使用ollydbg的反汇编窗口来查看程序的汇编代码。

我们可以通过菜单中的“窗口”选项,选择“反汇编”来打开反汇编窗口。

反汇编窗口可以帮助我们分析程序的执行流程,以及理解代码的逻辑。

5. 修改变量值:在调试过程中,我们可以通过ollydbg来修改程序中的变量的值。

我们可以在变量所在的内存地址上点击右键,然后选择“修改”,来修改变量的值。

Ollydbg图解

Ollydbg图解

Ollydbg强大的调试工具,简单的介绍一下,在以后的使用中再详细介绍每个功能是具体使用。

如果不把常用到的软件先介绍一下,等使用的时候再介绍会很麻烦。

所以前面的几篇文章就当作铺垫吧。

虽然这几篇文章都很枯燥,但是有不能不提前介绍。

前面的配置很简单,需要掌握。

其余的窗口介绍,名词介绍,和后面的快捷键可以了解一下就算了,我们会在以后的实践当中慢慢去使用的。

这篇文章主要是认识软件,了解快捷键,学会配置插件和UDD的绝对路径,学会添加到右键。

OllyDBG 的安装与配置到OD的文件夹下面直接运行ollydbg.exe即可。

反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的 CPU 寄存器内容。

同样点击标签寄存器 (FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

每个窗口以后都会用到。

等具体使用的时候在具体讲解。

第一次使用OD首先要配置插件和UDD的目录为绝对路径,否则很多莫名其妙的错误会出现。

点击菜单上的选项->界面,将会出来一个界面选项的对话框,点击其中的目录标签:UDD 目录的作用是保存你调试的工作。

比如你调试一个软件,设置了断点,添加了注释,一次没做完,这时 OllyDBG 就会把你所做的工作保存到这个 UDD 目录,以便你下次调试时可以继续以前的工作。

如果不设置这个 UDD 目录,OllyDBG 默认是在其安装目录下保存这些后缀名为 udd 的文件,时间长了就会显的很乱,所以还是建议专门设置一个目录来保存这些文件。

另外一个重要的选项就是调试选项,可通过菜单选项->调试设置来配置:上面那个异常标签中的选项经常会在脱壳中用到。

od 硬件条件断点

od 硬件条件断点

od 硬件条件断点
OD (OllyDbg) 是一款用于调试二进制应用程序的工具,它可
以在执行程序时设置断点并检查程序的状态。

要在OD中设置硬件条件断点,你需要遵循以下步骤:
1. 打开OllyDbg,并加载要调试的二进制程序。

2. 找到你想要设置断点的位置。

这可以是一个特定的内存地址,也可以是程序中的某个函数。

3. 在OllyDbg的菜单栏上选择 "Breakpoints" > "Hardware breakpoints"。

4. 在 "Hardware breakpoints" 窗口中,点击 "New" 按钮。

5. 在弹出的窗口中,选择 "Condition" 选项卡。

6. 在 "Condition" 选项卡中,输入你想要设置的条件,例如要
求寄存器的值等于某个特定值。

7. 点击 "OK" 按钮保存设置。

8. 回到主OllyDbg窗口,你将看到硬件条件断点已添加到"Browse breakpoints" 窗口中。

9. 启动程序,并当程序执行到设置的断点位置时,程序会停止执行并等待你进一步调试。

请注意,硬件条件断点只在特定条件满足时触发断点,因此你需要确保设置的条件是合适的,并且可以满足在期望的情况下触发断点。

此外,硬件断点通常会影响程序的执行速度,因此在调试大型程序时,设置过多的硬件条件断点可能会导致性能下降。

OD入门系列图文详细教程-破解做辅助起步(一)

OD入门系列图文详细教程-破解做辅助起步(一)

OllyDBG的安装与配置OllyDBG1.10版的发布版本是个ZIP压缩包,只要解压到一个目录下,运行OllyDBG.exe就可以了。

汉化版的发布版本是个RAR压缩包,同样只需解压到一个目录下运行OllyDBG.exe即可:学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。

OllyDBG中各个窗口的功能如上图。

简单解释一下各个窗口的功能,更详细的内容可以参考TT小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的CPU寄存器内容。

同样点击标签寄存器(FPU)可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下OllyDBG就可以生效了。

启动后我们要把插件及UDD的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把OllyDBG解压在F:\OllyDBG目录下,所以相应的UDD目录及插件目录按图上配置。

还有一个常用到的标签就是上图后面那个字体,在这里你可以更改OllyDBG中显示的字体。

上图中其它的选项可以保留为默认,若有需要也可以自己修改。

修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动OllyDBG。

在这个对话框上点确定,重新启动一下OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

有人可能知道插件的作用,但对那个UDD目录不清楚。

ollydbg用法

ollydbg用法

ollydbg用法OllyDbg是一款非常强大的调试器,可以帮助程序员进行调试和反汇编操作。

以下是一些OllyDbg的基本用法:1. 打开调试文件:在OllyDbg中,可以通过“文件”菜单打开需要调试的文件。

如果需要调试的是一个可执行文件,可以直接输入文件名并打开。

如果需要调试的是一个动态链接库或共享库,可以选择“文件”菜单中的“打开DLL”或“打开共享库”选项,并输入需要调试的文件的路径。

2. 设置断点:在OllyDbg中,可以通过单击行号或者在行号区域右键单击来设置断点。

当程序运行到这个位置时,调试器会自动暂停程序的执行,以便用户可以进行调试和分析。

3. 单步执行:在OllyDbg中,可以使用F8键进行单步执行。

如果需要进入函数内部,可以使用F7键。

如果需要跳过函数调用,可以使用F9键。

4. 查看变量:在OllyDbg中,可以通过“视图”菜单中的“局部变量”和“全局变量”选项卡来查看当前函数的局部变量和全局变量。

此外,还可以通过右键单击变量名称来修改变量的值。

5. 反汇编:在OllyDbg中,可以通过“视图”菜单中的“反汇编”选项卡来查看当前函数的反汇编代码。

可以通过单击反汇编代码中的任意位置来设置断点。

6. 跟踪函数调用:在OllyDbg中,可以使用“跟踪”菜单中的选项来跟踪函数的调用过程。

可以通过选择“跟踪到调用者”或“跟踪到被调用者”选项来查看函数调用的上下文。

7. 保存调试信息:在OllyDbg中,可以通过“文件”菜单中的“保存调试信息”选项来保存调试过程中的信息。

这可以有助于后续的分析和排查问题。

总之,OllyDbg是一款功能强大的调试器,可以帮助程序员进行调试和反汇编操作。

通过掌握OllyDbg的基本用法,可以更好地理解和分析程序的行为,从而更好地排查和解决程序中的问题。

1。

od 堆栈操作指令

od 堆栈操作指令

od 堆栈操作指令
OD (OllyDbg) 是一款流行的Windows 平台上的反汇编和调试工具。

在OD 中,你可以使用堆栈操作指令来查看和操作堆栈上的数据。

以下是一些常见的堆栈操作指令:
1. `push`:将一个值压入堆栈。

2. `pop`:从堆栈中弹出并返回一个值。

3. `pushad`:将所有寄存器的内容压入堆栈。

4. `popad`:从堆栈中弹出所有寄存器的值并恢复它们。

5. `pushfd`:将标志寄存器的值压入堆栈。

6. `popfd`:从堆栈中弹出标志寄存器的值并恢复它。

7. `xchg`:交换寄存器和堆栈顶部的值。

8. `mov`:将一个值移动到另一个位置,可以是寄存器、内存或堆栈。

9. `call`:调用一个函数或子例程,并将返回地址压入堆栈。

10. `ret`:从当前函数或子例程返回,并从堆栈中弹出返回地址。

这些指令可以帮助你在OD 中查看和修改堆栈上的数据,从而更好地理解程序的执行流程和行为。

OD(OllyDbg)使用教程

OD(OllyDbg)使用教程
注意:这里又回到TraceMe的领空了
我们可以按Alt+B调出断点窗口,然后将GetDlgItemTextA的断点改为已禁止
接下来就在004011AE下一个断点,因为这里有调用到 GetDlgItemTextA这个函数
然后就要开始分析这些汇编代码的意义,所以,我们在使 用这个软件的时候,一定要明白这些代码的含义,现在我 们只是先认识一下这个软件的作用,所以就不为大家做出 分析,接下来就是修改代码了。其实我们要是分析下来, 可以发现,其实问题就在于一个代码行--004011F5
工具介绍 OllyDbg调试器
什么是OllyDbg?
OllyDbg简称OD,是一款具有可视化界面的用户模式调试器,结合了动 态调试和静态分析,具有强大的反汇编引擎,能够识别数千个被C和 Windows所使用的函数,并能将其参数注释出,能自动分析函数过程、 循环语句、代码中的字符串等。
显示被调试程序的反汇编代 码
上面是我的总结,大家可以大致的了解一下,有什么 不清楚的地方,可以过来跟我交流。共享的文件里面 还有教程,大家可以根据里面的教程,做更深入的学 习。还有很多汇编代码的含义没有介绍,共享文件里 面有完备的代码解释,可以好好看看,参考参考。
以上有不当之处,请大家给与批评指正, 谢谢大家!
22
注意:此时的领空是模块USER32,领空就是在
某一时刻,CPU的CS:EIP所指向代码的所有者
领空
接着,在USER32的领空中,在77D6B05E代码行按下F2, 下断点,然后按F9运行,然后键入下图所示:
点check,可以看到程序被OD截停在下断点的地方,如图所示: 接着,按Alt+F9,返回到用户代码,可以回到:
调试中我们经常要用到的快捷键有这些:

OllyDBG新手使用说明书

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]一个正在运行的程序。

OllyDbg支持即时调试。

OD新手入门教程,制作辅助必备。

OD新手入门教程,制作辅助必备。
2
的哪一部分被频繁执行。 补丁:内 置汇编器能够自 动找到修改过的代 码段。二进制编 辑器则会以 ASCII 、 UNICODE 或者十六进制的形式同步显示修改后的数据。修改后的数据同其它数据一样, 能 够进行复制—粘贴操作。原来的数据会自动备份,以便数据恢复时使用。你可以把修改的部 分直接复制到执行文件中, OllyDbg 会自动修正。 OllyDbg 还会记录以前调试过程中使用的 所有补丁。你可以通过空格键实现补丁的激活或者禁止。 自解压文件: 当调试自解压文件时,你往往希望跳过解压部分,直接停在程序的原始 入口点。OllyDbg 的自解压跟踪将会使你实现这一目的。如果是加保护的自解压段,自解压 跟踪往往会失败。而一旦 OllyDbg 找到了入口点,它将会跳过解压部分,并准确的到达入口 点。 插件:你可以把自己的插件添加到 OllyDbg 中,以增加新的功能。OllyDbg 的插件能够 访问几乎所有重要的数据的结构、能够在 OllyDbg 的窗口中添加菜单和快捷键,能够使用 100 个以上的插件 API 函数。 插件 API 函数有详细的说明文档。 默认安装已经包含了两个插 件:命令行插件和书签插件。 UDD: OllyDbg 把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加 载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等 更多:这里介绍的功能,仅仅是 OllyDbg 的部分功能。因为其具有如此丰富的功能, 以 至于 OllyDbg 能成为非常方便的调试器!
push ebx push esi push edi
/
ห้องสมุดไป่ตู้
/
1
栈:在栈窗口中,OllyDbg 能智能识别返回地址和栈框架[Stack Frames ] 。并会留下一 些先前的调用。如果程序停在已知函数上,堆栈窗口将会对其参数进行分析解码。 译者注:栈框架[Stack Frames]是指一个内存区域,用于存放函数参数和局部变量。 SEH 链: 跟踪栈并显示结构化异常句柄链。全部链会显示在一个单独的窗口中。 搜索:方法真是太多了!可精确、模糊搜索命令或命令序列,搜索常数,搜索二进制、 文本字符串,搜索全部命令地址,搜索全部常量或地址域[address range] ,搜索所有能跳到 选定地址的跳转,搜索所有调用和被调用的函数,搜索所有参考字符串,在不同模块中搜索 所有调用、搜索函数名称,在全部已分配的内存中搜索二进制序列。如果搜索到多个结果, 你可以对其进行快速操作。 窗口:OllyDbg 能够列出关于调试程序中的各种窗口,并且可以在窗口、类甚至选定的 消息上设置断点。 资源:如果 Windows API 函数使用了参考资源串,OllyDbg 可以显示它。其支持显示 的类型仅限于附带资源[attached resources]的列表、数据显示及二进制编辑。 断点:OllyDbg 支持各种断点:一般断点、条件断点、记录断点(比如记录函数参数到 记录窗口) 、内存读写断点、硬件断点(只适用于 ME/NT/2000)等。在 Hit 跟踪情况下, 可 以在模块的每条命令上都设置 INT3 断点。在使用 500—MHZ 处理器的 Windows NT 中, OllyDbg 每秒可以处理高达 5000 个中断。 监视与监察器: 每个监视都是一个表达式并能实时显示表达式的值。 你可以使用寄存器、 常数、地址表达式、布尔值以及任何复杂代数运算,你还可以比较 ASCII 和 UNICODE 字 符串。监察器[inspectors]是一种包含了两个的索引序列的监视[Watches] ,它以二维表的 形式呈现,可以对数组和结构进行解码分析。 Heap walk. :在基于 Win95 的系统中,OllyDbg 可以列出所有的已分配的堆。 句柄:在基于 NT 的系统中,OllyDbg 可列出被调试程序的所有系统句柄。 执行:. 你可以单步执行、步入子程序或者步过子程序。你也可以执行程序直到函数返 回时、执行到指定地址处,还可以自动执行。当程序运行时,你仍然可以操纵程序并能够查 看内存、设置断点甚至修改代码。你也可以任意的暂停或重启被调试的程序。 Hit 跟踪:.Hit 跟踪可以显示出目前已执行的指令或函数过程,帮助 你检验代码的各个 分支。Hit 跟踪会在指定指令到达之前设置断点,而在这个指令执行后,会把这个断点清除 掉。 译者注:Hit 在英文中是“ 击中”的意思,指令如果运行了就表示这个指令被“击中”了, 没有执行的指令就是“未击中”,这样我们就很容易看出被调试程序哪些部分运行了,而哪些 没有运行。 Run 跟踪: Run 跟踪可以单步执行程序,它会在一个很大的循环缓冲区中模拟运行程 序。这个模拟器包含了除了 SSE 指令集以外的所以寄存器、标志、线程错误、消息、已经 函数的参数。你可以保存命令,这样可以非常方便地调试自修改代码(译者注:比如加壳程 序) 。你可以设置条件中断,条件包括地址范围、表达式、命令。你可以将 Run 跟踪信息保 存到一个文件中, 这样就可以对比两次运行的差别。Run 跟踪可以回溯分析已执行过的上百 万条命令的各种细节。 统计: 统计[Profiler]可以在跟踪时计算某些指令出现的次数。因此你就能了解代码

OD入门系列图文详细教程、破解做辅助起步精编版

OD入门系列图文详细教程、破解做辅助起步精编版

一、OllyDBG 的安装与配置OllyDBG 1.10 版的发布版本是个ZIP 压缩包,只要解压到一个目录下,运行OllyDBG.exe 就可以了。

汉化版的发布版本是个RAR 压缩包,同样只需解压到一个目录下运行OllyDBG.exe 即可:OllyDBG 中各个窗口的功能如上图。

简单解释一下各个窗口的功能,更详细的内容可以参考TT 小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的CPU 寄存器内容。

同样点击标签寄存器(FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下OllyDBG 就可以生效了。

启动后我们要把插件及UDD 的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把OllyDBG 解压在F:\OllyDBG 目录下,所以相应的UDD 目录及插件目录按图上配置。

还有一个常用到的标签就是上图后面那个字体,在这里你可以更改OllyDBG 中显示的字体。

上图中其它的选项可以保留为默认,若有需要也可以自己修改。

修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动OllyDBG。

在这个对话框上点确定,重新启动一下OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

有人可能知道插件的作用,但对那个UDD 目录不清楚。

我这简单解释一下:这个UDD 目录的作用是保存你调试的工作。

OD使用教程

OD使用教程
器尝试确认调用过程进栈的双字数目,并标记他们为参数Arg1,Arg2等等。注意:
如果有寄存器参数,OllyDbg还是不认识也不包括在上面的统计中。分析器采用了
一个安全的方法。例如,它不分辨无参数过程和返回前用POP恢复寄存器代替舍弃
参数的case语句。然而,能分辨出的函数数目相当多,并非常有助于提高代码的
解码所有该地址的调用为原过程。WinMain,DllEntryPoint和WinProc是特殊的预
定义名。你可以使用这些标号标记主程序入口,DLL入口指针和window过程(注意
:OllyDbg不会检查用户定义标号的唯一性)。当然,最好的方法是显示已定义的
参数。
非常不幸,没有一般的规则用于100%的准确分析。有些情况下,例如当模块包含
分析器非常有用。它在数据中分辨代码,标记入口点和jump的目标,辨认switch
tables,ASCII和UNICODE字符串,定位过程、循环、高级switch语句和解码标准
API函数参数(看范例)。OllyDbg的其它部分也广泛用于数据分析。
这怎么可能呢?我稍微介绍一下原理。首先,OllyDbg反汇编代码区所有可能的地
Alt+X-中断OllyDbg。
多数窗口可以使用下列快捷键:
Alt+F3--关闭活动窗口。
Ctrl+F4--关闭活动窗口。
F5--最大化或恢复活动窗口。
F6--激活下一个窗口。
Shift+F6--激活前一个窗口。
F10--打开激活窗口或面板的右键菜单。
LeftArrow--左移一个字符。
HKEY_CLASSES_ROOT/exefile/shell/Open with OllyDbg/command

OllyDBG图文入门教程资料

OllyDBG图文入门教程资料

OllyDBG 入门系列(一)-认识OllyDBG一、OllyDBG 的安装与配置OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。

汉化版的发布版本是个 RAR 压缩包,同样只需解压到一个目录下运行 OllyDBG.exe 即可:图片1OllyDBG 中各个窗口的功能如上图。

简单解释一下各个窗口的功能,更详细的内容可以参考 TT 小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的 CPU 寄存器内容。

同样点击标签 寄存器 (FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下 OllyDBG 就可以生效了。

启动后我们要把插件及 UDD 的目录配置为绝对路径,点击菜单上的 选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把 OllyDBG 解压在F:\OllyDBG 目录下,所以相应的 UDD 目录及插件目录按图上配置。

还有一个常用到的标签就是上图后面那个字体,在这里你可以更改 OllyDBG 中显示的字体。

上图中其它的选项可以保留为默认,若有需要也可以自己修改。

修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动 OllyDBG。

在这个对话框上点确定,重新启动一下 OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

OllyDBG图文入门教程资料

OllyDBG图文入门教程资料

OllyDBG 入门系列(一)-认识OllyDBG一、OllyDBG 的安装与配置OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。

汉化版的发布版本是个 RAR 压缩包,同样只需解压到一个目录下运行 OllyDBG.exe 即可:图片1OllyDBG 中各个窗口的功能如上图。

简单解释一下各个窗口的功能,更详细的内容可以参考 TT 小组翻译的中文帮助:反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。

用鼠标左键点击注释标签可以切换注释显示的方式。

寄存器窗口:显示当前所选线程的 CPU 寄存器内容。

同样点击标签寄存器 (FPU) 可以切换显示寄存器的方式。

信息窗口:显示反汇编窗口中选中的第一个命令的参数及一些跳转目标地址、字串等。

数据窗口:显示内存或文件的内容。

右键菜单可用于切换显示方式。

堆栈窗口:显示当前线程的堆栈。

要调整上面各个窗口的大小的话,只需左键按住边框拖动,等调整好了,重新启动一下 OllyDBG 就可以生效了。

启动后我们要把插件及 UDD 的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:因为我这里是把 OllyDBG 解压在F:\OllyDBG 目录下,所以相应的 UDD 目录及插件目录按图上配置。

还有一个常用到的标签就是上图后面那个字体,在这里你可以更改 OllyDBG 中显示的字体。

上图中其它的选项可以保留为默认,若有需要也可以自己修改。

修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动 OllyDBG。

在这个对话框上点确定,重新启动一下 OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法:将光标移动到要设断点的行,按F2键就可以设置 了, 也可以双击Hex数据列
目的:可以让软件运行的时候停在设断点的地方,以方便 反复跟踪调试
当关闭程序时,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
显示被调试程序的反汇编代 码
相关文档
最新文档