外挂编写必备工具2OllyDBG (OD)入门系列

合集下载

OllyDBG新手使用说明书范文

OllyDBG新手使用说明书范文

OllyDBG新手使用说明书范文OLLYDBG完全教程(一)一、什么是OllyDbg?OllyDbg是一种具有可视化界面的32位汇编-分析调试器。

它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。

Verion1.10是最终的发布版本。

这个工程已经停止,我不再继续支持这个软件了。

但不用担心:全新打造的OllyDbg2.00不久就会面世!运行环境:OllyDbg可以以在任何采用奔腾处理器的Window95、98、ME、NT或是某P(未经完全测试)操作系统中工作,但我们强烈建议您采用300-MHz以上的奔腾处理器以达到最佳效果。

还有,OllyDbg是极占内存的,因此如果您需要使用诸如追踪调试[Trace]之类的扩展功能话,建议您最好使用128MB以上的内存。

支持的处理器:OllyD的数据格式,但是不支持SSE2指令集。

bg支持所有80某86、奔腾、MM某、3DNOW!、Athlon扩展指令集、SSE指令集以及相关配置:有多达百余个(天呀!)选项用来设置OllyDbg的外观和运行。

数据格式:OllyDbg的数据窗口能够显示的所有数据格式:HE某、ASCII、UNICODE、16/32位有/无符号/HE某整数、32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。

帮助:此文件中包含了关于理解和使用OllyDbg的必要的信息。

如果您还有WindowAPI帮助文件的话(由于版权的问题win32.hlp没有包括在内),您可以将它挂在OllyDbg中,这样就可以快速获得系统函数的相关帮助。

启动:您可以采用命令行的形式指定可执行文件、也可以从菜单中选择,或直接拖放到OllyDbg中,或者重新启动上一个被调试程序,或是挂接[Attach]一个正在运行的程序。

OllyDbg支持即时调试。

OllyDbg根本不需要安装,可直接在软盘中运行!调试DLL:您可以利用OllyDbg调试标准动态链接库(DLL)。

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

使用OD编写连连看外挂

使用OD编写连连看外挂

使用OD编写连连看外挂BYPhython邮箱:csfoffice2@给刚用OD想写外挂或是破解软件的新手准备,大鸟请直接无视。

工具准备:OllyDebug、连连看4.8连连看4.8其实长这样点击开始游戏后变成了这样我们的最终目标是要变成下图这样!!是不是很神奇?废话少说,现在开始。

第一步用OD打开zzllk.exe打开之后OD停留在了主程序入口界面思考一下,连连看使用鼠标左键单击来玩的游戏,因此一定有一个响应鼠标左键的消息处理函数,核心部分一定在这个函数中,目前的当务之急就是想办法找到这个函数。

在windows编程中,通常要用RegisterClassEx这个API函数来注册一个窗口类,它含有一个参数就是窗口过程回调函数用来处理类似鼠标单击之类的消息。

于是我们用Ctrl+G来寻找这个函数。

然而。

好遗憾!竟然没有找到这个函数,那么我们就得另想办法了!可是还有什么办法呢???我们知道,在程序退出的时候系统会向窗口过程回调函数发送一个WM_CLOSE的消息,在接收到这个消息的时候,程序员一般会在回调函数里用PostQuitMessage这个命令来退出程序。

因此,突破口就是这个PostQuitMessage结果还真的找到了!!目前停留在系统API的领空里,我们回到用户领空在这句下一个断点,然后运行连连看,点击右上角的关闭按钮会发现程序断在这里查看堆栈窗口,发现是从00438EEC调用过来的我们转到00438EEC上图就是44328EEC处的程序代码,就在这里调用了PostQuitMessage函数但是这段代码所处的函数很短,怀疑还有上一层函数,依旧用同样的方式,下断点并且返回,不过这次需要在OD中重新打开游戏了。

(我们在函数头部也就是00438ED2下断点,重新打开游戏,单击关闭按钮,程序停在下面这个界面)查看堆栈发现是从0042EECE附近调用过来的转到这里没错调用它的地址就是0042EEC9,我们给他加个注释“退出”理论上来说处理消息的回调函数就在这一层。

OllyDbg入门完全教程(完美排版)

OllyDbg入门完全教程(完美排版)

OllyDbg完全教程目录第一章概述 (1)第二章组件 (5)一、一般原理[General prnciples] (5)二、反汇编器[Disassembler] (8)三、分析器[Analysis] (9)四、Object扫描器[Object scanner] (12)五、Implib扫描器[Implib scanner] (12)第三章 OllyDbg的使用 (13)一、如何开始调试[How to start debugging session] (13)二、CPU 窗口[CPU window] (14)三、断点[Breakpoints] (14)四、数据窗口[Dump] (15)五、可执行模块窗口[Executable modules window] (16)六、内存映射窗口[Memory map window] (17)七、监视与监察器[Watches and inspectors] (19)八、线程[Threads] (19)九、调用栈[Call stack] (20)十、调用树[Call tree] (21)十一、选项[Options] (21)十二、搜索[Search] (22)十三、自解压文件[Self—extracting (SFX) files] (22)十四、单步执行与自动执行[Step—by—step execution and animation] (23)十五、Hit跟踪[Hit trace] (23)十六、Run 跟踪[Run trace] (24)十七、快捷键 (26)十八、插件[Plugins] (29)十九、技巧提示[Tips and tricks] (29)第四章其他功能 (30)一、调试独立的DLL[Debugging of stand—alone DLLs] (30)二、解码提示[Decoding hints] (32)三、表达式赋值[Evaluation of expressions] (32)四、自定义函数描述[Custom function descriptions] (34)第一章概述OllyDbg 是一种具有可视化界面的32 位汇编—分析调试器。

外挂编写必备工具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调试,特殊情况下也可带壳调试。下面进入正题:

OllyDBG教程

OllyDBG教程

OllyDBG入门教程作者:CCDebuger一、认识OllyDBGOllyDBG 1.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.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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完全教程目录第一章概述 (1)第二章组件 (5)一、一般原理[General prnciples] (5)二、反汇编器[Disassembler] (8)三、分析器[Analysis] (9)四、Object扫描器[Object scanner] (12)五、Implib扫描器[Implib scanner] (12)第三章 OllyDbg的使用 (13)一、如何开始调试[How to start debugging session] (13)二、CPU 窗口[CPU window] (14)三、断点[Breakpoints] (14)四、数据窗口[Dump] (15)五、可执行模块窗口[Executable modules window] (16)六、内存映射窗口[Memory map window] (17)七、监视与监察器[Watches and inspectors] (19)八、线程[Threads] (19)九、调用栈[Call stack] (20)十、调用树[Call tree] (21)十一、选项[Options] (21)十二、搜索[Search] (22)十三、自解压文件[Self—extracting (SFX) files] (22)十四、单步执行与自动执行[Step—by—step execution and animation] (23)十五、Hit跟踪[Hit trace] (23)十六、Run 跟踪[Run trace] (24)十七、快捷键 (26)十八、插件[Plugins] (29)十九、技巧提示[Tips and tricks] (29)第四章其他功能 (30)一、调试独立的DLL[Debugging of stand—alone DLLs] (30)二、解码提示[Decoding hints] (32)三、表达式赋值[Evaluation of expressions] (32)四、自定义函数描述[Custom function descriptions] (34)第一章概述OllyDbg 是一种具有可视化界面的 32 位汇编—分析调试器。

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

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

字串参考(2)学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。

OllyDbg是一种具有可视化界面的32位汇编—分析调试器。

它的特别之处在于可以在没有源代码时解决问题,并且可以处理其它编译器无法解决的难题。

Version1.10是最终的发布版本。

这个工程已经停止,我不再继续支持这个软件了。

但不用担心:全新打造的OllyDbg2.00不久就会面世!运行环境:OllyDbg可以以在任何采用奔腾处理器的Windows95、98、ME、NT或是XP(未经完全测试)操作系统中工作,但我们强烈建议你采用300—MHz以上的奔腾处理器以达到最佳效果。

还有,OllyDbg是极占内存的,因此如果你需要使用诸如追踪调试[Trace]之类的扩展功能话,建议你最好使用128MB以上的内存。

支持的处理器:OllyDbg支持所有80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE2指令集。

配置:有多达百余个选项用来设置OllyDbg的外观和运行。

我们在上图中地址00440F2C处按F2键设个断点,现在我们按F9键,程序已运行起来了。

我在上面那个编辑框中随便输入一下,如CCDebuger,下面那个编辑框我还保留为原来的“754-GFX-IER-954”,我们点一下那个“Register now!”按钮,呵,OllyDBG跳了出来,暂停在我们下的断点处。

我们看一下信息窗口,你应该发现了你刚才输入的内容了吧?我这里显示是这样:学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。

堆栈SS:[0012F9AC]=00D44DB4,(ASCII"CCDebuger")EAX=00000009上面的内存地址00D44DB4中就是我们刚才输入的内容,我这里是CCDebuger。

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 目录的作用是保存你调试的工作。

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入门系列图文详细教程

一、OllyDBG 的安装与配置详细OllyDBG只要解压到一个目录下,运行OllyDBG.exe 就可以了。

汉化版的发布版本是个RAR 压缩包,运行OllyDBG.exe 即可:OllyDBG 中各个窗口的功能如上图。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OllyDBG入门系列(二)-字串参考

OllyDBG入门系列(二)-字串参考

OllyDBG⼊门系列(⼆)-字串参考引⽤:感谢 chuxuezhe 朋友的反馈:经检查才发现原来是写⽂章前曾⽤修改过的 Ultra String Reference 插件查找过字串,这个修改后的插件会把找到的字串⾃动添加到代码后⾯作为注释,且所有字母都⼀律⼩写,导致原来⽂章写的时候注释中的⼤⼩写分不清楚,⽐较混乱。

这次把⽂章⼀些地⽅修改了⼀下,全部⽤OD⾃带功能进⾏操作,重新制作了⼏个图⽚。

因为我⾃⼰的失误,在此对给⼤家造成了阅读中的困惑表⽰抱歉!OllyDBG ⼊门系列(⼆)-字串参考作者:CCDebuger上⼀篇是使⽤⼊门,现在我们开始正式进⼊破解。

今天的⽬标程序是看雪兄《加密与解密》第⼀版附带光盘中的 镜像打包中的 CFF Crackme #3,采⽤⽤户名/序列号保护⽅式。

原版加了个 UPX 的壳。

刚开始学破解先不涉及壳的问题,我们主要是熟悉⽤OllyDBG 来破解的⼀般⽅法。

我这⾥把壳脱掉来分析,附件是脱壳后的⽂件,直接就可以拿来⽤。

先说⼀下⼀般软件破解的流程:拿到⼀个软件先别接着马上⽤ OllyDBG 调试,先运⾏⼀下,有帮助⽂档的最好先看⼀下帮助,熟悉⼀下软件的使⽤⽅法,再看看注册的⽅式。

如果是序列号⽅式可以先输个假的来试⼀下,看看有什么反应,也给我们破解留下⼀些有⽤的线索。

如果没有输⼊注册码的地⽅,要考虑⼀下是不是读取注册表或 Key ⽂件(⼀般称 keyfile,就是程序读取⼀个⽂件中的内容来判断是否注册),这些可以⽤其它⼯具来辅助分析。

如果这些都不是,原程序只是⼀个功能不全的试⽤版,那要注册为正式版本就要⾃⼰来写代码完善了。

有点跑题了,呵呵。

获得程序的⼀些基本信息后,还要⽤查壳的⼯具来查⼀下程序是否加了壳,若没壳的话看看程序是什么编译器编的,如 VC、Delphi、VB 等。

这样的查壳⼯具有PEiD 和 FI。

有壳的话我们要尽量脱了壳后再来⽤ 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,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

unpack process

unpack process
(2)出现往回跳转时,即红色线显示跳转实现,必须在下一行点左鍵,然后按F4步过,灰色为跳转未实现,可不理它照样F8。
(3)其他全部F8,一路下去必定能找到第一个popad,找到后离此不远必定有一个大的跳转,一旦跳转来到有pushebp等字样,说明壳己走完到原程序(OEP),在此用OD插件→ollyDump→Dump debu…→Dump脱壳→保存。
0059F001 >60pushad
0059F002E8 03000000 call0059F00A (按F7进入,因为这里的CALL离入口很近)
0059F007- E9 EB045D45 jmp 45B6F4F7
0059F00C55pushebp 0059F00DC3retn
0059F00EE8 01000000 call0059F014 (按F7进入,因为这里的CALL离入口也很近,)
中间省略… …一路F8
0059F140^\EB EB jmp short 0059F12D (这里显示往回跳已实现,因此不能按F8,用鼠标左键点下一行后,按F4步过)
0059F15A83E9 05 sub ecx, 5
0059F15D^ EB CE jmp short 0059F12D (这里显示往回跳已实现,用鼠标左键点下一行后,按F4步过)
0059F15F5Bpop ebx
中间省略… …一路F8
0059F1A3^\0F85 1EFFFFFF jnz 0059F0C7 (这里显示往回跳已实现,用鼠标左键点下一行后,按F4步过)
下面,用一个简单的软件演示一下实例:
【文章作者】: yffgs
【作者邮箱】: 1001@
【软件名称】: 现代汉语词典

从零开始的程序逆向之路基础篇第二章——用OllyDbg(OD)分析一个简单的软件

从零开始的程序逆向之路基础篇第二章——用OllyDbg(OD)分析一个简单的软件

从零开始的程序逆向之路基础篇第⼆章——⽤OllyDbg(OD)分析⼀个简单的软件作者:Crazyman_Army原⽂来⾃:0x00知识回顾 (由于笔者省事,没开XP虚拟机,⽽且没关闭ASLR,所以每次重载的内存地址会不⼀样)在第⼀章的内容中,笔者已经讲了OllyDbg(简称OD)的界⾯介绍以及基础的操作,普及了常⽤的汇编指令上次课在底下的附件中,我留下了⼀个演⽰样例,⼤家载⼊OD后搜索到字符串点击跟踪到反汇编窗⼝的时候会发现与第⼀章所讲的程序的框架不太⼀样.尤其可见多出了很多的call指令,call指令在汇编中就是调⽤⼦程序,下⾯放出代码,各位同学可以⽐对⼀下与上篇⽂件所贴出代码的不同代码如下:#include <windows.h>#include <tlhelp32.h>#include <stdio.h>BOOL getProcess(const char *procressName);BOOL getProcess(const char *procressName){char pName[MAX_PATH];strcpy(pName, procressName);CharLowerBuff(pName, MAX_PATH);PROCESSENTRY32 currentProcess;currentProcess.dwSize = sizeof(currentProcess);HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hProcess == INVALID_HANDLE_VALUE){printf("CreateToolhelp32Snapshot()调⽤失败!\n");return FALSE;}_asm NOP;BOOL bMore = Process32First(hProcess, ¤tProcess);while (bMore){CharLowerBuff(currentProcess.szExeFile, MAX_PATH);if (strcmp(currentProcess.szExeFile, pName) == 0){CloseHandle(hProcess);return TRUE;}bMore = Process32Next(hProcess, ¤tProcess);}CloseHandle(hProcess);return FALSE;}int main(){char* process = "explorer.exe";if (getProcess(process)){printf("发现explorer.exe\n");system("pause");exit(0);}else{printf("没有发现explorer.exe\n");printf("Cracke Success!");}getchar();return 0;}从代码⾓度来看,很明显,这次笔者讲判断进程封装成⼀个返回布尔值的函数,所以才会在核⼼判断部分出现如此多的调⽤,那这当然不能像上次⼀样改⼀步简单的跳转就解决问题,如果改得不对就会造成程序的崩溃。

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:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于SoftICE中的F9)
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到CALL等子程序不进入其代码。(相当于SoftICE中的F10)
F7:单步步入。功能同单步步过(F8)类似,区别是遇到CALL等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。(相当于SoftICE中的F8)
二、基本调试方法
OllyDBG有三种方式来载入程序进行调试,一种是点击菜单文件->打开(快捷键是F3)来打开一个可执行文件进行调试,另一种是点击菜单文件->附加来附加到一个已运行的进程上进行调试。注意这里要附加的程序必须已运行。第三种就是用右键菜单来载入程序(不知这种算不算)。一般情况下我们选第一种方式。比如我们选择一个test.exe来调试,通过菜单文件->打开来载入这个程序,OllyDBG中显示的内容将会是这样:
另外一个重要的选项就是调试选项,可通过菜单选项->调试设置来配置:
新手一般不需更改这里的选项,默认已配置好,可以直接使用。建议在对OllyDBG已比较熟的情况下再来进行配置。上面那个异常标签中的选项经常会在脱壳中用到,建议在有一定调试基础后学脱壳时再配置这里。
除了直接启动OllyDBG来调试外,我们还可以把OllyDBG添加到资源管理器右键菜单,这样我们就可以直接在.exe及.dll文件上点右键选择“用Ollydbg打开”菜单来进行调试。要把OllyDBG添加到资源管理器右键菜单,只需点菜单选项->添加到浏览器,将会出现一个对话框,先点击“添加Ollydbg到系统资源管理器菜单”,再点击“完成”按钮即可。要从右键菜单中删除也很简单,还是这个对话框,点击“从系统资源管理器菜单删除Ollydbg”,再点击“完成”就行了。
启动后我们要把插件及UDD的目录配置为绝对路径,点击菜单上的选项->界面,将会出来一个界面选项的对话框,我们点击其中的目录标签:
因为我这里是把OllyDBG解压在F:\OllyDBG目录下,所以相应的UDD目录及插件目录按图上配置。还有一个常用到的标签就是上图后面那个字体,在这里你可以更改OllyDBG中显示的字体。上图中其它的选项可以保留为默认,若有需要也可以自己修改。修改完以后点击确定,弹出一个对话框,说我们更改了插件路径,要重新启动OllyDBG。在这个对话框上点确定,重新启动一下OllyDBG,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。有人可能知道插件的作用,但对那个UDD目录不清楚。我这简单解释一下:这个UDD目录的作用是保存你调试的工作。比如你调试一个软件,设置了断点,添加了注释,一次没做完,这时OllyDBG就会把你所做的工作保存到这个UDD目录,以便你下次调试时可以继续以前的工作。如果不设置这个UDD目录,OllyDBG默认是在其安装目录下保存这些后缀名为udd的文件,时间长了就会显的很乱,所以还是建议专门设置一个目录来保存这些文件。
00440F98 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]
00440F9D |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00440F9F |. E8 C4C0FFFF CALL CrackMe3.0043D068
我们在反汇编窗口中向上滚动一下再看看:
00440F5F |. BA 5C104400 MOV EDX,CrackMe3.0044105C ; ASCII "Congrats! You cracked this CrackMe!"
00440F64 |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]
00440F69 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00440F6B |. E8 F8C0FFFF CALL CrackMe3.0043D068
00440F70 |. EB 32 JMP SHORT CrackMe3.00440FA4
00440F72 |> 6A 00 PUSH 0
OllyDBG中各个窗口的功能如上图。简单解释一下各个窗口的功能,更详细的内容可以参考TT小组翻译的中文帮助:
反汇编窗口:显示被调试程序的反汇编代码,标题栏上的地址、HEX数据、反汇编、注释可以通过在窗口中右击出现的菜单界面选项->隐藏标题或显示标题来进行切换是否显示。用鼠标左键点击注释标签可以切换注释显示的方式。
ALT+F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。(相当于SoftICE中的F11)
外挂编写必备工具2——OllyDBG(OD)入门系列2
OllyDBG入门系列(二)-字串参考
上一篇是使用入门,现在我们开始正式进入破解。今天的目标程序是看雪兄《加密与解密》第一版附带光盘中的镜像打包中的CFF Crackme #3,采用用户名/序列号保护方式。原版加了个UPX的壳。刚开始学破解先不涉及壳的问题,我们主要是熟悉用OllyDBG来破解的一般方法。我这里把壳脱掉来分析,附件是脱壳后的文件,直接就可以拿来用。先说一下一般软件破解的流程:拿到一个软件先别接着马上用OllyDBG调试,先运行一下,有帮助文档的最好先看一下帮助,熟悉一下软件的使用方法,再看看注册的方式。如果是序列号方式可以先输个假的来试一下,看看有什么反应,也给我们破解留下一些有用的线索。如果没有输入注册码的地方,要考虑一下是不是读取注册表或Key文件(一般称keyfile,就是程序读取一个文件中的内容来判断是否注册),这些可以用其它工具来辅助分析。如果这些都不是,原程序只是一个功能不全的试用版,那要注册为正式版本就要自己来写代码完善了。有点跑题了,呵呵。获得程序的一些基本信息后,还要用查壳的工具来查一下程序是否加了壳,若没壳的话看看程序是什么编译器编的,如VC、Delphi、VB等。这样的查壳工具有PEiD和FI。有壳的话我们要尽量脱了壳后再来用OllyDBG调试,特殊情况下也可带壳调试。下面进入正题:
OllyDBG支持插件功能,插件的安装也很简单,只要把下载的插件(一般是个DLL文件)复制到OllyDBG安装目录下的PLUGIN目录中就可以了,OllyDBG启动时会自动识别。要注意的是OllyDBG 1.10对插件的个数有限制,最多不能超过32个,否则会出错。建议插件不要添加的太多。
到这里基本配置就完成了,OllyDBG把所有配置都放在安装目录下的ollydbg.ini文件中。
外挂编写必备工具2——OllyDBG(OD)入门系列1
OllyDBG入门系列(一)-认识OllyDBG
一、OllyDBG的安装与配置
OllyDBG 1.10版的发布版本是个ZIP压缩包,只要解压到一个目录下,运行OllyDBG.exe就可以了。汉化版的发布版本是个RAR压缩包,同样只需解压到一个目录下运行OllyDBG.exe即可:
我们先来运行一下这个crackme(用PEiD检测显示是Delphi编的),界面如图:
这个crackme已经把用户名和注册码都输好了,省得我们动手^_^。我们在那个“Register now !”按钮上点击一下,将会跳出一个对话框:
好了,今天我们就从这个错误对话框中显示的“Wrong Serial, try again!”来入手。启动OllyDBG,选择菜单文件->打开载入CrackMe3.exe文件,我们会停在这里:
00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 ; ASCII "Registered User"
00440F34 |. E8 F32BFCFF CALL CrackMe3.00403B2C ;关键,要用F7跟进去
我们在反汇编窗口中右击,出来一个菜单,我们在查找->所有参考文本字串上左键点击:
当然如果用上面那个超级字串参考+插件会更方便。但我们的目标是熟悉OllyDBG的一些操作,我就尽量使用OllyDBG自带的功能,少用插件。好了,现在出来另一个对话框,我们在这个对话框里右击,选择“查找文本”菜单项,输入“Wrong Serial, try again!”的开头单词“Wrong”(注意这里查找内容要区分大小写)来查找,找到一处:
00440F8C |> 6A 00 PUSH 0
00440F8E |. B9 80104400 MOV ECX,CrackMe3.00441080 ; ASCII "Beggar off!"
00440F93 |. BA 8C104400 MOV EDX,CrackMe3.0044108C ; ASCII "Wrong Serial,try again!"
00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ;这里跳走就完蛋
00440F3B |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
00440F3E |. 8B83 C8020000 MOV EAX,DWORD PTR DS:[EBX+2C8]
00440F7E |. A1 442C4400 MOV EAX,DWORD PTR DS:[442C44]
00440F83 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00440F85 |. E8 DEC0FFFF CALL CrackMe3.0043D068
00440F8A |. EB 18 JMP SHORT CrackMe3.00440FA4
在我们找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”,我们来到这里:
见上图,为了看看是否还有其他的参考,可以通过选择右键菜单查找参考->立即数,会出来一个对话框:
相关文档
最新文档