【甲鱼解密】0x01PC XXXXX破解
本帖最后由 姐又寡闻了 于 2019-6-6 22:20 编辑今天我来破解一款叫PC XXXXXX的系统维护软件。首先我们用OD打开。可以看到出现NAG窗口后显示只有5天的使用时间,若需注册需缴20美金。那么我们先来查找一下字符串,右键选择所有参考文本。再查找“unregistered”:
我们双击去到代码位置,我们可以看到该段代码上方有个判断跳转点,此处按F2下一个断点。再找到函数的“55”入口点,再下一个断点。重新载入程序,程序在NAG窗口跳出之前就已经来到断点处。此时将ZF标志位改一下实现跳转。发现我们已经成功步过NAG窗口了。标题unregistered也消失了。可是在About里面unregistered version字样依然存在。说明程序还没有一招致命。于是我们继续查找关键字符串:“<Unregistered Version>”:
再通过刚才的方式实现跳转:
至此只需汇编刚刚的代码即可实现爆破。
那我们现在来分析一下注册算法:
它首先将0x60EB8C这个地址里的数据(00610C4A)给了EAX,这算是指针里面存放的一个地址。然后把这个值跟0进行对比。相同的还有60F1DC,而且在About窗口也是相同的做法。jnz下方的代码其实就是使用15天的一个判断。那么我们现在来跟随一下00610C4A里的数据。右键查找内存地址可以看到在整个程序中用到了0060EB8C的语句:
我们现在要找的是第一个选择这个地址的语句。我们可以在每个地址上下断点。然后重新载入程序。来到第一个断点处,可以看到程序用AL寄存器的值(00)来填充00610C4A中的数据,确保00610C4A中的值为0。然后再将00610C4A送入EAX中与0比较,然后就要跳转了。现在我们可以怀疑这个位置是程序初始化是否注册的这个位置。这时我们将AL改为01。此时程序被破解且不需要修改太多的地方。 pltemp 发表于 2017-3-24 11:25
想起了小甲鱼老师教程的开场白:互联网的广大朋友们大家好 我是小甲鱼!
很深刻的回忆 {:1_918:}{:1_918:}{:1_918:}{:1_918:}{:1_918:} memissme 发表于 2017-3-23 18:24
当初学习计算机基础的时候 就是学的鱼C的视频,不知道是不是一个人
是滴,挺逗的一个 楼主牛逼。 {:301_997:}楼主厉害 应该多说说怎么找到那标志位初始化的地方直接写1. 学习啦,哈哈。。。。不错 楼主厉害 莫非是小甲鱼本人? 看看,学习了O(∩_∩)O哈! 完全看不懂,哎 加我私信