当前位置:文档之家› 软件破解全程大揭密-菜鸟篇

软件破解全程大揭密-菜鸟篇

在很多人的眼中,软件破解是一直很神秘。其实,你也可以做到软件破解的,下面笔者用通俗的语言介绍软件破解。不过,笔者只是希望你步入破解的殿堂,了解奇妙无比的破解天地。利用下面的知识做坏事,出了事笔者可不负责哟。

软件的“壳”和编程语言的识别

众所周知,软件作者用编程语言编写好软件后,是将它编译成扩展名为EXE的可执行文件。编译为EXE的目的有两点:(1)有一些版权信息需要保护起来,不能让别人随意改动,如作者的姓名、软件名称等;(2)需要给程序“减肥”,从而方便存储、使用和网上传输。为了编译,会用到一些软件。它们能将可执行文件压缩和对信息加密(图1),实现上述两个功能,这些软件称为加壳软件。为软件加上的东东就称为“壳”。加壳软件不同于一般的WinZIP、WinRAR等打包类压缩软件。加壳软件是压缩可执行文件的,压缩后的文件可以

直接运行。

最常见的加壳软件有3个:ASPACK 、UPX、PEcompact。毕竟它们是主流,据统计,用它们加壳的软件约占市面所有软件的90%!其他不常用的加壳软件有ASPROTECT、PETITE 、NEOLITE、TELOCK等,因为使用较少,本文不作介绍。

软件最常见的编程语言是Delphi,Visual Basic(简称VB),Visual C++(简称VC)。了解些编程的知识,会让破解更加轻车熟路。

好了,让我们来进行破解的第一步——侦测出软件的“壳”和软件所用的编程语言。具备这种“慧眼”的软件主要有以下4个:fileinfo、language2000、Peid、pe-scan。下面详细介绍一下它们的使用方法,希望大家能够熟练掌握,并利用它们拨开壳的层层迷雾,揭开壳的神秘面纱。

1.侦测“壳”的软件fileinfo(https://www.doczj.com/doc/694753456.html,/fi25.zip),简称fi,侦壳能力极强。它有两种使用方法,采用其中一种即可。届时,壳的信息为绿色字,显示在左上角。

第一种使用方法:把待侦测“壳”的软件(如xx.exe)和fi.exe位于同一目录下,执行Windows 开始菜单的“运行”,键入“fi aa”即可。

第二种:让待侦测壳的软件(如xx.exe)和fi.exe位于同一目录下,将xx的图标拖到fi的图标上。

结果,如图2所示,软件crackme7.exe是用UPX v0.94软件加的“壳”,其中0.94为UPX 的版本号。2.同时侦测“壳”和编写语言的软件language2000(两个功能合为一体,太酷了)。笔者特别推荐使用language2000中文版,它完全是傻瓜式软件,上手很容易,运行后选取待侦测“壳”的软件即可,图3为运行界面。

由图3所示,软件cr-xxzs.exe是用Visual Basic6.0编写的,并由UPX软件加的“壳”。

3.侦壳新秀PEid中文版,具有华丽的图形界面。外壳整合(添加到鼠标右键)功能令使用更加方便,支持拖放操作。配置时,务请将“扩展到鼠标右键”打上对号。

其使用方法是,鼠标点住XX.exe,按鼠标右键,选"使用PEid扫描"即可;“壳”的信息就显示在底部。

如图4所示,软件W32Dasm.exe是用ASPack 2.11加“壳”,2.11为ASPack的版本号

4.侦壳新霸主pe-scan增添了自动去“壳”功能,开拓了侦“壳”软件新的发展方向,从而奠定了其新霸主地位。如图5,运行后把左下角的shell打上对号就整合到了右键菜单。

如图5所示,软件SmallLocker.exe是用telock 0.60加“壳”,0.60为telock软件的版本号。

用工具软件为软件脱“壳”

根据前面的内容侦测了一个软件的“壳”后,接下来我们就需要把它的“壳”脱去了,以便还原软件的本来面目。注意:若侦测出它根本没加“壳”,可省掉这步。不过,现在没加“壳”的软件已经很少了。

根据“壳”的流行程度,常用的脱“壳”软件主要有3个:AspackDie、UPX、unpecompact,分别针对前面提到的3个加壳软件。下面介绍它们的使用方法:

1. AspackDie能脱ASPack的“壳”,是傻瓜式软件,使用方法类似language2000,运行后选取待脱壳的软件即可轻松完成。

2.UPX脱UPX“壳”,UPX自身具备加壳、脱壳功能。其方法为:让待脱“壳”的软件(如xx.exe)和upx.exe位于同一目录下,执行Windows开始菜单的“运行”,键入“upx -d xx.exe”即可。

3.unpecompact 脱的是Pecompact的“壳”。

傻瓜式软件,使用方法类似AspackDie,运行后选取待脱壳的软件即可。

破解基础知识和16进制编辑器

1.机器码,又称机械码。当你用16进制编辑器打开、编辑EXE等可执行文件时,你会看到许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码就是机器码。修改程序时必须通过修改机器码来修改EXE等可执行文件。

2. 16进制编辑器。16进制编辑器是编辑、修改EXE等可执行文件的软件。常用的有UltraEdit、WinHex等。由于这两款软件非常有名,网上有很多介绍它们使用的文章,限于篇幅,不再赘述。

3. 破解时常用的汇编指令如下,汇编较弱者可先强行背住,以后就可慢慢理解了。

cmp a,b //比较a与b

mov a,b //把b的值送给a,使a=b

ret //返回主程序

nop //无作用,英文"no operation"的简写,意思是"do nothing"(机器码90) (解释:ultraedit 打开编辑exe文件时看到90,等同于汇编语句nop)

call //调用子程序,子程序以ret结尾

je 或jz //若相等则跳(机器码74 或0F84)

jne或jnz //若不相等则跳(机器码75或0F85)

jmp //无条件跳(机器码EB)

jb //若小于则跳

ja //若大于则跳

jg //若大于则跳

jge //若大于等于则跳

jl //若小于则跳

jle //若小于等于则跳

pop xx //xx出栈

push xx //xx压栈

更为详细的指令请查阅汇编书籍。

4.破解常见修改,参看表1。

种不同情况的不同修改方法

为了破解软件的注册和功能限制,归根结底其方法就是在两种不同情况下对程序所进行的修改,具体总结如下。

1)修改为jmp(其示意图见图6)

je(jne,jz,jnz) =>jmp相应的机器码为EB (意思是出错信息向上找到的第一个跳转),jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息。例如:

xxxxxxxxxxxx出错信息,如注册码不对,sorry,未注册版不成功,“Function No t Avaible in Demo”,“Command Not Avaible” 或“Can’t save in Shareware/Demo”等,我们希望把它跳过,不让它出现。

……

xxxxxxxxxxxx正确路线所在,直接跳转到这里。

(2)修改为nop(其示意图见图7)

je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转),nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。例如:

xxxxxxxxxxxx正确信息,如注册成功,谢谢您的支持等,我们希望它不被跳过,让它出现,所以程序一定要顺利来到这里,不能跳转。

……

xxxxxxxxxxxx出错信息,我们希望不要跳到这里,不让它出现!

(图7)

针对上面两点,笔者总结了个爆破无敌口诀背会此口诀,你将天下无敌,以后慢慢琢磨,仔细体会,收益多多,千万不要错过哦!

一条(跳)就死,九筒(90)就胡(对应上面的(2)――修改为nop)

一条(跳)就胡,一饼(EB)伺候(对应上面的(1)――修改为jmp)

妻死(74)便妻无(75)

爸死(84)便爸无(85)

具体的破解方法:

一、算法注册机

算法注册机是在破解者分析了软件的注册码算法后,制作出来的一种可以自动生成软件注册码的程序(一般软件作者自己也编写得有算法注册机,用于卖软件)。由于用这种方式破解的软件和正版注册的一模一样,功能上没有任何区别,所以它是最完美的软件破解方式。下面介绍算法注册机的三种工作流程。

1.运行未注册软件,得到软件机器码,再用算法注册机算号注册

这类软件加密的特点是一个注册码只能在一台电脑上使用,像和电脑进行了一对一的绑定。在此以“南方排八字4.6”为例说明。安装该软件后点击帮助菜单中的“注册”项,在注册窗口中就可以看到一个根据你的电脑而生成的惟一机器码。把这个机器码复制到对应的算法注册机中,点击Generate按钮就可得到软件的注册码(如图1)。最后,把算出来的注册码填入软件的注册码窗口,并随意填写注册人的姓名,就完成了软件的注册。

图1为:运行未注册软件,得到软件机器码后,用算法注册机算号注册

2.用算法注册机直接算出注册码

这类软件的加密方式最普遍,用一个注册码就可以给不同的电脑上的同一软件注册。在此以UltraEdit v10.10c为例说明。安装该软件后它会提示你输入用户名和注册码。这时启动它所对应的算法注册机,输入一个自定义的用户名(如hacker),注册码就在下面自动生成了(如图2)。最后,把得到的注册码复制到UltraEdit的注册窗口中,并填上刚才自定义的用户名,注册结束。

图2为:用算法注册机直接算出软件的注册码

3.用算法注册机直接注册

采用这种注册方式的软件非常少,其特点是一旦运行算法注册机,软件便注册成功了!在此以Clone.CD.4.3.2.2为例说明。安装好该软件后,不要启动它。先运行它所对应的算法注册机,保持默认用户名不变(也可自定义),当点击Exit按钮退出后,该软件便被成功注册了(如图3)。

图3为:利用算法注册机直接注册软件

二、内存破解法

内存破解法是先加载破解程序(内存注册机),再通过它去读取内存中软件的注册码,或修改内存中软件相关的某些数据,来达到破解软件的目的。

1.直接从内存中得到注册码

这种方法只须知道软件注册码的内存地址就行,无须掌握软件注册码的算法,很节省编写内存注册机的时间。在此以“玩转手机V3.12”为例。安装该软件后,把它的内存注册机复制到软件安装目录中。把你的手机连接到电脑上,并运行内存注册机。内存注册机会自动把该软件启动,跟着出现的手机向导往下走,会自动检测到手机。当检测完成后,内存注册机就自动弹出一个窗口,里面便是软件的注册码。把注册码记下来后点击“确定”按钮,会弹出软件注册窗口,填入注册码即可完成注册(如图4)。

图4为:直接从内存中得到软件的注册码

2.使用Loader程序

此方法是在没有找到很好的破解方法时采用,它可以去掉软件运行时的注册提示窗口(或软件过期提示窗口),可在内存中模拟软件已注册的运行环境,甚至有的还能给软件带来一定的功能扩展。玩过网络游戏“传奇”的朋友应该知道这种破解方式,它有点像“传奇”的外挂。在此以UltraFXP v1.06为例说明。安装该软件后,把它对应的Loader程序复制到软件安装目录中,并把UltraFXP的快捷运行方式从原来指向的UltraFxp.exe改为指向Loader 程序。这样运行软件时就是先运行Loader程序,再运行该软件,而此时的软件环境就是“已注册”。网上流行的QQLDR程序也属于这种,它的作用是去掉QQ的广告,并显示对方的IP。这种外挂性质的破解方式优点是完全不用修改软件的程序文件(如图5)。

图5为:像网络游戏外挂一样的Loader程序

三、补丁破解法

补丁破解法是指用相关的补丁程序来修改软件,以达到破解软件的目的。此方法一般是破解软件的验证注册码或时间,基本上都是修改原程序的判断语句。

在此以MSN Messenger 6.1为例说明。先不要运行它,而运行其破解补丁程序。在补丁程序中点击“Apply Patch”按键,指定MSN Messenger的安装目录。当点击“OK”按钮后,即可完成软件的破解(如图6)。经过以上操作,MSN Messenger的广告条就没有了,而且可以同时运行几个。

图6为:用补丁破解MSN Messenger

四、文件注册法

文件注册法是把软件的注册内容放到一个文件里,以方便自己或别人用它来注册。

1.注册表导入

这种注册方式是通过运行.reg注册表文件进行注册,而软件注册码的注册表信息就存放在这个注册表文件中。破解的操作步骤是先安装软件,然后双击它的.reg破解文件,出现是否导入注册表的询问窗口后,点击“确定”按钮就完成了注册。Nokia LogoManager 1.3就是采用的这种破解方式,不过它的破解包含了主程序文件破解和注册表导入两种。

2.注册文件

采用这种注册方式的典型代表是WinRAR,其注册文件名为Rarreg.key,里面含有用户名和注册码等信息。安装WinRAR后,把Rarreg.key复制到软件的安装目录。当WinRAR 运行时,就会自动读取注册文件里的信息,以验证软件的注册是否正确。

五、破解版

破解版是指用户到手的软件已经被破解,可以直接当正版的已注册软件使用。这种已破解的软件如果破解得不彻底,运行时就会出现一些问题(如随机性出错等),不像用注册机破解的效果那么好。

比如LogoManager File Converter,它下载后便可直接使用,因为它是被破解过的。还有一种破解版是只破解了软件的主程序文件。当软件安装好后,把已破解的主程序文件复制到软件的安装目录中,覆盖原主程序文件就完成破解了。

六、其他与破解相关的内容

1.查看NFO文件中的破解信息

很多从网上下载的软件都带有NFO文件,它里面有该软件的详细破解信息,如破解时间、组织、发布方式、破解方式以及安装方法等(如图7)。不过NFO文件基本上都是英语的,要有一定的英语基础才能看懂。查看NFO文件可用DAMN NFO Viewer(下载地址:点击下载),用记事本有时看不到里面的图案。

图7为:LogoManager File Converter的NFO破解信息文件

2.0day与Warez

讲到破解软件,就不能不说0day与Warez。0day并不是指那些破解专家不到一天就能“搞定”某个软件,而是说他们能在最短的时间里把软件“解锁”,并发布在网上。0day的真正意思是“即时发布”,我们可以把它看做一种精神。Warez是对软件破解的泛称,其中“z”既表示复数,形容非常多,也表示0day中的“0”(即zero),一语双关。0day其实就是Warez 的一种传播形式。

世界上并不存在叫0day或Warez的跨国“邪恶”组织。如果有人说他属于“0day组织”,很多时候并不是指他真的在一个叫“0day”的破解组织里干活,而是指他(或他的组织)的软件破解行为符合0day精神。0day是非商业化、非盈利的软件志愿破解行为,市场上那些把0day软件做成盗版光盘销售的行为,与0day的本意无关。

通过本文,相信大家对软件的破解方式有了深刻的认识。提醒大家,非法的软件破解是对软件著作权人的一种侵害。下面是《计算机软件保护条例》的在线阅读地

址:https://www.doczj.com/doc/694753456.html,/GB/it/20011228/637650.html,里面有些内容值得大家注意,如未经软件著作权人许可,不得修改、翻译其软件,不得故意避开或者破坏著作权人为保护其软件著作权而采取的技术措施等.

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