Deemoi 发表于 2017-3-22 15:32

【甲鱼解密】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。此时程序被破解且不需要修改太多的地方。

dilex_ 发表于 2017-3-24 16:15

pltemp 发表于 2017-3-24 11:25
想起了小甲鱼老师教程的开场白:互联网的广大朋友们大家好 我是小甲鱼!

很深刻的回忆 {:1_918:}{:1_918:}{:1_918:}{:1_918:}{:1_918:}

liuyuntianxia12 发表于 2017-3-24 09:14

memissme 发表于 2017-3-23 18:24
当初学习计算机基础的时候 就是学的鱼C的视频,不知道是不是一个人

是滴,挺逗的一个

birk 发表于 2017-3-22 15:45

楼主牛逼。

黑龍 发表于 2017-3-22 15:56

{:301_997:}楼主厉害

Hmily 发表于 2017-3-22 16:37

应该多说说怎么找到那标志位初始化的地方直接写1.

影视专业 发表于 2017-3-22 17:06

学习啦,哈哈。。。。不错

紫翼 发表于 2017-3-22 17:34

楼主厉害

Bad丶Boy 发表于 2017-3-22 18:24

莫非是小甲鱼本人?

灰色流浪 发表于 2017-3-22 19:55

看看,学习了O(∩_∩)O哈!

jakesai008 发表于 2017-3-22 20:02

完全看不懂,哎

阿辉5858 发表于 2017-3-22 20:45

加我私信
页: [1] 2 3 4 5 6 7
查看完整版本: 【甲鱼解密】0x01PC XXXXX破解