本章将讲解一下关于关键全局变量的一些内容,关键的全局变量对于软件的破解非常的有用,找到了关键全局变量并改写它同样可以完成完美爆破一个程序,这里我将使用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. 关于AngularJS与其他前端框架混合使用的思考

    AngularJS 是一个为动态WEB应用设计的结构框架,拥有双向数据绑定,模板,MVVM,依赖注入,指令5大优点,Angular最有诱惑力的就是数据绑定功能,使用MVC模式进行开发,Angular在 ...

  2. 预处理、const、static与sizeof-static全局变量与普通的全局变量有什么区别

    1:全局变量的说明之前再加上static就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别在于,非静态全局变量的作用域是整 ...

  3. RabbitMQ学习之:(九)Headers Exchange (转贴+我的评论)

    From: http://lostechies.com/derekgreer/2012/05/29/rabbitmq-for-windows-headers-exchanges/ RabbitMQ f ...

  4. ZooKeeper Lead选举

    前段时间学习了zookeeper,对其中比较难理解并且容易忘掉的知识点做一个记录~ 关键词: myId:表示在集群中,自身对应的id zxId:节点状态发生改变时,产生的一个时间戳,并且这个时间戳全局 ...

  5. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-5.PageHelper分页插件使用

    笔记 5.PageHelper分页插件使用     简介:讲解开源组件,mybaits分页插件的使用 1.引入依赖             <!-- 分页插件依赖 -->          ...

  6. 小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下

    笔记 4.Feign结合Hystrix断路器开发实战<下>     简介:讲解SpringCloud整合断路器的使用,用户服务异常情况     1.feign结合Hystrix       ...

  7. python报错No module named 'pylab'

    pip instal matplotlib

  8. 《A Survey on Transfer Learning》迁移学习研究综述 翻译

    迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要:   在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...

  9. v-on可以监听多个方法吗?

    原文地址 v-on可以监听多个方法 <template> <div class="about"> <button @click="mycli ...

  10. 【Abode Air程序开发】打包并导出

    打包并导出 将移动设备应用程序打包并导出到在线商店 导出用于发行的 Android APK 包 导出用于发行的 Apple iOS 包 使用命令行进行创建.测试和部署 使用 mxmlc 编译手机应用程 ...