EXE、DLL文件的全能脱壳秘籍
EXE、DLL文件的全能脱壳秘籍我们在软件汉化时,经常会发现这种情况。用eXeScope 打开 EXE、OCX 或 DLL 文件,打开文件正常,可以看到具体的资源项和资源子项,明明看到有菜单、对话框、字符串、RCData、光标、图标、位图等资源存在。但单击资源子项,想查看子项的内容时,出现这样的信息窗口(如图1),无法查看资源子项内容。
javascript:window.open(this.src); height=322 alt="" src="/Article/UploadPic/2008-12/200812130403818.gif" width=553 onload="return imgzoom(this,550);" border=0>
这是因为文件使用了一些压缩加壳软件加密过,这就需要对文件进行解压脱壳处理后,才能汉化。这种压缩与我们平时接触的压缩工具如winzip,winrar等压缩不同,winzip压缩后的文件不能直接执行,而这种 EXE 压缩软件,EXE文件压缩后,仍可以运行。这种压缩工具把文件压缩后,会在文件开头一部分,加了一段解压代码。执行时该文件时,该代码先执行解压还原文件,不过这些都是在内存中完成的,由于微机速度快,我们基本感觉不出有什么不同。这样的程序很多,如 The bat,Acdsee,Winxfile等等。
这种压缩加壳属于软件加密,现在越来越多的软件经过压缩处理,给我们汉化带来许多不便,软件汉化爱好者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处吗简单,缺点吗版本更新了就没用了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。
侦测壳的类型:
我们知道文件被一些压缩加壳软件加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方法都不相同。这类查壳的工具很多,我这里介绍大家使用 Filebase for eXecutable (简称 Fi),它是一个文件格式分析器,除了用来查壳,还有很多功能,我们在以后汉化教程还会接触它。由于 Fi 是使用dos命令格式,因此你必须在"我的电脑"的地址栏中操作(如果你还没有升级到IE4.0以上,你可能要在"开始"--"运行"中进行操作),操作如下:
首先我们把要分析的文件复制到 Fi的目录,确定是在 Fi的目录下,然后在"我的电脑"地址栏中输入以下的命令:fi 文件名.后缀名 (例:fi acdsee.exe )
javascript:window.open(this.src); height=294 alt="" src="/Article/UploadPic/2008-12/200812130403826.gif" width=458 onload="return imgzoom(this,550);" border=0>
出现如下界面(见图 ):哦,原来是用Aspack1.804加密的:-)
javascript:window.open(this.src); height=371 alt="" src="/Article/UploadPic/2008-12/200812130403272.gif" width=572 onload="return imgzoom(this,550);" border=0>
我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们软件汉化时常常会碰到的加壳方式及简单的脱壳措施,供大家参考:-)
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了
(2)ASProtect+aspack: 次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但最新版现在暂时没有办法。
(3)Upx: 可以用UPX本身来脱壳,但要注意版本是否一致,用-D 参数
(4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦
(5)Dbpe: 国内比较好的加密软件,新版本暂时不能脱,但可以破解
(6)NeoLite: 可以用自己来脱壳
(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来脱壳
(8)Pecompat: 用SOFTICE配合PEDUMP32来脱壳,但不要专业知识
(9)Petite: 有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识
(10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳
我们通常都会使用Procdump32这个通用脱壳软件,它是一个强大的脱壳软件,他可以解开绝大部分的加密外壳,还有脚本功能可以使用脚本轻松解开特定外壳的加密文件。下面摘选了捷迅中文化天地(杨贯仲) 写的 Procdump的教程,写的非常好,附录如下:
------------------------------杨贯仲的文章------------(开始)------------------------------
由以上两个可执行程序的加壳分析工具知道 TPM1.0 是被UPX 0.70加压的,顺便说一声,前段时间出的 AcdSee32的2.42版 是用Aspack1.803加压的,Mass Downloader V1.2.62 Beta 2 是用Aspack1.804d加压的。下面我们打开PROCDUMP32的主程序:
javascript:window.open(this.src); height=298 alt="prodump1.GIF (14428 字节)" src="/Article/UploadPic/2008-12/200812130403383.GIF" width=608 onload="return imgzoom(this,550);" border=0>
5.单击按钮“解包”,弹出如下对话框:
javascript:window.open(this.src); height=415 alt="prodump2.GIF (6141 字节)" src="/Article/UploadPic/2008-12/200812130404548.GIF" width=241 onload="return imgzoom(this,550);" border=0>将选择解包方式设为:UPX,然后单击“确定”,选择要解包的程序为:TPM.exe
javascript:window.open(this.src); height=230 alt="prodump3.GIF (6739 字节)" src="/Article/UploadPic/2008-12/200812130404876.GIF" width=444 onload="return imgzoom(this,550);" border=0>
单击按钮“打开”后将出现如下窗口:
javascript:window.open(this.src); height=187 alt="prodump4.GIF (8107 字节)" src="/Article/UploadPic/2008-12/200812130404363.GIF" width=481 onload="return imgzoom(this,550);" border=0>
此时Procdump将自动打开TPM并分析处理它的加密壳,注意此时一定要等TPM完全加载后才单击按钮“确定”,否则的话你又要重新来过了,单击按钮“确定”后将接着出现如下对话框,并且打开的TPM将自动关闭:
javascript:window.open(this.src); height=228 alt="prodump5.GIF (7183 字节)" src="/Article/UploadPic/2008-12/200812130404430.GIF" width=442 onload="return imgzoom(this,550);" border=0>
单击按钮“保存”,将它保存为newtpm.exe,newtpm.exe就是我们需要的文件了,现在你可以将它自由的汉化了,怎么样,简单吧。
暂告一段落
其实你也可以利用Procdump内置的解包功能来直接解开TPM,而无须利用GTW 2.51和Filebase for eXecutable 2.10来识别要处理的文件,不过这样的成功率就要低很多了。方法是:
1.在打开Procdump之前先打开TPM,然后再打开Procdump,在Procdump的窗口中选中TPM的进程,如下图示:
javascript:window.open(this.src); height=300 alt="prodump6.GIF (15473 字节)" src="/Article/UploadPic/2008-12/200812130404564.GIF" width=607 onload="return imgzoom(this,550);" border=0>
单击完全保存后就会弹出如下对框要你选择要保存的文件名,任写一个保存就可得到你所需要可以汉化的未加壳程序了。
javascript:window.open(this.src); height=230 alt="prodump7.GIF (6959 字节)" src="/Article/UploadPic/2008-12/200812130405275.GIF" width=440 onload="return imgzoom(this,550);" border=0>
采用这种方法的成功率要低很多,我建议你用GTW 2.51和Filebase for eXecutable 2.10先将要处理的程序识别出来是用什么加壳的之后,才用Procdump选取相应的解包方式解开它。
技巧:有时在Procdump的任务窗口中采用以上方法解不开,你可以试着在Procdump的部件窗口中采用以上方法,说不定会有让你以外的惊喜。
---------------------------------杨贯仲的文章-----(结束)----------------------------
有时你使用Procdump还是无法将文件它解开或者是解开后却还是找不到资源(没有正确解开),建议大家用相应的专门针对这一类压缩壳的解壳工具来解开它。这些工具你可以在我们主页的汉化工具中找到,如果你还是解不开它,你可以问问以下的破解高手,他们会很热情的回答你的问题。
侠客的家 nemc.yeah.net
冰雪天地 iceworld.yeah.net
注意:文件脱壳后,有条件最好在不同系统进行测试,看看是否运行正常。前段时间,经常有用户反映有些汉化作品无法运行。后来发现,汉化人是用 TRW2000 进行脱壳的,这种方法脱壳非常简单,可惜有一个大的BUG。解开的EXE文件会少些东西,造成解开后的文件只能同一系统中运行。如:在win95脱壳,只能在win95运行,在其他系统无法正常运行,反之亦然。作为汉化人,装多个系统是必须的,不仅脱壳后的文件,要在不同系统中测试,汉化后的文件,最好也能在不同系统测试。
页:
[1]