OD调试6—使未注册版软件的功能得以实现

OD调试6—使未注册版软件的功能得以实现

  继续开始我OD调试教程的学习笔记。  

  本次试验对真正的程序进行逆向。(之前的都是为破解而专门设计的小程序)

  这次试图对一个“太监版”的程序进行完整化,也就是把限制的功能恢复,把阉割的功能添加等等。用到的知识也是之前提到的,但是会有不同的地方。

  试验软件:PixtopianBook.exe(一个通讯录软件)

  打开原始程序运行,观察界面:

  这是一个通讯录软件,老外写的,很显然,当前是未注册版,试验后发现有功能限制,限制是只能有三个分组,每组不能超过4个人。也就是说,你用未注册版,联系人只能有12个人啊有木有!!太坑爹了!

  有一位伟人说过,当你在死去的时候,如果你的坟前没有200个人为你哀悼,那么你的人生就失败了。所以,为了我们的人生更加的辉煌灿烂,就一定要把这个通讯录给破解掉,多联系几个人来给自己上香啊有木有!

废话不多说,上OD开始干活。

一 异常处理

打开PixtopianBook.exe后F9直接运行,发现有异常提醒,用shift+F9忽略异常。或者如下图进行设置:

在调试选项里添加异常范围,因为是32位操作系统,所以00000000-FFFFFFFF就是整个内存段了。此时再打开程序,就没有异常出现了。

二 突破【限制人数】功能

在OD运行弹出的软件界面试图添加第5个人,出现错误提示box,如下图:

  不建议大家看到有messagebox就直接去搜索API,通过API和字符串入手,观察上下,尝试爆破。因为现在的程序设计的聪明了,使用间接地调用:先调用一个自己的进程,在进程里再调用messagebox来混淆视听,避免破解。

  正确方法:此时在od中按下暂停(暂停后od中的地址跳至动态链接库,即系统领空处),然后按ALT+F9返回到用户,在用户界面点击确定后,od中就返回到程序接管,地址跳转到下图的位置:

图中的MessageBoxA就应该是刚才的错误提示框了,F8到retn,返回到函数(函数调用之后碰到ret返回),如下图:

(相应修改在图中已标识)

注意:ret返回后,在上方又有一个call,说明在此处是间接地调用messagebox。

修改后保存。载入后已经可以突破人数添加的限制了。

二 突破【分组限制】功能

道理和突破人数限制一样,修改后如下图,可以添加无限制的分组了:

三 标题修改

接下来将几处”unregistered version”字符查找并修改

方法1:查找所有参考文本字串—查找文本”unregistered version”—跟随到代码处,找到在内存中的地址—在数据窗口中修改保存。

方法2:直接点击memory—ctrl+B查找—修改后记住字符在内存中的地址,到cpu的数据窗口保存。【建议用这种方法】

注意:修改时记得【保持大小】,不然会出错。

修改之后的图片如下:

到此完成了试验,主要的两个功能模块(人数添加和分组添加)得到了实现。

四 关于SEH

  SEH(Structured Exception Handling),即结构化异常处理。

  SEH是Windows操作系统提供的功能,跟开发工具无关。

  Windows程序设计中最重要的理念就是消息传递,事件驱动。当GUI应用程序触发一个消息时,系统将把该消息放入消息队列,然后去查找并调用窗体的消息处理函数(CALLBACK),传递的参数当然就是这个消息。

  我们同样可以把异常也当作是一种消息,应用程序发生异常时就触发了该消息并告知系统。系统接收后同样会找它的“回调函数”,也就是我们的异常处理例程。

  当然,如果我们在程序中没有做异常处理的话,系统也不会置之不理,它将弹出我们常见的应用程序错误框,然后结束该程序。所以,当我们改变思维方式,以CALLBACK 的思想来看待 SEH,SEH 将不再神秘。

时间: 2024-10-13 20:25:37

OD调试6—使未注册版软件的功能得以实现的相关文章

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

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

OD调试9—实例:深入分析代码完成软件破解

OD调试9—实例:深入分析代码完成软件破解  爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出的一些走法,逆向程序的算法,才能体会逆向的真正乐趣! 所以,今天的主题是:是男人,就跟进去吧~ 这次还是使用一个比较简单的程序,不然太复杂的话,一步步跟进程序可能会把自己搞崩溃,脑子恐怕不够搞.大家凭自己的能力,能进入多少就进入多少,一分不少,一寸不多!能力是培养出来的,耐心! 试验软件:MrBil

Surfer8.0 汉化注册版 1CD(地质工作者必备的专业成图软件)中文版

ABZ.Design.Flow.Solutions.DesigNet.v4.16 1CD Aspen Economic Evaluation Family v7.3.2-ISO 1DVD Avenza Geographic Imager 4.0 for Phtotoshop CS6 1CD Avenza Mapublisher v9.0 for Phtotoshop CS6 Win64 1CD Bentley Map Enterprise SS3 V8i 08.11.09.91 1CD Data

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调试一个小程序的思考总结

最近用OD调试了一些小程序,有一些感悟,和大家分享一下 我用了一个多窗口的的程序(软件的试用),对如何去掉弹窗提供一些自己的看法,为大家提供一些思路 首先单步调试,会出现3个弹窗 1.通过对反汇编代码的分析,发现一个关键跳je,我们将je跳转改为jmp无条件跳转,使其直接跳过弹窗的程序 2.修改窗口句柄的值,学习过win32的人都知道,hOwner是一个父窗口的句柄,将他的值改为push 0x1,使他的子窗口失效 3.修改PE文件,alt+m进入内存映射的窗口并双击PE文件的内部 向下寻找,发现

OD调试篇8

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

OD调试篇12

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

[Q]复制授权了文件但仍显示“未注册”问题

1. 注意要将解压后的文件复制到CAD批量打图精灵安装目录,而不要复制文件夹,复制是提示是否需要覆盖,要选择覆盖. 2. 若通过第1步操作仍然显示“未注册”,则可能是由于安装目录含有中文或者不是默认目录引起的,重装打图精灵试用版,并安装到默认目录,然后使用授权文件注册.

[QP]系统环境改变导致“未注册”的解决方法

据用户反映设置账户开机密码后显示未注册, 具体表现: 1. 重装试用版,重新获取注册申请码,发现注册申请码跟原来没有发生变化. 2. 重新使用原来的授权文件注册,但打开后显示未注册. 3. 发现“***.lc”需要解除锁定,于是对其解除锁定,重启电脑,但打开后仍然显示未注册. 最后,重新生成了授权文件,直接使用授权文件注册(未使用解除锁定),注册成功. 可能是系统环境改变导致注册不成功,需要重新授权.