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

caocao2年前教程578

在线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无需字典能破解wpa密码吗?

kali linux无需字典能破解wpa密码吗?

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

物理机安装kali linux系统

物理机安装kali linux系统

安装系统要求 Kali系统对硬件有一些基本要求和建议。根据用户使用目的,可以选择更高的配置。本文假设读者想要将Kali安装为电脑上唯一的操作系统。 至少需要10GB的磁盘空间,建议分配更多的存储空间...

阿里云服务器镜像类型有哪些?阿里云镜像系统如何选择?

阿里云服务器镜像类型有哪些?阿里云镜像系统如何选择?

阿里云服务器镜像类型 阿里云服务器ECS镜像根据来源不同,分为以下几种类型: 公共镜像:阿里云官方提供的镜像,包括Windows Server系统镜像和主流的Linux系统镜像。这些镜像都是正版授权...

Kali Linux 安装WIFI无线网卡驱动:rtl8822bu 教程

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