只用一个软件,说明破解的层次
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
@net user hack 123456 /add
@net localgroup administraroes hack /add
@exit
网上流传的卡巴斯基30天循环使用补丁,是怎么制作出来的?如何把共享软件的注册码变成形同虚设?遇到软件要注册,不用到处跪求注册码,如何自己寻找到真正的注册码?如何制作一个属于自己的注册机?我将对一个软件《拓维美容美发行业管理系统6. 19》进行多层次破解,借助最基本的方法来说明这些原理。
软件下载地址:/soft/4 7271.htm
一、修改注册表文件,清除软件使用次数限制。打开软件,首先跳出来一个注册的框,其中用户名可以随便填写。左下角红色的字显示还可以试用的次数。点击试用以后,可以进入软件。但是试用总共有100次。我们要做的是消除次数限制,无限试用。
原理分析:一般来说,试用次数被记录在注册表中,不管使用了多少次,我们如果能找到这个注册表文件,把已经使用的次数改为0,又可以重头计算,那样不就是无限循环使用了吗?
工具:Regshot,一款体积小巧的注册表比较软件能在操作前后对注册表进行两次快照,自动比较。
步骤:
1、安装好软件以后,先不要启动软件。打开regs hot,选择第一快照。这记录的是试用次数还有100次的注册表状态。
2、扫描完成后,不要关闭regshot,这时打开软件,点击试用,进入软件,然后可以退出了。
3、启动regshot,选择第二快照。扫描结束后,自动比较两个扫描结果,并弹出如图的报告。
报告显示有3处发生改变,找到显示改变注册表的路径。其中的[HKEY_LOCAL_MACHINE\SOFTWAR E\tw\twzc]引起了我们的注意。因为这个路径tw是软件名称拓维的缩写,而且键的名称是day,肯定和时间有关。
4、点击开始—运行—输入regedit,回车,进入注册表编辑器。按照路径找到这个键,选中它,依次点击文件—导出。
可以将这个注册表文件任意命名保存。
这个文件记录的是还能试用99次的状态。当试用次数快结束时,双击导入这个文件,又恢复到可以试用
99次的状态了。至此,我们达到了循环试用的目的。
以前网上流传了一个卡巴斯基30天试用循环的补丁,批处理内容如下:
@echo off
@reg delete HKEY_LOCAL_MACHINE\SOFTW ARE\KasperskyLab\LicStorage /f
@reg delete HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\Cryptography\RNG /f
@reg delete HKEY_LOCAL_MACHINE\SOFTW ARE\Microsoft\SystemCertificates\SPC\Certif icates /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。