学会软件破解,让注册机制形同虚设

caocao2年前教程532

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

一、修改注册表文件,清除软件使用次数限制。

打开软件后,会出现一个注册框,其中用户名可以随意填写。左下角显示还可以试用的次数。点击试用后,可以进入软件。但是试用总共只有100次。我们的目标是消除次数限制,实现无限试用。

原理分析:通常情况下,试用次数被记录在注册表中。无论使用了多少次,如果我们能找到这个注册表文件,并将已使用的次数改为0,就可以重新计数,实现无限循环使用。

工具:Regshot,一款小巧的注册表比较软件,可以在操作前后对注册表进行两次快照,并自动进行比较。

步骤:

  1. 安装好软件后,先不要启动软件。打开Regshot,选择第一次快照,记录试用次数为100的注册表状态。
  2. 扫描完成后,不要关闭Regshot,然后打开软件,点击试用,进入软件,然后可以退出。
  3. 启动Regshot,选择第二次快照。扫描结束后,自动比较两次扫描结果,并弹出报告。
  4. 报告显示有3处发生了改变,找到显示改变注册表的路径。其中[HKEYLOCALMACHINE/SOFTWARE/tw/twzc]引起了我们的注意,因为这个路径中的tw是软件名称拓维的缩写,而且键的名称是day,肯定和时间有关。
  5. 点击开始,运行,输入regedit,回车,进入注册表编辑器。按照路径找到这个键,选中它,依次点击文件,导出。可以将这个注册表文件任意命名保存。
  6. 这个文件记录的是还能试用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. 右键,复制到可执行文件,选择全部,全部复制。保存文件,替换原来的文件。
  12. 关闭调试工具,打开经过爆破处理的Unpacked.exe软件(原文件已经备份为Unpacked.bak)。输入任意注册码,都可以成功注册。再次打开软件,没有注册提示框,信息变成已经注册。至此,爆破成功。

爆破方法比较简单,但并非万能,关键是找到判断跳转的地址。

三、追踪注册码,正式注册成功。

另一个思路是,软件已经在寄存器中放置了真码,只是我们看不见。我们可以使用调试工具逐步运行软件,查看寄存器,找到真码。

原理分析:真码已经存储在寄存器中,调试工具可以查看寄存器内容。在软件中,CALL命令非常重要,CALL是调用,存在一个关键CALL,调用的就是寄存器中的真码。找到这个关键CALL,就可以看到真码,并使用它进行注册,肯定会成功。一般来说,关键CALL位于判断的上方。

工具:调试工具(我习惯使用Ollyice)。

步骤:

  1. 根据爆破方法,找到判断jnz。
  2. 上方有很多CALL需要尝试,而且软件运行时是从上到下的,因此从jnz附近最上方的CALL开始下断点。在地址006E63E1,按下F2,地址变红,设置断点。断点意味着软件运行到这里会停止,我们可以进一步操作。我们并不知道哪一个是关键CALL,只是从上面开始尝试。
  3. 按下F9开始运行软件,当出现注册提示时,随意输入注册码,点击注册,发现没有出现错误提示,因为软件运行到断点时停住了。此时按下F8,让软件单步运行,同时注意观察右边寄存器中的ASCII值。当运行到地址006E6435时,寄存器出现了一长串字符,引起了我们的注意。A32D725C66BG3099224B7796D9HA22AAGAG3,这一串字符不是机器码,有无规律可循,有理由猜想是储存在寄存器中的注册码。
  4. 右键,将寄存器的信息复制出来,即可得到注册码。我们可以使用这个注册码进行软件注册。
  5. 注册结果当然是成功的。至此,我们成功追踪到了注册码。

追踪注册码的方法具有普适性,而且可以为制作注册机打下基础。

四、制作注册机,成为高手。

很多朋友认为注册机很神奇,是高手的专利。实际上,一个内存注册机只是将人工追踪注册码的过程自动化,没有什么神秘的。以这个软件为例,有了前面追踪码的基础,我们可以制作一个属于自己的注册机。

原理分析:我们为注册机规定读取ASCII的寄存器地址,运行寄存器后,它会自动从该地址读取并显示内容,从而生成注册码。但注册机不是算号器,不涉及注册码的算法,只是通过取出寄存器中的内容来简化过程。基础仍然是调试工具中看到的信息。

工具:keymake(下载地址:)。

步骤:

  1. 打开工具软件keymake,依次选择其他,内存注册机。
  2. 点击浏览,找到软件所在位置。在设置注册机信息的界面中,点击左下角的添加。
  3. 中断地址为006E6435,中断次数为1,第一字节E8,指令长度为5(每两个字母为一个长度),这些信息可以在调试工具的HEX数据中找到。寄存器方式为EAX。填写完毕后,点击添加。
  4. 界面如图所示,点击用户信息,可以添加自己的网页和邮箱。
  5. 设置完成后,点击生成。
  6. 选择一个界面样式,点击确定。
  7. 注册机必须放在软件安装目录下。
  8. 使用时,双击注册机,弹出软件注册界面,随意输入注册码,提示注册码错误,注册机会显示正确的注册码。但是,前8位数字要略去,因为我做的只是一个简单的演示,一些与地址相关的多余字节没有去掉,注意这一点就可以了。

这样,我们就制作了一个注册机,比破解更高级。

五、注册本质分析。

本来想做一个算法的分析,但时间比较紧,没弄明白,就用这个来代替。到底注册软件改变了什么?

工具:Regshot(下载地址:)。

在未注册状态下,进行第一次注册表扫描,得到第一次快照。然后使用获取的注册码进行注册,最后进行第二次注册表扫描,得到第二次快照。比较两次快照的结果。

Com这一项的变化是因为我们注册的公司名称发生了改变,day这一项是因为我们启动了软件,导致试用次数减少。而id这一项是真正注册成功前后的变化。而这一项的数值我们非常熟悉,它就是软件的机器识别码!因此,这个软件的注册本质就是,如果注册表中的id的值与机器识别码相同,就会变成注册版。因此,我们又得到了一种破解方法,只需将机器识别码写入id这个注册表项,就可以成功注册!而机器识别码是软件显示出来的。想不到吧。

相关文章

kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描

kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 笔者准备在CSDN上写技...

如何在 VMware 中安装 Kali Linux

如何在 VMware 中安装 Kali Linux

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 Kali Linux 是...

hbase的密码在哪看

hbase的密码在哪看

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 HBase的密码在哪看...

将Kali Linux 2020

将Kali Linux 2020

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi 各位好 又见面了 我是曹操 今天给大家带来一篇新的教程 希望各位细心学习 低调用网 我遇到的问题:安装完Ka...