前言
网上流传的卡巴斯基30天循环使用补丁,是怎么制作出来的?如何把共享软件的注册码变成形同虚设?遇到软件要注册,不用到处跪求注册码,如何自己寻找到真正的注册码?如何制作一个属于自己的注册机?我将对一个软件《拓维美容美发行业管理系统 6.19》进行多层次破解,借助最基本的方法来说明这些原理。
软件下载地址:
一、 修改注册表文件,清除软件使用次数限制。
打开软件,首先跳出来一个注册的框,其中用户名可以随便填写。左下角红色的字显示还可以试用的次数。点击试用以后,可以进入软件。但是试用总共有100次。我们要做的是消除次数限制,无限试用。
原理分析:一般来说,试用次数被记录在注册表中,不管使用了多少次,我们如果能找到这个注册表文件,把已经使用的次数改为0,又可以重头计算,那样不就是无限循环使用了吗?
工具:Regshot,一款体积小巧的注册表比较软件能在操作前后对注册表进行两次快照,自动比较。
步骤:
1、 安装好软件以后,先不要启动软件。打开regshot,选择第一快照。这记录的是试用次数还有100次的注册表状态。
2、 扫描完成后,不要关闭regshot,这时打开软件,点击试用,进入软件,然后可以退出了。
3、 启动regshot,选择第二快照。扫描结束后,自动比较两个扫描结果,并弹出如图的报告。
报告显示有3处发生改变,找到显示改变注册表的路径。其中的[HKEY_LOCAL_MACHINE\SOFTWARE\tw\twzc]引起了我们的注意。因为这个路径tw是软件名称拓维的缩写,而且键的名称是day,肯定和时间有关。
4、 点击开始—运行—输入regedit,回车,进入注册表编辑器。按照路径找到这个键,选中它,依次点击文件—导出。
可以将这个注册表文件任意命名保存。
这个文件记录的是还能试用99次的状态。当试用次数快结束时,双击导入这个文件,又恢复到可以试用99次的状态了。至此,我们达到了循环试用的目的。
以前网上流传了一个卡巴斯基30天试用循环的补丁,批处理内容如下:
@echo off
@reg delete HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\LicStorage /f
@reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG /f
@reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\SPC\Certificates /f
pause & exit
核心部分就是删除了3个键。想找到这三个键,就可以使用Regshot这个工具,大家可以试一试。在选择激活试用版本前后,对注册表进行快照,比较之后就会得到这三个键,只要做成批处理,此外不管怎么改变外貌,加上个人的标记都行,此话后说。
二、 爆破,让注册机制形同虚设。
在注册时,如果输入的注册码不对,就会提示注册失败。能不能我们任意输入一个数,都会显示注册成功,让注册机制形同虚设?爆破就可以做到这样,不用知道注册码到底是什么,很强,很暴力,很简单。
原理分析:
给出这样一个软件的注册验证算法:
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)
步骤:
1、 老规矩还是查壳,发现是Aspack的壳,这个壳老套无比,有脱壳机搞定。
2、 脱壳后,得到Unpacked.exe文件
3、 打开调试工具,Ollyice,依次点击文件—打开,选择该文件路径,载入。
4、 依次点击插件—超级字串参考—查找ASCII。
5、 这里显示了所有软件提示的字符。
6、 打开软件随意注册一下,看看提示的字符,记住“注册码输入错误”。
7、 在ASCII码中查找到这个字符。
8、 双击跟进,来到这个地址。从这个地址向上,沿着红线来到判断的地址,这里的jnz的意思就是比较输入码和真码,如果两个值不一样,就会沿着红线跳转到“注册码输入错误”的地址。如果相同,就会向下运行,来到“注册成功”的提示。所以,我们可以将这个jnz的判断改成相反的je。
9、 在jnz这一行的地址上,右键,汇编,直接更改成je。
10、 更改完毕,点击汇编按钮,这一行已经变成红色。
11、 右键,复制到可执行文件,选择全部,全部复制。保存文件,替换原来的文件。