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反编译工具用法

od反编译工具用法

od反编译工具用法反编译是指将已经编译过的程序文件转换为高级源代码的过程。

反编译工具可以帮助开发者了解和学习其他人编写的程序,对于调试和修复软件错误也很有帮助。

OD (OllyDbg) 是一种广泛使用的反汇编调试工具,本文将介绍如何使用OD进行反编译。

OD的基本使用方法如下:2.打开需要反编译的程序:在OD主界面上点击“文件”菜单,然后选择“打开”选项,浏览并选择需要反编译的程序文件,并点击“打开”按钮。

3.反汇编代码窗口:OD会在主界面上打开一个反汇编代码窗口,这个窗口将显示程序的机器码和相应的汇编指令。

4.反编译代码:可以通过“右键单击”汇编指令,然后选择“跟随”选项来进行反编译。

OD会尝试寻找并显示反编译后的代码。

5.查看变量和数据:在OD的主界面上,有一个“数据窗口”,可以显示程序中的变量和内存数据。

在反汇编代码窗口中选择一些指令,然后在数据窗口中查看它所使用的变量和数据的值。

6.设置断点:在OD中设置断点可以帮助我们在特定指令上暂停执行程序,以便查看程序状态和调试错误。

在反汇编代码窗口中选择一些指令,然后点击“上方”菜单中的“条件断点”选项,OD会弹出一个对话框,可以在其中设置断点条件。

7.运行程序:在OD的主界面上,有一个“执行”菜单,可以用于运行程序。

可以通过点击“执行”菜单中的“运行”选项来启动程序的执行。

当程序遇到断点时,会停止执行并进入调试模式。

8.调试程序:在OD的调试模式下,可以通过一些常用的调试功能来调试程序。

例如,可以通过“单步执行”菜单选项逐行执行程序代码,通过“寄存器窗口”查看和修改寄存器值,通过“内存窗口”查看和修改内存数据等。

需要注意的是,使用OD进行反编译需要一定的汇编和调试知识。

同时,反编译软件可能涉及违法行为,如未获得程序开发者的许可而进行反编译。

请确保遵守法律规定,并只在合法和正当的情况下使用反编译工具。

在使用OD进行反编译时,可以参考以下一些技巧和注意事项:1.了解汇编语言与机器码的对应关系:汇编语言是将机器码转换为可读性更高的指令的语言,因此了解汇编语言的基本语法和常见指令有助于理解和分析程序。

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

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

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使用教程2 - 解密系列【调试篇】

OD使用教程2 - 解密系列【调试篇】
• 3.如果跟进系统DLL提供的API函数中,此时想返回 到应用程序领空里,可以按快捷键“Alt+F9”执行 返回到用户代码命令。
调试技巧总结
• 4.所谓领空,实际上就是指在某一时刻,CPU执行 的指令所在的某段代码的所有者。
• 5.如004013F7这类地址一般是可执行文件领空, 7C8114AB这类大地址一般是系统DLL所在的地址空 间。
• 6.程序通常读取文本框内容的字符串用的是以下 两个函数:
– GetDlgItemTextA(GetDlgItemTextW) – GetWindowTextA(GetWindowTextW)
调试技巧总结
• 7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。
• 8.按“Ctrl+G”键打开跟随表达式的窗口。 • 9.也可以通过“Ctrl+N”键打开应用程序的导入表(
准备工作
• 拆解一个Windows程序要比拆解一个DOS程序容易 得多,因为在Windows中,只要API函数被使用, 想对寻找蛛丝马迹的人隐藏一些东西是比较困难 的。
• 因此分析一个程序,用什么API函数作为切入点就 显得比较关键了。这也正是小甲鱼常跟大家说破 解靠的是耐心和经验的道理!
• 为了便于大家理解,我们先把TraceMe这个序列号 验证程序流程图给大家展示出来:
OD使用教程
• 今天小甲鱼给大家演示使用OD破解《解密系列》 里边的小程序的过程。
• 《解密系列》里固然破解过程说明,但是看过此 书的朋友无不说太简单带过了,书中仅提到破解 该程序的简要步骤。
• 但是我们强调一定要知其然且知其所以然!所以 在今天的演示中,小甲鱼会用一样的程序讲出更 全面的内容!

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

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

• 针对字符串:
__vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp __vbaStrTextLike
• API函数的作用有很多,例如作为中介让我们的程 序和指定设备进行沟通。
VB破解的关键
• 针对变量:
__vbaVarTstEq __vbaVarTstNe __vbaVarCompEq __vbaVarCompLe __vbaVarCompLt __vbaVarCompGe __vbaVarCompGt __vbaVarCo程序几乎都是依赖于一个外部的动态链 接库。这个动态链接库的名字是:MSVBVM60.dll (可能有多个版本,但名字都差不多~)
• 然而正是因为VB中所有的API函数都在DLL中去实 现,所以导致我们在跟踪程序的执行代码时灰常 频繁地在DLL领空和程序领空跳来跳去跳来跳去跳 来跳去跳来跳去跳来跳去跳来跳去 。。。。。。
OD使用教程10
• 大家或许有所察觉了,随着我们课程的不断深入 学习,我们感觉自身逆向的“内功”也在不断的 增进!
• 我们从爆破入手,到现在逐步大家进入程序的内 部,认识不同编译器开发的程序,探索不同的加 密逻辑。
• 前边,我们的例子中既有VC++开发的程序,也有 Delphi开发的程序,今天我们给大家分析一个VB 程序的加密和解密思路。

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新手入门教程,制作辅助必备。
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使用教程7 - 解密系列【调试篇】

OD使用教程7 - 解密系列【调试篇】
• 接下来的一系列实践会让你掌握这些技巧的!
破解的思路
• 例如jmp eax,无疑是一个直接的跳转。但是我们 知道eax是一个寄存器,对于高级语言的说法它就 是一个变量,里边的值随时可以改变。
• 那么完全可以这样:
– 未注册 -> eax == 004013A0 – 已注册 -> eax == 00401354
• 所以这个例子告诉我们,世界很大,也很邪恶, 坏叔叔很多,他们鬼点子更多,要实现技术的突 破,就要打破传统的思维模式。
OD使用教程7
• 小甲鱼觉得,掌握逆向的思维尤为重要。所以在 咱的OD使用教程中,不单会告诉你怎么去逆向这 个软件,小甲鱼更多想引导大家发挥自己的想象 力,在理解原理的基础上用更多创新的方法实现 突破。(此处应该有掌声)
• 好滴,咱一起来看一下今天的对手,正所谓知己 知彼杀杀杀!
• VisualSite Designer.exe
认识OD的两种断点
– 传说中,有这么一些寄存器,它们只用于调试,我 们称为调试寄存器:Dr0~Dr7
– 其中Dr0~Dr3四个寄存器用来存放中断地址,Dr4、 Dr5保留不使用,Dr6、Dr7用来记录Dr0~Dr3的属性 (如读,写还是执行,单位是字节,字还是双字) 。
–Байду номын сангаас因此,这就解释了为啥硬件断点只有四个,天生不 足哈。
认识OD的两种断点
– 另外还需要提一下的是,内存断点会明显降低OD 的性能,因为OD经常会校对内存。
• 软件断点: – 当我们按下F2设置的断点就是软件断点。 – 设置该断点的原理是在断点处重写代码,插入一个 int3中断指令,当CPU执行到int3指令的时候,OD 就可以获得控制权。
• 硬件断点: – 这个原理跟软件断点不同,硬件断点的可行性依赖 于CPU的物理支持。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
by FuZzYBiT
SoftIce can trace application messages. And Olly?
And so does OllyDbg. That’s a very “hidden feature”. I guess it is sooo useful.
1. Open program
类似的还有lstrcmp,上面有string1,string2能够显示将要比较的两个字符串.
另外,一般在执行getwindowtext等函数后,右边寄存器列,eax会显示函数的返回值,即取到的内容.同时内存中也会有显示.
在反汇编中选中一条命令,如果其中有用到内存中的地址,右击-->在转存中跟随-->直接常数
在转存中下硬件访问->Word"断点,下断之后,怎么取消!
右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色显示.
cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态. 不错;
左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息;
右下角的是当前堆栈情况,还有注释啊.
查看:
1.执行模块(Alt+E),查看程序使用的动态链接库
2.查看断点.Alt+B
调试:
1.运行(F9)加载程序后,运行!
2.暂停(F12)
3.单步进入(F7)遇见CALL进入!进入该子程序.
4.单步跳过(F8)遇见CALL不进去!
5.执行到返回(ALT+F9)就是执行到该子程的返回语句
ollydbg的16进制编辑功能.类似与hiew,hex workshop
查看-->文件
二进制文件编辑功能.查看-->文件,打开的文件是二进制显示.选中要改变的机器指令,空格,修改,右击-->保存.
ollydbg的四个区域
Hale Waihona Puke 左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.
跟踪功能:
选项-->调试跟踪-->跟踪:设置运行跟踪的缓存大小.越大越好.
调试-->打开或清除运行跟踪
然后我们就可以用CTRL+F11或CTRL+F12开启“跟踪进入”和“ 跟踪跳过”了。当我们暂停程序的时候,可以用小键盘上的“+”,“-”,“*”来控制跟踪功能了。
其中,“跟踪进入”和运行类似,但是记录所有指令以及寄存器变化。并且会自动进入所有的CALL中。
1. 打开一个程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 条件框:MSG==WM_COMMAND
7. 记录函数参数: 条件满足时
如果你不能找到User32.TranslateMessage API,象上面那样做。
以下命令适用于 OllyDbg 的命令行插件 Cmdline.dll(显示于程序的插件菜单中)
聆风听雨整理
===============================================================
olldbg 下怎么下消息断点?
如在softice 中下 BMSG 0084 WM_DESTROY,在olldbg下该怎么做?
不如下断 SendMessage,PostMessage,程序中的消息不一定都经过消息循环。
Ollydbg下消息断点的一个方法
原文:
SoftIce can trace application messages. And Olly?
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 表达式: MSG
7. 记录函数参数:永远
如果你不能找到它,试试右击鼠标,然后搜索全部模块中的名称。
但是如果我想要捕捉一个特定的消息如WM_COMMAND呢?
只对WM_COMMAND记录
用这个方法做:
2. Names window [CTRL+N in CPU Window]
3. Find User32.TranslateMessage API
4. right click/FindReferences
5. conditional breakpoint [SHIFT+F4]
6. expression: MSG
MW
内存断点于写入时
MD
清除内存断点
HR
访问时进行硬件中断
HW
写入时进行硬件中断
HE
执行时进行硬件中断
HD
清除硬件断点
STOP
停止运行程序调试
PAUSE
暂停执行程序调试
RUN
运行程序进行调试
GE
运行和通过例外
SI
单步进入 Call 中
动态暂停以messagebox为例)
先运行目标程序,再运行od,选择文件-->附加.在目标程序运行出现对话框时,切换至od,F12暂停.
字符串参考:
在汇编代码区,右击-->搜索-->字符参考
更改二进制文件:
方法1.查看-->文件,打开文件,找到欲修改的偏移,使用机器码修改,然后右击保存文件.缺点是需要使用其他软件来获取偏移地址.
3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然.
4.强大的右键菜单功能
ollydbg的界面:
菜单:
文件:
1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点.
2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件-->附加.
翻译:
SoftIce 能够跟踪应用程序的消息,那么OllyDbg呢?
by FuZzYBiT
OllyDbg也是可以的,那是一个非常"隐蔽的功能"。它是如此的有用。
1. 打开程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
“ 跟踪跳过”和“跟踪进入”类似,但是不进入CALL
“+”用来显示跟踪缓冲区中的下一条指令
“-”用来显示跟踪缓冲区中的上一条指令
“*”用来发返回当前指令
让OD显示MFC42.DLL中的函数
打开调试-->选择导入库-->添加-->选择MFC43.LIB加入.重新载入MFC程序,就可以看到call后面的api函数了.
OD的教程
一点一滴的积累,也就会了.
之所以选择ollydbg
1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷.
2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了.
To Log Only WM_COMMAND
Do it in this fashion:
1. Open program
2. Names window [CTRL+N in CPU Window]
3. Find User32.TranslateMessage API
4. right click/FindReferences
雪很冷搜集整理于学习笔记或与朋友讨论之中
Ollydbg 中断方法
Quote:
Originally posted by dong at 2004-6-1 10:29 PM:
我问个问题
在od中怎么下断点呢??
现在有的程序一点注册就没反映了
这样的怎么下断点呢??
能介绍下什么情况下什么断点吗?
F3选择打开程序.
使用
F9执行程序.
下断点:
1.对函数下下断点
在代码区右击-->搜索-->当前模块中的名称(ctrl+N),在跳出来的对话框中选择需要下的断点函数.->右击->查找导入参考(enter),按F2下断点.如果有多个地方调用了该函数就这样操作。
2.在需要的地方下断点 F2
DU
转存在 UNICODE 格式
DW
使用十六进制字词格式转存
STK
前往堆栈中的地址
AS
(AS + 地址 + 字符串)
在指定地址进行汇编
BP
进行条件中断(有条件的断点)
BPX
中断在全部调用 (Call)
BPD
清除全部调用中的断点
BC
清除断点
MR
内存断点于访问时
显示跳转路进:
选项-->调试设置-->cpu页-->显示跳转的方向,显示跳转的路径,如果跳转没有实现则显示灰色路径。在cpu窗口中,机器码的前面显示">"符号.同时,在cpu窗口下的小缝中会显示跳转路径,从何跳转而来.右击-->前往...一般都是条件跳转,上面的内容就是比较的地方啦。:)
命令行插件支持的命令
CALC
判断表达式
WATCH
相关文档
最新文档