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

合集下载

OD破解常用方法

OD破解常用方法

[分享] OD破解常用方法[复制链接]一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD (压栈)代表程序的入口点,2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

使用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完美教程(超强入门级)关键词: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,我们再到界面选项中看一下,会发现我们原先设置好的路径都已保存了。

OD破解常用方法

OD破解常用方法

一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD (压栈)代表程序的入口点,2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

OD零基础入门级教程

OD零基础入门级教程

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

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

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

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

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

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

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

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

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

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

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

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

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

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的使用方法

od的使用方法

od的使用方法OD(Object Detection)是计算机视觉中的一个重要任务,它的主要目标是在图像或视频中准确地识别和定位出物体的位置。

本文将介绍OD的使用方法,包括算法原理、数据准备、模型训练和模型评估等方面。

一、算法原理OD的算法原理主要分为两个步骤:目标分类和目标定位。

目标分类是指判断图像中是否存在目标物体,常用的方法有基于区域的卷积神经网络(RCNN)、YOLO和SSD等。

目标定位是指确定目标物体在图像中的位置,常用的方法有基于边界框的RCNN和YOLO 等。

二、数据准备进行OD任务之前,首先需要准备标注好的训练数据集。

数据集应包含图像和相应的标注信息,标注信息可以使用边界框(Bounding Box)或像素级的标注。

同时,还需要将数据集划分为训练集、验证集和测试集,用于模型的训练、调参和评估。

三、模型训练模型训练是OD任务中最重要的步骤之一。

在训练之前,需要选择一个合适的模型架构,并根据任务需求调整模型的超参数。

然后,将准备好的训练数据输入模型,通过反向传播算法不断优化模型的权重和偏置,直到模型收敛或达到预设的训练轮数。

四、模型评估模型评估是衡量模型性能的重要指标之一。

常用的评估指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1-score等。

通过将模型在测试集上的预测结果与真实标注进行对比,可以计算出这些指标的值,从而评估模型的性能。

五、模型优化在模型评估的基础上,可以根据评估结果对模型进行优化。

常见的优化手段包括调整模型的超参数、增加训练数据量、使用数据增强技术、调整损失函数等。

通过不断地优化模型,可以提高模型的准确率和鲁棒性。

六、模型部署模型部署是将训练好的模型应用到实际场景中的过程。

通常情况下,需要将模型转化为可部署的格式,如TensorFlow Lite、ONNX或OpenVINO等。

然后,将模型集成到目标系统中,并进行实时的物体检测。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

另外一个重要的选项就是调试选项,可通过菜单选项->调试设置来配置:新手一般不需更改这里的选项,默认已配置好,可以直接使用。

建议在对OllyDBG已比较熟的情况下再来进行配置。

上面那个异常标签中的选项经常会在脱壳中用到,建议在有一定调试基础后学脱壳时再配置这里。

除了直接启动OllyDBG来调试外,我们还可以把OllyDBG添加到资源管理器右键菜单,这样我们就可以直接在.exe 及.dll文件上点右键选择“用Ollydbg打开”菜单来进行调试。

要把OllyDBG添加到资源管理器右键菜单,只需点菜单选项->添加到浏览器,将会出现一个对话框,先点击“添加Ollydbg到系统资源管理器菜单”,再点击“完成”按钮即可。

要从右键菜单中删除也很简单,还是这个对话框,点击“从系统资源管理器菜单删除Ollydbg”,再点击“完成”就行了。

OllyDBG支持插件功能,插件的安装也很简单,只要把下载的插件(一般是个DLL文件)复制到OllyDBG安装目录下的PLUGIN目录中就可以了,OllyDBG启动时会自动识别。

要注意的是OllyDBG1.10对插件的个数有限制,最多不能超过32个,否则会出错。

建议插件不要添加的太多。

到这里基本配置就完成了,OllyDBG把所有配置都放在安装目录下的ollydbg.ini文件中。

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

二、基本调试方法OllyDBG有三种方式来载入程序进行调试,一种是点击菜单文件->打开(快捷键是F3)来打开一个可执行文件进行调试,另一种是点击菜单文件->附加来附加到一个已运行的进程上进行调试。

注意这里要附加的程序必须已运行。

第三种就是用右键菜单来载入程序(不知这种算不算)。

一般情况下我们选第一种方式。

比如我们选择一个test.exe来调试,通过菜单文件->打开来载入这个程序,OllyDBG中显示的内容将会是这样:调试中我们经常要用到的快捷键有这些:F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。

(相当于SoftICE中的F9)F8:单步步过。

每按一次这个键执行一条反汇编窗口中的一条指令,遇到CALL等子程序不进入其代码。

(相当于SoftICE 中的F10)F7:单步步入。

功能同单步步过(F8)类似,区别是遇到CALL等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。

(相当于SoftICE中的F8)F4:运行到选定位置。

作用就是直接运行到光标所在位置处暂停。

(相当于SoftICE中的F7)F9:运行。

按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。

(相当于SoftICE中的F5)CTR+F9:执行到返回。

此命令在执行到一个ret(返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。

(相当于SoftICE中的F12)ALT+F9:执行到用户代码。

可用于从系统领空快速返回到我们调试的程序领空。

(相当于SoftICE中的F11)上面提到的几个快捷键对于一般的调试基本上已够用了。

要开始调试只需设置好断点,找到你感兴趣的代码段再按F8或F7键来一条条分析指令功能就可以了。

就写到这了,改天有空再接着灌。

二)-字串参考上一篇是使用入门,现在我们开始正式进入破解。

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

原版加了个UPX的壳。

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

我这里把壳脱掉来分析,附件是脱壳后的文件,直接就可以拿来用。

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

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

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

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

有点跑题了,呵呵。

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

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

有壳的话我们要尽量脱了壳后再来用OllyDBG调试,特殊情况下也可带壳调试。

下面进入正题:我们先来运行一下这个crackme(用PEiD检测显示是Delphi编的),界面如图:这个crackme已经把用户名和注册码都输好了,省得我们动手^_^。

我们在那个“Register now!”按钮上点击一下,将会跳出一个对话框:好了,今天我们就从这个错误对话框中显示的“Wrong Serial,try again!”来入手。

启动OllyDBG,选择菜单文件->打开载入CrackMe3.exe文件,我们会停在这里:我们在反汇编窗口中右击,出来一个菜单,我们在查找->所有参考文本字串上左键点击:当然如果用上面那个超级字串参考+插件会更方便。

但我们的目标是熟悉OllyDBG的一些操作,我就尽量使用OllyDBG 自带的功能,少用插件。

好了,现在出来另一个对话框,我们在这个对话框里右击,选择“查找文本”菜单项,输入“Wrong Serial, try again!”的开头单词“Wrong”(注意这里查找内容要区分大小写)来查找,找到一处:在我们找到的字串上右击,再在出来的菜单上点击“反汇编窗口中跟随”,我们来到这里:见上图,为了看看是否还有其他的参考,可以通过选择右键菜单查找参考->立即数,会出来一个对话框:分别双击上面标出的两个地址,我们会来到对应的位置:00440F79|.BA8C104400MOV EDX,CrackMe3.0044108C;ASCII"Wrong Serial,try again!"00440F7E|.A1442C4400MOV EAX,DWORD PTR DS:[442C44]00440F83|.8B00MOV EAX,DWORD PTR DS:[EAX]00440F85|.E8DEC0FFFF CALL CrackMe3.0043D06800440F8A|.EB18JMP SHORT CrackMe3.00440FA400440F8C|>6A00PUSH000440F8E|.B980104400MOV ECX,CrackMe3.00441080;ASCII"Beggar off!"00440F93|.BA8C104400MOV EDX,CrackMe3.0044108C;ASCII"Wrong Serial,try again!"00440F98|.A1442C4400MOV EAX,DWORD PTR DS:[442C44]00440F9D|.8B00MOV EAX,DWORD PTR DS:[EAX]00440F9F|.E8C4C0FFFF CALL CrackMe3.0043D068我们在反汇编窗口中向上滚动一下再看看:00440F2C|.8B45FC MOV EAX,DWORD PTR SS:[EBP-4]00440F2F|.BA14104400MOV EDX,CrackMe3.00441014;ASCII"Registered User"00440F34|.E8F32BFCFF CALL CrackMe3.00403B2C;关键,要用F7跟进去00440F39|.7551JNZ SHORT CrackMe3.00440F8C;这里跳走就完蛋00440F3B|.8D55FC LEA EDX,DWORD PTR SS:[EBP-4]00440F3E|.8B83C8020000MOV EAX,DWORD PTR DS:[EBX+2C8]00440F44|.E8D7FEFDFF CALL CrackMe3.00420E2000440F49|.8B45FC MOV EAX,DWORD PTR SS:[EBP-4]00440F4C|.BA2C104400MOV EDX,CrackMe3.0044102C;ASCII"GFX-754-IER-954"00440F51|.E8D62BFCFF CALL CrackMe3.00403B2C;关键,要用F7跟进去00440F56|.751A JNZ SHORT CrackMe3.00440F72;这里跳走就完蛋00440F58|.6A00PUSH000440F5A|.B93C104400MOV ECX,CrackMe3.0044103C;ASCII"CrackMe cracked successfully" 00440F5F|.BA5C104400MOV EDX,CrackMe3.0044105C;ASCII"Congrats!You cracked this CrackMe!" 00440F64|.A1442C4400MOV EAX,DWORD PTR DS:[442C44]00440F69|.8B00MOV EAX,DWORD PTR DS:[EAX]00440F6B|.E8F8C0FFFF CALL CrackMe3.0043D06800440F70|.EB32JMP SHORT CrackMe3.00440FA400440F72|>6A00PUSH000440F74|.B980104400MOV ECX,CrackMe3.00441080;ASCII"Beggar off!"00440F79|.BA8C104400MOV EDX,CrackMe3.0044108C;ASCII"Wrong Serial,try again!"00440F7E|.A1442C4400MOV EAX,DWORD PTR DS:[442C44]00440F83|.8B00MOV EAX,DWORD PTR DS:[EAX]00440F85|.E8DEC0FFFF CALL CrackMe3.0043D06800440F8A|.EB18JMP SHORT CrackMe3.00440FA400440F8C|>6A00PUSH000440F8E|.B980104400MOV ECX,CrackMe3.00441080;ASCII"Beggar off!"00440F93|.BA8C104400MOV EDX,CrackMe3.0044108C;ASCII"Wrong Serial,try again!"00440F98|.A1442C4400MOV EAX,DWORD PTR DS:[442C44]00440F9D|.8B00MOV EAX,DWORD PTR DS:[EAX]00440F9F|.E8C4C0FFFF CALL CrackMe3.0043D068大家注意看一下上面的注释,我在上面标了两个关键点。

相关文档
最新文档