OD调试篇13

今天的程序比较大,听说还是比较牛的程序,不过破解它的一个比较老的版本的。打开程序看看。

点击about   然后点enter registration code    输入name  以及密钥之后,会出现以下情况。

那我们先查看一下有没有加壳,发现是用vc6编写的,对我们来说比较熟悉~

那就先用OD加载进来

在编辑框里获取字符串,一般使用getwindowtext这个API函数进行获取,我们有两种方法,

3个断点

getwindowtextA就是以ascii码的形式获取,我们可以在每个命令上设置断点

还有一种方法     ctrl+n   

还是一样三个断点,那我们可以运行起来,看看正在哪里断下,断下又有没有用

发现断下了,但并没有让我们输入什么,所以不要这个断点,去掉

一个一个试过去,终于能输入了

然后我们一直F8,看看有没有什么跳转的地方发现两个跳转

这两个跳转是检测是否有 没有填的框的  并没有什么卵用,我们放过它们。继续找,发现一个通向成功的跳转!

那我们会发现一个有趣的现象

两段代码竟然完全一样,我们重新载入程序,跟进去都看看

发现它把1mov给了al  可能就是成功的标志

那然后就可以继续F8了,既然找到了标志。

发现一个跳转直接跳出了成功的标志,我们当然不要它跳,改标志位看看先

修改了之后,成功了。。。。虽然成功了,但是发现了问题

竟然还是not been registered!!!看来还是不行啊

好了,我又来了。我们可以右键查找字符串,找到这个“this xoftspy license has not been registered”,双击进入

是上面 je  跳转  跳过来的

在验证的call前面加个断点,以防万一,在这段代码的开头也加个断点,然后重新载入

发现程序点一下about就触发了这个断点,我们可以F8单步走走看看。之前有加断点的call肯定有问题,我们可以F7进去看看

来到一个关键点,test al,al 下面有一个跳转,

跳转如果实现的话,bl的值就会变成1,那下面的al也会变成1,那么当程序返回的时候应该就是成功了;但是如果跳转未实现的话,就会经过jmp直接绕过了bl为1,把bl清零了。

意思就是al为1就可以     我们可以把这个代码  直接改为  mov al,1就OK了

改过之后就成功了,has been registered !

来自为知笔记(Wiz)

时间: 2024-10-20 04:36:41

OD调试篇13的相关文章

OD调试篇7--笔记及解题报告

MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组 件的封装类.----名词解释 开始OD调试     目的是去除软件的使用次数限制 载入程序后F8走走看 发现了弹窗 不是进入程序的窗口   那我们F2设置断点

OD调试篇12

Delphi的逆向 先看看今天需要破解的程序. 打开程序先出现了一个nag窗口,然后是unregistered未注册的提示,以及关于里的需要注册. 拖进die看了看      就是delphi写的.那我们就用OD打开看看. 老方法,右键查找字符串, 发现了有用的东西,双击进入 我们需要的地方并没有任何跳转,三角形就是有跳转来自什么的. 经过分析,可以利用OD的功能查看下,除了它本身,还有谁调用了照这个命令 发现了还有个东西调用了它 push了东西进去,双击它 我们可以下断点,试试,发现程序没有断

OD调试篇8

那么今天需要破解的呢,是这样一款软件. 程序刚刚进去会发现一个nag弹窗   说没有注册,要花20美金才能注册.只有5天的限制期限可以用了 进去之后 点击help里的关于这款软件   也显示了这是一个未注册的版本,需要密钥,显然我们的目的就是把这些限制都突破,然后顺带把nag弹窗也去掉.那我们用OD载入这款软件 试着运行一下,用之前查找关键字的方式,今天有种新方法,右击-->查找-->所有参考文本字串, 就会如下,拉到最上面,查找文本 找到之后,双击进入该程序段, 发现上面有一个跳转,我们在该

OD调试篇5--如何应对OD使用中的一些问题

打开小甲鱼给的进行恶搞过的程序,会发现一些问题 发现程序直接暂停,或者加载进来有问题. 那机智的我 通过对上一个没有恶搞过的exe可执行文件的PE头进行了比较 会发现其中的猫腻 那么我们去正常的修改一下它 点右键--单击整数修改进行对比改造 改到与原来的程序一样,比较可惜的是我还是不知道为什么要做这种修改,但是我相信经过以后的学习会明白的更多. 然后我们返回到代码,进行保存 可以先找到地址比如4000DC ctrl+G在地址区找到这个地址然后全选,然后复制到可执行文件,最后保存文件就可以和原来的

OD调试篇9

渐渐地要用比较高明一点的方法去破解软件了 那好,看看今天的程序先 先载入 测试下程序 发现这是一个未注册版本的程序,注册也不让注册,注册就跳出You have rntered an invalid  神马的          但是这个可以作为关键字   我们去查找这一段文字在程序的哪里 找到了    双击进入 找到了一个跳转,肯定是可以修改的,但是我们看看整个程序,发现上面有一个call设下断点  我们可以都注释下   以免路过或者迷路   重新载入        输入邮箱后  调到断点处,进入

OD调试篇3-小软件破解1

要求如下图该软件需要改5个地方,其中1.2是软件未注册而设定限定的添加个数,3.4.5是软件显示的一些未注册的信息. 一. 1.按1运行程序,添加用户添加第五个时出现提示,此时按2暂停,再按3还回到用户 2.还回用户界面点击确定 3.按F8单步执行 4.当返回到这段程序时有个关键字“4”,我们要做的是让”cmp”下面的“jl”发生跳转. 5.鼠标点到1,然后再点击空格,就可以把“jl short 00412DEF”修改为“jmp short 00412DEF” 6.选中改行复制到可执行文件,然后

OD调试学习笔记7—去除未注册版软件的使用次数限制

OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需要你掏腰包来获得更多的功能或者解除限制.那么我们就可以逆向的来思考,如果该程序成功的注册后,那么程序的行为必将发生变化,如NAG去除了,如功能限制没有了等等.也就是说,程序的代码的走法也会跟未注册的时候截然不同.因为程序的行为改变了,那么决定它所有行为的代码走法也会发生变化. 二:认识OD的两种断点

逆向---02.je & jmp & jnz 、OD调试

OD调试基础: nop是删除跳转,你别问我,我看不见也听不见 je是条件跳转,满足条件就跳转,不满足就不跳转 jnz也是条件跳转,不满足条件就跳转 jmp是无条件跳转,管你啥呢,先跳再说  (姑且可以这么理解) 快捷键:F2下断点.F8单步执行,F9运行,重新载入:点 << 按键 (在工具栏下方的图标栏中) EIP是32位机的指令寄存器,Z标志位1~真,0~假(案例中1代表je跳转实现,0代表je跳转不实现) OD寄存器修改或者标志位修改是不能保存修改的,一般用于调试(类似于VS调试时自己临时

调试篇

--------------------------------------------调试篇错误类型: 编译错误:通常都是语法错误 运行错误:比如分母是0 提示报错的时候: 1.双击提示信息可以直接定位到报错的行 2.从上到下的调试程序,因为后面的报错是有可能是因为前面的报错而引起的连锁反应 Bug:错误,漏洞Debug:是找出错误,调式 描述问题的3要素: 1.前提条件是什么 2.预期结果是什么 3.实际结果是什么 重现或者复现 可以重现:是指输入相同时,都能重现相同的问题,那么问题是可以复