本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用CM小例子来讲解搜索关键变量的一些技巧,最后我们来实战破解一个程序练练手,从本节课开始我们将进入实战环节,不再仅仅局限于CM小程序的破解啦。

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

在实战之前我们先来看一个简单的CM小程序,来讲解一下关于常量破解的原理性的东西,如下我编写了一个小程序,当我们点击验证和1做比较时,程序会通过CMP指令让变量中的数值和1做一次比较,然后通过比较判断是否弹出一个窗体,默认是不弹窗的,第二个正好相反,现在我们的目的就是通过修改程序中的所有常量来达到破解的目的,让两个按钮都弹出窗口。

1.直接OD载入程序,并运行起来,然后点击两个按钮,会发现都没有反映。

2.然后按下【ctrl + B】,搜索按钮特征码【FF 55 FC 5F 5E】,点击确定,然后在【00416EBD】这个位置下一个【F2】断点。

3.回到程序点击【验证和1做比较】,然后程序会断在【00416EBD】这个位置,我们直接【F7】进入这个按钮事件中去。

4.该按钮的按钮事件内容如下,CALL就是一个关键CALL,关键的比较是CMP命令,可以看到它取【4A25F0】变量的内容来进行比较。

5.我们可以直接在数据窗口跟随一下这个变量的地址,来看一下比较是否会成立,这里cmp命令会拿【0】和【1】相减,影响下面的关键跳转,【jnz】不为0则跳转,显然这条命令是需要执行的,它正好跳过了我们的弹窗。

6.如上图,我们当然可以通过修改CMP指令后面的1将其改为0来完成破解,但是在这之前我们需要确定一下还有没有其他的位置调用了这个常量来进行验证,此时我们直接在反汇编窗口,右键选择【查找】,【所有常量】。

7.记下【4A25F0】常量地址,然后直接查找

8.然后会看到如下图,会看到所有的调用了【4A25F0】这个常量地址的命令,我们直接在CMP命令上下断,MOV是赋值这里我们不需要管。

9.然后我们回到CM程序中,点击第一个按钮,会断在下图的位置,说明它开始做比较了,为了让它跳转成立,我们改写成和0做比较。

10.运行程序,程序正常弹窗了,修改第二个的方法相同,当点击第二个按钮时会断下,将其改为1即可实现爆破程序,这里不做演示了,改完直接保存文件就好了。

实战:破解 豪迪群发器2019

免责声明:该教程仅用于技术交流,并无任何商业目的,您不得将下述内容用于商业或者非法用途,否则后果自负,如果您喜欢该程序,请支持正版软件,购买注册 ,得到更好的正版服务,如有侵权请邮件联系作者!

1.直接OD载入程序,然后【F9】运行程序,让程序的字符串完全的加载出来,然后我们记下弹出的关键字【注册】后期会用到。

2.OD反汇编窗口,右键选择【中文搜索】选择【智能搜索】,然后查找关键字【注册】,这里我找到了一处关键位置,已注册版本,这句话说明程序已经完成了验证,我们点过去看看。

3.代码如下,我们直接在CALL处下一个【F2】断点,然后回到软件。

4.回到软件点击【注册】按钮,发现程序被断下了,程序被断在了【CALL】位置处,我们直接【F7】进入到CALL的内部,没错这就是计算注册码的关键CALL。

5.出这个CALL吧,我们此处暂时不分析他是怎么算的,我们直接复制这个关键常量【58E5FC】。

6.直接右键,选择【查找】,所有常量,然后在弹出的窗口中输入【58E5FC】

7.此处我们在所有的CMP比较命令上下断点,然后重新载入程序,并运行。

8.第一次断下,我们将cmp byte ptr [58E5FC], 0,改为cmp     byte ptr [58E5FC], 1,也就是和1做比较。

9.第二次修改,同样将和0做比较的地方改为和1做比较。

10.第三次修改同样将0修改成和1做比较,修改完这三处调用以后,直接取消断点并运行程序。

11.破解完成,直接保存文件即可,一定要保存所有更改。

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

X86逆向9:通过关键常量破解的更多相关文章

  1. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  2. X86逆向3:通过修改关键CALL破解

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

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

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

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

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

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

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

  6. 初探Android逆向:通过游戏APP破解引发的安全思考

    如今移动互联网已经完全融入到我们的生活中,各类APP也是层出不穷,因此对于安卓APP安全的研究也尤为重要.本文通过对一款安卓APP的破解实例,来引出对于APP安全的探讨.(本人纯小白,初次接触安卓逆向 ...

  7. X86逆向14:常见的脱壳手法

    本章节内容将介绍软件的脱壳技术.什么是加壳?加壳就是用来压缩或者保护软件不被非法修改破解的一种工具,而脱壳就是将已经加壳的程序从壳中剥离出来,既然能给程序进行加壳,那也就会有相应的脱壳方法,本节课我们 ...

  8. X86逆向12:内存补丁的制作

    本章我们将学习各种打补丁的方式,补丁在软件的破解过程中非常的重要,比如软件无法脱壳我们就只能通过打补丁的方式来破解程序,补丁原理就是当程序运行起来会被释放到内存并解码,然后补丁就通过地址或特征码定位到 ...

  9. X86逆向11:F12暂停法的妙用

    本节课将介绍F12暂停法的使用技巧,F12暂停法的原理其实很简单,当我们点击OD中的暂停按钮时,OD会将当前的堆栈状态保存起来,并暂停当前窗体的线程执行,直到我们点击运行按钮OD才会唤醒全部线程并继续 ...

随机推荐

  1. mybatis之<trim

    1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=&quo ...

  2. js类型判断:typeof与instanceof

    typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,function(函数),object(NULL,数组,对象),und ...

  3. ci 框架中defined('BASEPATH') OR exit('No direct script access allowed');

    作用: OR 就是前面的是true时,就不走后面了. 加这个是为了防止不是从index.php访问到的控制器

  4. mysql表的模糊查询

    查询库下所有的表名 SELECT table_name FROM information_schema.tables WHERE table_schema='库名' 模糊表名查询 SELECT tab ...

  5. PHP环境搭建之单独安装

    还在使用PHP集成环境吗?教你自定义搭建配置PHP开发环境,按照需求进行安装,安装的版本可以自己选择,灵活性更大. 目录:1. 安装Apache2. 安装PHP3. 安装MySQL4. 安装Compo ...

  6. UTC ISO 8601

    如果时间在零时区,并恰好与协调世界时相同,那么(不加空格地)在时间最后加一个大写字母Z.Z是相对协调世界时时间0偏移的代号.如下午2点30分5秒表示为14:30:05Z或143005Z:只表示小时和分 ...

  7. MS SQL 数据类型转换

    MS SQL 转换数据类型 select cast(列A as int) 列A select convert(int,列A) 列A --转字符串为int select len(ltrim(str('数 ...

  8. query和exec区别

    1.PDO::query PDO::query执行一条SQL语句,如果通过,则返回一个PDOStatement对象.PDO::query函数有个“非常好处”,就是可以直接遍历这个返回的记录集. 示例如 ...

  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-1.整合Mybatis访问数据库和阿里巴巴数据源

    笔记 1.整合Mybatis访问数据库和阿里巴巴数据源     简介:整合mysql 加入mybatis依赖,和加入alibaba druid数据源 1.加入依赖(可以用 http://start.s ...

  10. MySQLdb User's Guide

    MySQLdb MySQLdb-1.2.2 API documentation http://mysql-python.sourceforge.net/MySQLdb-1.2.2/ MySQLdb U ...