当前位置:文档之家› 教你如何破解软件

教你如何破解软件

教你如何破解软件

2010-06-30 20:08

要破解的软件:网络填表终结者

破解需要的软件(点击下载):

侦壳 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的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。

好了,下面开始我们的破解之旅。。。。。。。。。。

1,侦壳:先打开侦壳 language.exe,选择打开----找到要破解的网络填表终结者:FormGhost.exe,点确定,如图1。language.exe便显示出软件的壳是:Aspack,如图2。

2,脱壳:双击脱壳AspackDie.exe,出现一个对话框,选择网络填表终结者:FormGhost.exe,打开。如图3。出现图4框,点确定脱壳完成。在网络填表终结者:FormGhost.exe同目录下生成一个unpacked.exe文件,这就是脱壳后的FormGhost.exe。

3,运行脱壳后的unpacked.exe,点帮助----注册,图9。注册名称,注册码随便添。图10。点注册,提示:“注册码错误”图11,好了记住这5个字。关了它。

4,开始反汇编:打开反编译 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。

5,开始修改软件:打开16进制编辑器 UltraEdit.rar,(有点慢)图17。打开脱壳后的unpacked.exe,直接按ctrl+g,出现对话框,输入0xacb4b(即偏移地址,不要前面的000)图18。点确定,来到图19

前面说过正确注册信息在错误信息之上,所以这里将of85改为of84。图20。(如果正确注册信息在错误信息之下,这里改为eb)。将光标移到5上直接输入数字4即可,其他地方不要动。好了,改好只后左上角的文件---另存为unpacked222.exe

6,关闭所以软件,运行另存的unpacked222.exe,点帮助---注册,注册名称,注册码随便添,点确定,提示注册完成。图21。回到软件界面看看,帮助,注册一项已经变为灰色了,图22

7,破解全部完成

小知识:软件版本号讲解: 什么是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

绿色软件的前世与今生

许多人深有感触,重装系统的麻烦之处往往不仅仅在于Windows的安装过程,还有大量实用软件的安装和配置:周而复始的“运行Setup→选择目标路径→选择安装组件”过程,让人不胜其烦,如何删繁就减,让安装从此轻松起来呢?

Windows系统在使用一段时间后体积会逐渐臃肿,运行效率降低,甚至频繁出错。究其原因,是因为安装和使用各种软件时都会产生不少冗余的信息(垃圾文件和注册表垃圾),而Windows

本身缺少一个良好的管理机制,导致用户在卸载软件时并不能同时删去这些冗余信息。有没有办法来减少这些冗余信息对系统的危害呢?

如果你是一个粗通计算机知识的人,在遇到上述两个问题时,也许脑海中就会立刻浮现出“绿色软件”这个词汇来。没错,使用绿色软件确实可以在很大程度上解决这两个问题。那么,绿色软件到底是什么?它又有什么好处呢?

·使用绿色软件有何好处?

首先让我们来看看使用绿色软件的好处。

(1)省略或简化程序的安装过程

绿色软件可以放置在硬盘的任何目录中,重装系统后,这些软件不用安装或只需要简单的安装就可运行。比如通过复制安装文件夹的方法可以制作QQ、Foxmail的绿色软件,无论如何重装系统,也不管复制到任何目录中,只需要双击里的可执行程序即可运行。即使不是这样的绿色软件,也仅仅只需要执行批处理文件、安装脚本或REG文件即可,大大简单了程序的安装。

(2)省略或简化程序的配置

大量的软件将配置和数据保存在安装文件夹或注册表中,在制作绿色软件的时候,这些都被很好地保存下来。如QQ的聊天记录、好友信息,Foxmail的邮件、帐号等,都会毫发无损地保留下来,而如果是重新安装,这些信息的重新配置都将是一个很大的工作量,对于不懂电脑的人来说,更是麻烦。

(3)可迁移性强

理论上讲,绿色软件可以放置在电脑的任何一个地方,也可以通过移动硬盘携带到其他的电脑中不需安装直接运行,这给我们的工作带来很大的便利(如QQ聊天记录、电子邮件、地址簿、自定义的输入法等)。

看了上面的介绍,你是否对绿色软件的有了个初步的了解呢?接下来,让我们谈谈绿色软件的历史与发展.

·原始的“绿色软件”

在Windows流行之前的MS-DOS时代,程序只要直接拷贝或者解压缩就能够使用,不想要的时候直接删掉就是。相对于后来Windows下的程序必须经过安装才能使用,而且在安装时,可能往Windows文件夹、注册表等种种你想都想不到的地方,塞进越来越多的“私货”的情况,DOS 时代那种“简单”的软件存在形式,就是最原始的“绿色软件”。

·绿色软件的最初定义

而我们平时常说的“绿色软件”这个名词,它出现的时间大约是在21世纪的最初几年,正是流氓软件开始兴风作浪及Windows优化大师、超级兔子等系统优化软件盛行的时期。在当时那种背景环境下,饱受流氓软件荼毒的用户把“绿色软件”定义为“不会在用户的计算机上留下难以清除的冗余信息的软件”,原因是一如爱好环保般不弃置污染物,所以冠上“绿色”之名。这是绿色软件最初的定义。

·时下流行的绿色软件概念

之后随着绿色软件的概念逐渐完善,它有了较为严格的标准,包括以下几点:

(1)不对注册表进行任何操作

(2)不对系统敏感区进行操作,一般包括系统分区根目录、系统目录(windows目录)、程序目录(Program Files)、用户帐户专用目录。

(3)不向除自身所在目录外的其它目录进行任何写入操作。

(4)不需要安装和卸载操作,删除程序所在目录即可彻底删除该软件。

绿色软件可分为狭义和广义两种,完全符合以上标准的就是狭义的绿色,也称为纯绿色软件,是指软件对系统几乎没有任何改变,除了软件的安装目录,不往注册表、系统文件夹等任何地方写入任何信息(或只在开始菜单中添加简单的快捷方式),卸载软件只需要直接删除安装目录即可,类似于以前的大多数DOS程序。狭义的绿色软件最为理想,但现在完全符合这种定义的软件已经越来越少了,以著名的Foxmail为例,它虽然符合以上几个标准,但是,如果用户需要将它设置为系统默认邮件收发软件时,它就必然要对系统设置进行修改。

广义的绿色软件则不需要专门的安装程序,对系统的改变比较少,手工就可以完成操作,比如拷贝几个动态库、导入注册表或者可以借助于批处理等脚本即可直接完成,像某些绿色软件目录中存在的“绿化.bat”程序就是安装时的批处理脚本。但很多这种广义的绿色软件,实际上只是将安装和卸载操作做得更透明一些,并不能达到真正意义上的绿色,软件运行时所产生的冗余信息,仍然不在它的管理范围之内。这类软件,通常称之为“伪绿色软件”。

·逐步向便携式软件靠拢的绿色软件

便携软件(Portable Soft、Portable Application)是指可以放在可移动设备并能够运行在任意其他Windows系统下的应用程序。便携软件可直接从可移动设备上启动,同时加载个人自定义配置,就像运行在自己的电脑上一样;在断开设备后,不在电脑上留下任何个人数据。

按照维基百科上关于便携软件的定义,作为一款便携软件,必须满足以下3个条件:

(1)没有任何形式的安装;

(2)个人设置必须紧跟着软件;这就意味着不能使用注册表保存设置;

(3)在运行过的电脑上不留下任何痕迹。

从其定义不难看出,便携软件与绿色软件有较多的共同之处,但它的要求比“绿色软件”更加严格,不仅不会在系统中留下任何垃圾信息,而且配置会实时保存下来,既方便放在U盘中随时以自己的配置启动,也非常方便用户对软件的日常应用管理,比如在重装系统的情况下,可以达到“免安装、免配置”即可使用的目的。

实际上,现在越来越多的绿色软件制作者在制作绿色软件时,已经是按照便携软件的标准来进行制作了,从某一角度来衡量,便携软件也可说是制作精良且符合标准的绿色软件。

·与虚拟化技术结合的绿色软件

VMware公司的服务器和工作站产品(即我们常用的VMWare虚拟机),让虚拟化技术走上了迅速成名的道路,使它成为近几年最热门的技术之一。不过许多用户并不清楚的是,虚拟化技术有很多分支,除了那种重量级的服务器虚拟化技术之外,还有轻量级的桌面虚拟化和应用虚拟化技术。

VMware Thinapp便是一款应用程序虚拟化工具,它可以将应用程序(包括程序文件、注册表项、DLL、第三方库及虚拟环境框架等)独立于操作系统或其他应用程序封装到单一的EXE文

件中,许多绿色软件的制作者往往用它来制作单个文件的绿软。

使用VMware Thinapp打造的“绿色软件”并非直接运行在本地操作系统,而是运行在由自身创建出来的一个虚拟环境中,程序运行时需要的资源也都从这个虚拟环境中获取,从而实现与本地操作系统的隔离。因此,它可以做到对系统毫无影响,完全符合绿色软件的要求。但在本质上,它与我们常说的绿色软件是大不相同的。

另外一个采用应用虚拟化技术的典型代表是最近在国内崭露头角的云端软件平台,它的工作原理是将事先分离出来的软件数据(将原软件通过虚拟化处理之后的所得到的文件和注册表项集合)通过云端自身创建出来的虚拟环境与本地系统联接起来,这样既保持了软件的原貌,又能够达到将软件与系统安全隔离的目的。

云端的方式比较巧妙,它在虚拟环境针对每一个软件都创建了一个容器,再将这些容器与系统联接起来,这样每个软件在运行时所产生的垃圾信息,只会存在于该软件的容器中。如果某个软件出现了较多的垃圾信息,用户还有三种方式进行处理:

(1)隐藏。即断开软件所在容器与系统的连接,垃圾信息立刻从系统中消失。

(2)重置。将软件所在容器恢复至初始状态,垃圾信息将被清除。

(3)删除。删除该软件的同时,垃圾信息也一并被删除。

因此,在云端中运行的软件,同样也可以达到绿色(便携)软件的标准,甚至还有诸如“重置”等普通绿色软件所无法做到的特殊功能。这也是我非常喜欢云端的主要原因。

云端的原理与VMware Thinapp的原理有些相似,但在具体的实现方式上不大相同,最主要的区别在于云端有一个客户端通过虚拟环境对软件进行统一管理,而VMware Thinapp则是每个独立的EXE文件都自带虚拟环境。从这一点来看,VMware Thinapp制作出的软件与普通意义上的绿色软件在形式上更接近一些,而云端则更像一个绿色软件的大管家。

相关主题
文本预览
相关文档 最新文档