(2)软件破解之爆破,让注册机制形同虚设

作者:落知秋 | 创建时间: 2023-03-24
此破解教程仅供学习,如用于非法用途,本人概不负责。...
(2)软件破解之爆破,让注册机制形同虚设

原理分析

在注册时,如果输入的注册码不对,就会提示注册失败。能不能我们任意输入一个数,都会显示注册成功,让注册机制形同虚设?爆破就可以做到这样,不用知道注册码到底是什么,很强,很暴力,很简单。

给出这样一个软件的注册验证算法:1、输入自己获得的注册码(简称输入码)。2、调用储存在软件中的真正注册码(简称真码),与输入码比较。如果二者相同,即输入的是正确的码,则继续进行下一步。如果二者不同,则跳转到步骤4。3、显示“注册成功”。结束。4、显示“注册失败”。结束。显然,这里的第二步的判断是一个关键。如果将第二步改为“调用储存在软件中的真正注册码(简称真码),与输入码比较。如果二者不同,即输入的是错误的码,则继续进行下一步。如果二者相同,则跳转到步骤4。”会出现怎样的情况呢?对了,当我们随便输入一个数字时,软件都会提示注册成功。这不就是破解了吗?而像这样通过修改判断的方法就是爆破。简单直接,但是需要你找到关键的跳转判断。一些有用的语句cmp a,b   比较a与b mov a,b   把b的值送给a ret   返回主程序 nop   无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)call   调用子程序 je 或jz   若相等则跳(机器码74 或0F84) jne或jnz   若不相等则跳(机器码75或0F85) jmp   无条件跳(机器码EB) Jb   若小于则跳 ja   若大于则跳 jg   若大于则跳 jge   若大于等于则跳 jl   若小于则跳 jle   若小于等于则跳 pop   出栈 push   压栈

操作方法

工具:调试工具(我习惯用Ollyice) 老规矩还是查壳,发现是Aspack的壳,这个壳老套无比,有脱壳机搞定。

脱壳后,得到Unpacked.exe文件

打开调试工具,Ollyice,依次点击文件—打开,选择该文件路径,载入。

依次点击插件—超级字串参考—查找ASCII。

这里显示了所有软件提示的字符。

打开软件随意注册一下,看看提示的字符,记住“注册码输入错误”。

在ASCII码中查找到这个字符。

双击跟进,来到这个地址。从这个地址向上,沿着红线来到判断的地址,这里的jnz的意思就是比较输入码和真码,如果两个值不一样,就会沿着红线跳转到“注册码输入错误”的地址。如果相同,就会向下运行,来到“注册成功”的提示。所以,我们可以将这个jnz的判断改成相反的je。

在jnz这一行的地址上,右键,汇编,直接更改成je。

更改完毕,点击汇编按钮,这一行已经变成红色。

右键,复制到可执行文件,选择全部,全部复制。保存文件,替换原来的文件。

我们关闭调试工具,打开爆破处理以后的Unpacked.exe软件(原文件已经变成Unpacked.bak备份了)。看到随意输入一个注册码,都可以注册成功,再打开软件,没有注册的提示框,信息变成了已经注册。至此,爆破成功。 爆破方法比较简单,但是不是万能的,重点是要找到判断跳转的地址。

点击展开全文

更多推荐