软件注册码破解案例教程序言:所谓计算机软件注册码是指为了不受限制地实现计算机软件的功能,而在软件安装或使用的过程中,按照指定的要求所输入的、由字母、数字或其它符号所组成的序列,因此,注册码有时又可称为序列号,只是在特定的条件下,两者会有所区别。
之所以要对计算机软件设置注册码,开发者的初衷在于防止用户使用盗版软件,至今仍有部分软件注册码在发挥着这样的功能,最为典型的就是安装型注册码,即在软件安装过程中按要求必须输入的注册码,如果没有正确输入注册码,则软件根本不能安装到计算机中去。
但是现在已经有了愈来愈多的软件注册码并非是对软件安装的限制,而是对软件其它方面的限制,比如,如果不输入正确的注册码,虽然可以安装并使用,但不能实现软件的全部功能等。
教程案例:要破解的软件:网络填表终结者破解需要的软件:侦壳language.exe脱壳AspackDie.exe反编译W32Dasm黄金中文版16进制编辑器UltraEdit.rar在破解之前先复习一下基础知识:一、破解的等级初级:修改程序,用ultraedit修改exe文件,称暴力破解,简称爆破。
中级:追出软件的注册码。
高级:写出注册机。
二、用w32dasm破解的一般步骤:1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册。
2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误提示信息,将错误提示信息记下来。
3.侦测有无加壳(第一课).若加壳,脱壳(第二课)。
4.pw32dasmgold反汇编。
5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键。
6.pw32dasmgold主窗口中分析相应汇编,找出关键跳转和关键call。
7.绿色光条停在关键跳转,在pw32dasmgold主窗口底部找到关键跳转的偏移地址(实际修改地址)。
8.用ultraedit找到偏移地址(实际修改地址)修改机器码,保存。
壳的概念:版权信息需要保护起来,不想让别人随便改动,exe可执行文件压缩,最常见的加壳软件ASPACK ,UPX,PEcompact。
脱壳:拿到一个软件,侦测它的壳,然后我们要把它的壳脱去,还原它的本来面目.若它没有加壳,就省事不用脱壳了.脱壳软件unaspack,caspr,upx,unpecompact,procdump。
实际修改地址(偏移地址)和行地址(虚拟地址)pw32dasmgold反汇编出来的代码由三列组成:第一列行地址(虚拟地址)第二列机器码(最终修改时用ultraedit修改)第三列汇编指令第一列第二列第三列:0041BE38 2B45F0 sub eax, dword ptr [ebp-10]:0041BE3B 6A42 push 00000042:0041BE3D 50 push eax:0041BE3E FF75F4 push [ebp-0C]:0041BE41 FF75F0 push [ebp-10]:0041BE44 FF35A8AB4400 push dword ptr [0044ABA8]两种不同情况的不同修改方法:1.修改为jmp:je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息。
2.修改为nop:je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转)nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。
以上为必备知识。
下面开始我们的破解之旅……软件破解:一、侦壳:先打开侦壳language.exe,选择打开----找到要破解的网络填表终结者:FormGhost.exe,点确定,如图1。
language.exe便显示出软件的壳是:Aspack,如图2。
二、脱壳:双击脱壳AspackDie.exe,出现一个对话框,选择网络填表终结者:FormGhost.exe,打开。
如图3。
出现图4框,点确定脱壳完成。
在网络填表终结者:FormGhost.exe同目录下生成一个unpacked.exe文件,这就是脱壳后的FormGhost.exe。
三、定位:运行脱壳后的unpacked.exe,点帮助----注册,图9。
注册名称,注册码随便添。
图10。
点注册,提示:“注册码错误”图11,好了记住这5个字。
关了它。
四、开始反汇编:打开反编译软件“W32Dasm黄金中文版”,选择反汇编,打开脱壳后的unpacked.exe,开始加载。
如图5、图6。
返汇编之后如图7。
点击上面的参考。
串式参考如图8。
出现这个对话框图12。
找到“注册码错误”,双击它,汇编主程序便来到这里:图13。
(注意:正确注册信息在错误信息之上)关闭串式参考框。
看主程序:图14。
从注册码错误向上找到第一个跳转(关键跳,除了jmp的其它跳:je,jne,jz,jnz),来到这里图15。
(它上面的call叫关键call。
),双击关键跳,看软件最下面有一行字:Line:379267 Pg 7586 of 7626 Code Data@004ACB4B@Offset 00ACB4BH in File:unpacked.exe.其中@Offset 00ACB4BH就是偏移地址,记住00ACB4B(后面的h代表16进制,不用管他),图16。
五、开始修改软件:打开16进制编辑器UltraEdit.rar,(有点慢)图17。
打开脱壳后的unpacked.exe,直接按ctrl+g,出现对话框,输入0xacb4b(即偏移地址,不要前面的000)图18。
点确定,来到图19。
前面说过正确注册信息在错误信息之上,所以这里将of85改为of84。
图20。
(如果正确注册信息在错误信息之下,这里改为eb)。
将光标移到5上直接输入数字4即可,其他地方不要动。
好了,改好只后左上角的文件,另存为unpacked222.exe。
六、完成全部破解:关闭所以软件,运行另存的unpacked222.exe,点帮助---注册,注册名称,注册码随便添,点确定,提示注册完成。
图21。
回到软件界面看看,帮助,注册一项已经变为灰色了,图22。
============================================================附录1:软件版本号祥解(什么是Alpha,Beta,RC ?)1. 软件版本阶段说明* Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。
* Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。
* RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
* Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。
该版本有时也称为标准版。
一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。
2. 版本命名规范软件版本号由四部分组成,第一个1为主版本号,第二个1为子版本号,第三个1为阶段版本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有5种,分别为:base、alpha、beta、RC、release。
例如:1.1.1.051021_beta。
3. 版本号定修改规则* 主版本号(1):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。
此版本号由项目决定是否修改。
* 子版本号(1):当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。
此版本号由项目决定是否修改。
* 阶段版本号(1):一般是Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。
此版本号由项目经理决定是否修改。
* 日期版本号(051021):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。
此版本号由开发人员决定是否修改。
* 希腊字母版本号(beta):此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。
此版本号由项目决定是否修改。
4. 文件命名规范文件名称由四部分组成:第一部分为项目名称,第二部分为文件的描述,第三部分为当前软件的版本号,第四部分为文件阶段标识加文件后缀,例如:项目外包平台测试报告1.1.1.051021_beta_b.xls,此文件为项目外包平台的测试报告文档,版本号为:1.1.1.051021_beta。
如果是同一版本同一阶段的文件修改过两次以上,则在阶段标识后面加以数字标识,每次修改数字加1,项目外包平台测试报告1.1.1.051021_beta_b1.xls。
当有多人同时提交同一份文件时,可以在阶段标识的后面加入人名或缩写来区别,例如:项目外包平台测试报告 1.1.1.051021_beta_b_LiuQi.xls。
当此文件再次提交时也可以在人名或人名缩写的后面加入序号来区别,例如:项目外包平台测试报告1.1.1.051021_beta_b_LiuQi2.xls。
5. 版本号的阶段标识软件的每个版本中包括11个阶段,详细阶段描述如下:阶段名称阶段标识需求控制 a设计阶段 b编码阶段 c单元测试 d单元测试修改 e集成测试 f集成测试修改g系统测试h系统测试修改i验收测试j验收测试修改k----------------------------------------------------------------附录2:绿色软件的前世与今生许多人深有感触,重装系统的麻烦之处往往不仅仅在于Windows的安装过程,还有大量实用软件的安装和配置:周而复始的“运行Setup→选择目标路径→选择安装组件”过程,让人不胜其烦,如何删繁就减,让安装从此轻松起来呢?Windows系统在使用一段时间后体积会逐渐臃肿,运行效率降低,甚至频繁出错。
究其原因,是因为安装和使用各种软件时都会产生不少冗余的信息(垃圾文件和注册表垃圾),而Windows本身缺少一个良好的管理机制,导致用户在卸载软件时并不能同时删去这些冗余信息。
有没有办法来减少这些冗余信息对系统的危害呢?如果你是一个粗通计算机知识的人,在遇到上述两个问题时,也许脑海中就会立刻浮现出“绿色软件”这个词汇来。
没错,使用绿色软件确实可以在很大程度上解决这两个问题。
那么,绿色软件到底是什么?它又有什么好处呢?·使用绿色软件有何好处?首先让我们来看看使用绿色软件的好处。