OD教程文库

合集下载

OD使用教程 - 解密系列【调试篇】 调试逆向

OD使用教程 - 解密系列【调试篇】 调试逆向

OD使用实践
• 古语有云,趁热要打铁,趁火要打劫,趁着我们 还有点印象,赶紧实践一下吧亲╭(╯3╰)╮!
• 要求:通过OD将程序的标题“Hello world”改为 “I love ”
们的视频讲座中随着需要会逐步提供给大家的, 嗯,不用担心,我们就学好眼前的,一步步来!
OD基本快捷键及ห้องสมุดไป่ตู้能
F2 F3 F4 F5 F7 F8 F9 Ctrl+F2 Ctrl+F9 Alt+F9 Ctrl+G
下断点,也就是指定断点的地址 加载一个可执行程序,进行调试分析 程序执行到光标处 缩小、还原当前窗口 单步步入 单步步过 直接运行程序,遇到断点处,程序暂停 重新运行程序到起始处,一般用于重新调试程序 执行到函数返回处,用于跳出函数实现 执行到用户代码处,用于快速跳出系统函数 输入十六进制地址,快速定位到该地址处
调试逆向
• 在软件开发的过程中,程序员会使用一些调试工 具,以便高效地找出软件中存在的错误。
• 而在逆向分析领域,分析者也会利用相关的调试 工具来分析软件的行为并验证分析结果。
• 由于操作系统都会提供完善的调试接口,所以利 用各类调试工具可以非常方便灵活地观察和控制 目标软件。
• 在使用调试工具分析程序的过程中,程序会按调 试者的意愿以指令为单位执行。
调试逆向
• 调试逆向分为动态分析技术和静态分析技术。
• 动态分析技术指的是使用调试工具加载程序并运 行,随着程序运行,调试者可以随时中断目标的 指令流程,以便观察相关计算的结果和当前的设 备情况。
• 静态分析技术是相对于动态分析而言的。由于在 实际分析中,很多场合不方便运行目标(例如病 毒程序,设备不兼容,软件的单独某一模块)。 那么这个时候静态分析技术就该上场了!

OD使用教程21 - 解密系列【调试篇】 多态和变形

OD使用教程21 - 解密系列【调试篇】 多态和变形
ห้องสมุดไป่ตู้
OD使用教程21
• 今天我们的主题是:眼见非实 • 譬如。。。。。。
多态和变形
• 多态是第一种对杀毒软件造成严重威胁的技术。
• 一个多态病毒在触发时由解密模块进行解密,在 感染时由加密模块进行加密并感染,但其加密模 块在每一次的感染中会有所修改。
• 因此,一个仔细设计的多态病毒在每一次感染中 没有一个部分是相同的。这使得使用病毒特征码 进行侦测变得困难。杀毒软件必须在一模拟器上 对该病毒加以解密进而侦知该病毒,或是利用加 密病毒其统计样板上的分析。

OD使用方法

OD使用方法
00401000 PEncryp> FC cld //停在这里了。
00401001 FC cld
00401002 FC cld
00401003 90 nop
00401004 - E9 BDBA0000 jmp PEncrypt.0040CAC6
00401009 - E3 D5 jecxz short PEncrypt.00400FE0
0040CCEC |49 dec ecx
0040CCEE 60 pushad //跳到这里了,关键提示,继续F8
0040CCEF 9C pushfd //关键提示
0040CCF0 BE 00104000 mov esi,PEncrypt.<ModuleEntryPoin>
0040CCF5 8BFE mov edi,esi
确定从所有Seh异常中走出来,如果前面有大量循环,逐段解压。
****************************************************************************************
大家先细细品位下上面的“理论”!如果你弄懂了,那你应该高兴下了。。
0040CCD4 6368 69 arpl word ptr ds:[eax+69],bp
0040CCD7 8B4424 04 mov eax,dword ptr ss:[esp+4]
好了,我们先就停在这里
看看转存器窗口
0012FFBC 0012FFE0指针到下一个SEH记录
0012FFC0 0040CCD7 SE句柄//Ctrl+G,到0040CCD7
4:CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)

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

调试技巧总结
• 7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。 • 8.按“Ctrl+G”键打开跟随表达式的窗口。 • 9.也可以通过“Ctrl+N”键打开应用程序的导入表( 输入表),然后查看应用程序总共导入了哪些函数来 以此推断需要在哪里挖坑下陷阱! • 10.关于返回值,汇编代码的返回值约定是存放在eax 这个寄存器里边的,如果32位的eax不够存放返回值 ,系统会将返回值放在内存某个位置并把该位置的地 址放在eax返回。
调试技巧总结
• 4.所谓领空,实际上就是指在某一时刻,CPU执 行的指令所在的某段代码的所有者。 • 5.如004013F7这类地址一般是可执行文件领空, 7C8114AB这类大地址一般是系统DLL所在的地 址空间。 • 6.程序通常读取文本框内容的字符串用的是以下 两个函数:
– GetDlgItemTextA(GetDlgItemTextW) – GetWindowTextA(GetWindowTextW)
OD使用教程
• 今天小甲鱼给大家演示使用OD破解《解密系列》 里边的小程序的过程。 • 《解密系列》里固然破解过程说明,但是看过此 书的朋友无不说太简单带过了,书中仅提到破解 该程序的简要步骤。 • 但是我们强调一定要知其然且知其所以然!所以 在今天的演示中,小甲鱼会用一样的程序讲出更 全面的内容! • 鸡冻吧?那上课就别睡觉了哦~
• 演示中… …
调试技巧总结
• 1.F2下断点,Alt+b打开断点编辑器,可编辑所 有下过的断点,空格键可快速切换断点状态。 • 2.当位于某个CALL中,这时想返回到调用这个 CALL的地方时,可以按“Ctrl+F9”快捷键执行 返回功能。这样OD就会停在遇到的第一个返回命 令(如RET、RETF或IRET)。 • 3.如果跟进系统DLL提供的API函数中,此时想返 回到应用程序领空里,可以按快捷键“Alt+F9” 执行返回到用户代码命令。

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

OD使用完全教程

OD使用完全教程

OD使用完全教程
###一、介绍
Cron(也称为Cronjob)是一种定时任务的开源程序,可以定期或定
期地执行特定的任务。

它主要用于Linux和Unix系统,可以让你运行定
期运行的程序,在指定的时间间隔内自动执行特定任务,而无需人工干预。

Cron可以帮助您执行任务,而无需每次运行程序。

这类似于Windows
操作系统中的Windows任务计划程序,它可以自动安排任务,从而节省您
的时间。

Cron有很多用途,例如用来定期备份数据库、定期发送邮件和更新Web网站内容等。

### 二、Cron工作原理
Cron的工作原理是基于定时器的,它会检查每个Cron表达式,并找
出下一次执行任务的时间。

Cron表达式由5个空格分隔的字段组成,每一个字段代表一个时间
概念。

它们的格式如下:
-分钟:0-59
-小时:0-23
-日期:1-31
-月份:1-12
-星期:0-6(0代表星期日)
另外
-*:代表每个时间段的所有可能值
-,:用于将多个值分隔开
--:代表一个时间段
-/:代表一个指定的间隔
可以使用这些符号来定义更精确和复杂的Cron表达式。

根据表达式指定的信息,Cron会计算出下一次执行任务的时间,并将其添加到您的任务队列中。

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目录,以便你下次调试时可以继续以前的工作。

OD使用完全教程

OD使用完全教程

教你如何破解软件,OD破解软件,OD使用教程教你如何破解软件,OD破解软件,OD使用教程大家好,这几天我上网大概看了一下,ITyouth论坛的内容真的应有尽有,不知道应该写什么了,所以我想了一晚上终于想到了还是教你们些破解知识吧!我想对大家来说都很有用吧!我将会一直坚持下去保证课堂质量,有不会的可以提出来问我,尽量解答(呵呵!我也是鸟嘛!)废话不多说!支持我的就往下看吧!先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧!----------------------------------------------------------------------------------------------------------------语句:cmp a,b//cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小.mov a,b//mov是赋值语句,把b的值赋给a.je/jz//就是相等就到指定位置(也叫跳转).jne/jnz//不相等就到指定位置.jmp//无条件跳转.jl/jb//若小于就跳.ja/jg//若大于就跳.jge//若大于等于就跳.----------------------------------------------------------------------------------------------------------------------这些都是我们在以后的课程中会经常遇到的语句,应该记住它们,接下来我们在讲讲破解工具的使用:我们破解或给软件脱壳最常用的软件就是OD全名叫ODbyDYK界面如图1它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.右下角的是当前堆栈情况,还有注释啊.恩,今天的课程就上到这了,大家可以在自己的电脑下试试OD,了解了解OD,下堂课我将破解一款软件给大家看,我们就用今天讲的语句和OD来破解,在以后的课程里我还会教大家脱壳,因为现在的软件为了维护版权多数都加了壳的,所以要破解就必须脱壳!好了!下节课见!88OD下载地址:百度一下吧破解工具------ODbyDYK v1.10 12.06.rar 5.1MB【原创】"白拿"软件破解班(二)呵呵!大家好!我是散人,我们又见面了!恩,按照上节课说的那样今天来破解个软件给大家看看!大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话加我QQ!有时间给你补节课!呵呵!好!孔子曰:“废话不可多说也”OK!!!~!!!先讲下预备知识:JZ/JE//相等则跳转JNE/JNZ//不相等则跳转JMP //无条件跳转目标柏林:LRC傻瓜编辑器杀杀杀~~~~~~~~~简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。

OD使用完全教程

OD使用完全教程

教你如何破解软件,OD破解软件,OD使用教程教你如何破解软件,OD破解软件,OD使用教程大家好,这几天我上网大概看了一下,ITyouth论坛的内容真的应有尽有,不知道应该写什么了,所以我想了一晚上终于想到了还是教你们些破解知识吧!我想对大家来说都很有用吧!我将会一直坚持下去保证课堂质量,有不会的可以提出来问我,尽量解答(呵呵!我也是鸟嘛!)废话不多说!支持我的就往下看吧!先教大家一些基础知识,学习破解其实是要和程序打交道的,汇编是破解程序的必备知识,但有可能部分朋友都没有学习过汇编语言,所以我就在这里叫大家一些简单实用的破解语句吧!----------------------------------------------------------------------------------------------------------------语句:cmp a,b//cmp是比较的意思!在这里假如a=1,b=2 那么就是a与b比较大小.mov a,b//mov是赋值语句,把b的值赋给a.je/jz//就是相等就到指定位置(也叫跳转).jne/jnz//不相等就到指定位置.jmp//无条件跳转.jl/jb//若小于就跳.ja/jg//若大于就跳.jge//若大于等于就跳.----------------------------------------------------------------------------------------------------------------------这些都是我们在以后的课程中会经常遇到的语句,应该记住它们,接下来我们在讲讲破解工具的使用:我们破解或给软件脱壳最常用的软件就是OD全名叫ODbyDYK界面如图1它是一个功能很强大的工具,左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.右下角的是当前堆栈情况,还有注释啊.恩,今天的课程就上到这了,大家可以在自己的电脑下试试OD,了解了解OD,下堂课我将破解一款软件给大家看,我们就用今天讲的语句和OD来破解,在以后的课程里我还会教大家脱壳,因为现在的软件为了维护版权多数都加了壳的,所以要破解就必须脱壳!好了!下节课见!88OD下载地址:百度一下吧破解工具------ODbyDYK v1.10 12.06.rar 5.1MB【原创】"白拿"软件破解班(二)呵呵!大家好!我是散人,我们又见面了!恩,按照上节课说的那样今天来破解个软件给大家看看!大家只要认真看我的操作一定会!假如还是不明白的话提出难点帮你解决,还不行的话加我QQ!有时间给你补节课!呵呵!好!孔子曰:“废话不可多说也”OK!!!~!!!先讲下预备知识:JZ/JE//相等则跳转JNE/JNZ//不相等则跳转JMP //无条件跳转目标柏林:LRC傻瓜编辑器杀杀杀~~~~~~~~~简介:本软件可以让你听完一首MP3歌曲,便可编辑完成一首LRC歌词。

OD零基础入门级教程

OD零基础入门级教程

首先,我要声明一下,本教程只局限于不懂破解的朋友,让你们了解并有机会深入破解!其次,诸位大神请高抬贵手,不要骂我。

虽然简易,但我的初衷是让不懂的人更有信心加入破解行列!最后,我们只需5步,让你了解一个程序被破解。

介绍一下这个软件吧,我写的一个简单的软件,方便初学者容易理解。

程序需要输入正确的帐号和密码才可以登录成功,否则登录失败。

可是我们不知道正确的帐号密码。

(也可以理解成是其他软件注册码)既然他能提示登录成功与登录失败(或某些软件提示注册码错误),就说明他有一个判断,我们来打开OD载入程序,让他判断所有字符都是成功。

(由于是初级零基础入门级教程,所以不涉及“各种壳”、“暗桩”等等系列干扰新手的元素)在左上角窗口右键,选择“中文搜索引擎”-“搜索ASCII”之后搜索(Ctrl+F)输入“登录失败”(也就是你不想看到的东西),找到结果后,我们双击那一行代码。

我们向上找找,这个判断跳转的来源在哪儿。

下图可以看到,在图片最上方的je命令左边有一条线,跳过了成功,指向了失败前面的代码。

我们在这行代码上右键,选择“二进制”-“NOP填充”就是让这个跳转失效。

那么现在,你所填写的注册码或密码,输入所有字符或不输入任何字符,都是正确的了!但是还没完,不用我说大家也知道,还需要保存一下~我们右键,选择“复制到可执行文件”-“所有”跳转后继续右键“保存文件”,生成一个新的文件,也就是破解补丁,覆盖源文件。

最后,我们来打开刚才保存出来的新程序(也就是我们破解后的程序),是不是真的被破解了?我们还同样输入“abc”,恭喜,成功破解!有了第一课的基础,大家是不是想试试身手,那么我们就拿个真实的软件试试身手吧!这一课,我们要利用第一课假软件的知识,来获得一个真实软件的注册码!这个软件其他视频教程也借用过,所以我也来借用一下。

*******************************************************************软件是一个IP搜索工具,有注册项,我们就来拿这个软件获得注册码,只需5步!注:(同样是初级软件,不涉及干扰新手学习的各种元素)下面是注册界面的截图注册后,截图就有提示出来了,暂且不管他提示的是什么,我们也知道要干什么了,对吗?好,OD载入程序,同样是按照第一集的步骤,搜索Name(如果第一个不是你要找的字符串,按“b”是查找下一个)很容易,第二个就找到了刚才提示的字符串,我们双击它!双击后,我们同样按照第一集的步骤,找到了跳转。

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目录不清楚。

od使用教程

od使用教程

od使用教程
使用开发者工具(OD)可以帮助开发人员调试和测试应用程序。

下面是一些OD的常用功能和使用方法的教程:
1. 查看控制台输出信息:在OD中打开开发者工具控制台,可以查看应用程序输出的日志、错误和警告信息。

2. 调试JavaScript代码:在OD的“Sources”选项卡中,可以查看和编辑应用程序的JavaScript代码。

可以通过在代码中设置断点,并使用“Step Over”、“Step Into”和“Step Out”等按钮来逐行执行代码。

3. 检查和修改样式:在OD的“Elements”选项卡中,可以查看和修改应用程序的HTML和CSS样式。

可以在“Elements”面板中选择元素,并在“Styles”面板中编辑其样式。

4. 模拟设备和网络:在OD的“Device Mode”选项卡中,可以模拟不同的设备类型和网络条件,以确保应用程序在不同环境下的表现。

5. 监测网络请求:在OD的“Network”选项卡中,可以查看应用程序发送和接收的网络请求。

可以查看请求的详细信息,如请求头、请求参数和响应状态。

6. 性能分析:在OD的“Performance”选项卡中,可以进行应用程序的性能分析。

可以查看页面加载时间、资源占用和函数执行时间等。

这些是OD的一些常用功能和使用方法的简要介绍。

希望对你有帮助!。

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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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根本不需要安装,可直接在软盘中运行!调试DLLs:您可以利用OllyDbg调试标准动态链接库 (DLLs)。

OllyDbg 会自动运行一个可执行程序。

这个程序会加载链接库,并允许您调用链接库的输出函数。

源码级调试: OllyDbg 可以识别所有 Borland 和 Microsoft 格式的调试信息。

这些信息包括源代码、函数名、标签、全局变量、静态变量。

有限度的支持动态(栈)变量和结构。

代码高亮: OllyDbg 的反汇编器可以高亮不同类型的指令(如:跳转、条件跳转、入栈、出栈、调用、返回、特殊的或是无效的指令)和不同的操作数(常规[general]、FPU/SSE、段/系统寄存器、在栈或内存中的操作数,常量)。

您可以定制个性化高亮方案。

线程: OllyDbg 可以调试多线程程序。

因此您可以在多个线程之间转换,挂起、恢复、终止线程或是改变线程优先级。

并且线程窗口将会显示每个线程的错误(就像调用 GETLASTERROR返回一样)。

分析:OllyDbg 的最大特点之一就是分析。

它会分析函数过程、循环语句、选择语句、表[tables]、常量、代码中的字符串、欺骗性指令[tricky constructs]、API调用、函数中参数的数目,import表等等。

. 这些分析增加了二进制代码的可读性,减少了出错的可能性,使得我们的调试工作更加容易。

Object扫描。

OllyDbg 可以扫描Object文件/库(包括 OMF 和 COFF 格式),解压代码段[code segments]并且对其位置进行定向。

Implib扫描。

由于一些DLL文件的输出函数使用的索引号,对于人来说,这些索引号没有实际含义。

如果您有与DLL相应的输入库[import library],OllyDbg 就可以将序号转换成符号名称。

完全支持Unicode:几乎所有支持 ASCII 的操作同时也支持 UNICODE,反之亦然。

名称: OllyDbg 可以根据 Borland 和 Microsoft 格式的调试信息,显示输入/输出符号及名称。

Object 扫描器可以识别库函数。

其中的名称和注释您可任意添加。

如果DLL中的某些函数是通过索引号输出的,则您可通过挂接输入库[import library]来恢复原来的函数名称。

不仅如此,OllyDbg还能识别大量的常量符号名(如:窗口消息、错误代码、位域[bit fields]…)并能够解码为已知的函数调用。

已知函数:OllyDbg 可以识别 2300 多个 C 和 Windows API 中的常用函数及其使用的参数。

您可以添加描述信息、预定义解码。

您还可以在已知函数设定 Log 断点并可以对参数进行记录。

函数调用: OllyDbg 可以在没有调试信息或函数过程使用非标准的开始部分[prolog]和结尾部分[epilog]的情况下,对递归调用进行回溯。

译者注:004010D0 push ebp \004010D1 mov ebp,esp |004010D3 sub esp,10h |prolog004010D6 push ebx |004010D7 push esi |004010D8 push edi /……004010C5 pop edi \004010C6 pop esi |004010C7 pop ebx |epilog004010C8 mov esp,ebp |004010CA pop ebp |004010CB ret /栈:在栈窗口中,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]可以在跟踪时计算某些指令出现的次数。

因此您就能了解代码的哪一部分被频繁执行。

补丁:内置汇编器能够自动找到修改过的代码段。

二进制编辑器则会以ASCII、UNICODE或者十六进制的形式同步显示修改后的数据。

修改后的数据同其它数据一样,能够进行复制-粘贴操作。

原来的数据会自动备份,以便数据恢复时使用。

您可以把修改的部分直接复制到执行文件中,OllyDbg会自动修正。

OllyDbg还会记录以前调试过程中使用的所有补丁。

您可以通过空格键实现补丁的激活或者禁止。

自解压文件:当调试自解压文件时,您往往希望跳过解压部分,直接停在程序的原始入口点。

OllyDbg的自解压跟踪将会使您实现这一目的。

如果是加保护的自解压段,自解压跟踪往往会失败。

而一旦OllyDbg找到了入口点,它将会跳过解压部分,并准确的到达入口点。

插件:您可以把自己的插件添加到 OllyDbg 中,以增加新的功能。

OllyDbg 的插件能够访问几乎所有重要的数据的结构、能够在 OllyDbg 的窗口中添加菜单和快捷键,能够使用100个以上的插件API函数。

插件API函数有详细的说明文档。

默认安装已经包含了两个插件:命令行插件和书签插件。

UDD:OllyDbg 把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加载时继续使用。

这些信息包括了标签、注释、断点、监视、分析数据、条件等等更多:这里介绍的功能,仅仅是 OllyDbg 的部分功能。

因为其具有如此丰富的功能,以至于OllyDbg 能成为非常方便的调试器!冷血书生 2005-12-14 06:24二,一般原理[General principles]我希望您能对80x86系列处理器的内部结构有所了解,同时具有一定的编写汇编程序的能力。

相关文档
最新文档