软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果有1000处这样的验证环节那么就需要爆破1000次跳转。

那有没有一种方式可以只破解一次就达到破解整个程序的目的呢? 有,关键CALL,我们猜测一下程序作者的思路,作者不可能将每一处需要验证的环节都写一遍,显然这样是很麻烦的,那有没有解决办法呢? 当然有,那就是单独写一个验证函数,注册和验证共用一个函数进行验证,这样的话就节约了很大的开发时间。

------------------------------------------------------------
本章难度:★☆☆☆☆☆☆☆☆☆
本章课件:CM_03.zip
------------------------------------------------------------

以下小程序,当用户输入假的注册码后,底部会提示试用版本,而关于页面点击验证后,会提示还未注册,我们这里当然可以分别爆破每一处的关键跳转,但是这里我们不这样做,这两个验证页面是共用一个验证CALL的,所以我们找到关键CALL,修改关键CALL的返回值,就能达到完全破解的目的。

             

1.OD载入程序,然后直接【F9】运行程序,搜索字符串,搜索关键字【试用版本】,直接点过去。

2.发现有跳转进来了,我们直接往上找找到关键跳转,

3.发现了关键CALL和关键跳,直接在这两个位置下断点。

4.运行后发现跳转实现了,我们暂时修改以下Z标志位,让其不跳转,然后直接【F9】运行。

5.你会发现显示注册成功,但是如果你点开关于页面,点击验证按钮的话,会出现没有激活的情况,这就是因为我们只破解了一处跳转,并没有完全破解程序,好了直接重新载入程序,我们重新搞。

    

6.直接取消【je 004012E1】处的【F2】断点,直接在【CALL 00401142】处下一个断点,一般情况下关键跳转的上面前2个CALl就是关键CALL。

7.重新加载程序,并运行,我们输入假的注册码,然后点击注册按钮,这里直接按下【F7】进入这个CALL。

8.进入到这个CALL后,看下方【本地调用来自xxxx】,就是说有两处调用了这个CALL来完成验证的。

9.直接单步【F8】,到达程序返回发现EAX寄存器变成了0,说明验证失败了。

10.我们直接重新载入程序,运行程序,输入假注册码点击注册,OD断下了,直接【F7】进入CALL内部。直接写入汇编代码。

11.直接保存程序。

12.打开破解版本看一下,完美破解了,我们并没有修改关键跳转,而是修改了关键CALL,从而实现的破解。

     

写教程不容易,转载请加出处,您添加出处,是我创作的动力!

X86逆向3:通过修改关键CALL破解的更多相关文章

  1. X86逆向9:通过关键常量破解

    本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来 ...

  2. X86逆向7:特殊窗体的破解思路

    本章我们来看两个案例,这两个案例同样使用爆破的方式破解,但是与其他的程序不同,这个程序没有弹窗,提示成功或失败使用的是图片或是一个类似图片的窗体,本章将学习两个新的API函数的使用技巧. ------ ...

  3. JAVA逆向&反混淆-追查Burpsuite的破解原理(转)

    0x00 摘要: 本系列文章通过对BurpLoader的几个版本的逆向分析,分析Burpsuite的破解原理,分析Burpsuite认证体系存在的安全漏洞. 0x01 JD-GUI的用途与缺陷: JD ...

  4. 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)

    原文 利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习) Mono.Cecil是一个强大的MSIL的注入工具,利用它可以实现动态创建程序集,也可以实现拦截器横向切入动态方法,甚至还 ...

  5. MindManager2018试用期过后 修改过期时间 破解使用

    MindManager2018试用期过后 修改过期时间 破解使用 2019年06月13日 15:58:11 一生中所爱 阅读数 1991更多 分类专栏: 工具软件使用   1.找到路径:C:\User ...

  6. X86逆向1:软件破解入门课【课件下载】

    从本节课开始,我将带领小白入门学习软件破解的相关内容,大佬绕过,以后将会定期更新从最基本的破解知识点开始学习,由简单到复杂循序渐进,难度会逐步提高. 为了防止版权方面的争议,我将自行编写一些破解案例来 ...

  7. 逆向工程之修改关键CALL返回值_破解视频转换专家

    1)注册软件随便输入注册名注册码 2)进入软件根目录,发送到PEID查壳 3)发现无壳 4)发送到OD 4.1)右键菜单选择智能搜索 4.2)找到关键信息点注册 4.3)找到关键信息点双击进入汇编,向 ...

  8. X86逆向5:破解程序的自效验

    在软件的破解过程中,经常会遇到程序的自效验问题,什么是自效验?当文件大小发生变化,或者MD5特征变化的时候就会触发自效验暗装,有些暗装是直接退出,而有些则是格盘蓝屏等,所以在调试这样的程序的时候尽量在 ...

  9. Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题

    一.故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时.就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印啥的.相比较短视频有 ...

随机推荐

  1. ACM之路(17)—— 博弈论

    博弈论这方面网上资料庞大,我觉得我不可能写的比他们好,就转载一下我觉得写的不错的博客好了. 首先是三大博弈:巴什博奕,威佐夫博奕,尼姆博奕.博客:三大基本博弈. 然后是强大的sg函数和sg定理:SG. ...

  2. Qt图形测绘窗口部件介绍

    Qt 图形测绘窗口部件,主要使用第三方窗口部件: 1.Qwt:http://qwt.sourceforge.net 开源免费 2.GraphPak: http://www.ics.com  收费 3. ...

  3. python 格式化输出用户名/密码

    格式化输出用户名/密码 内容来自网络 def get_account(num): accounts = [] for index in range(1, num+1): accounts.append ...

  4. 使用 usb 调试的时候,连接上电脑没反应

    使用 usb 调试的时候,连接上电脑没反应 原因: 手机上没有信任本计算机的授权,请在手机上信任该授权 解决方法: 原因就是手机上会有一个弹话框,让我们信任该计算机,我们才可以进行 usb调试 我们的 ...

  5. 性能优化 | Tomcat和JVM的性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  6. springboot 静态资源访问,和文件上传 ,以及路径问题

    springboot 静态资源访问: 这是springboot 默认的静态资源访问路径  访问顺序依次从前到后(http://localhost:8080/bb.jpg) spring.resourc ...

  7. smb服务问题解析,区别红帽6和CentOS7

    最近在学习smb服务,哇!简直问题多的不要不要的.因为以前是学习的红帽6的系统,现在用的是CentOs7,所以还是改不了以前的一些配置方式,造成了很多问题.快成地中海了! 我们准备环境: 系统: 服务 ...

  8. centos6里面装zabbix(五)

    今天说使用ICMP ping监控server与agent端的网络状态 今天要使用的是fping,这个软件包需要去官网下载,官网地址:http://www.fping.org/.现在的最新版是4.0 第 ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-7.授权登录获取微信用户个人信息实战

    笔记 7.授权登录获取微信用户个人信息实战         简介:讲解使用授权码code获取用户个人信息接口 关键点:看微信文档,字段尽量用拷贝 1.通过code获取access_token      ...

  10. Topic与Partition