庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>黑客攻防>黑客教程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

EXE、DLL文件的脱壳

 作者:本站收集   日期:2005-5-17
字号选择〖 〗/ 双击滚屏 单击停止   
  我们在软件汉化时,经常会发现这种情况。用eXeScope 打开 EXE、OCX 或 DLL 文件,打开文件正常,可以看到具体的资源项和资源子项,明明看到有菜单、对话框、字符串、RCData、光标、图标、位图等资源存在。但单击资源子项,想查看子项的内容时,出现这样的信息窗口(如图1),无法查看资源子项内容。

    这是因为文件使用了一些压缩加壳软件加密过,这就需要对文件进行解压脱壳处理后,才能汉化。这种压缩与我们平时接触的压缩工具如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 )

    出现如下界面(见图 ):哦,原来是用Aspack1.804加密的:-)
我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们软件汉化时常常会碰到的加壳方式及简单的脱壳措施,供大家参考:-)
(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的主程序:

prodump1.GIF (14428 字节)

  5.单击按钮“解包”,弹出如下对话框:

prodump2.GIF (6141 字节)

  将选择解包方式设为:UPX,然后单击“确定”,选择要解包的程序为:TPM.exe

  单击按钮“打开”后将出现如下窗口:

prodump4.GIF (8107 字节)

  此时Procdump将自动打开TPM并分析处理它的加密壳,注意此时一定要等TPM完全加载后才单击按钮“确定”,否则的话你又要重新来过了,单击按钮“确定”后将接着出现如下对话框,并且打开的TPM将自动关闭:

prodump5.GIF (7183 字节)

  单击按钮“保存”,将它保存为newtpm.exe,newtpm.exe就是我们需要的文件了,现在你可以将它自由的汉化了,怎么样,简单吧。

暂告一段落

   其实你也可以利用Procdump内置的解包功能来直接解开TPM,而无须利用GTW 2.51和Filebase for eXecutable 2.10来识别要处理的文件,不过这样的成功率就要低很多了。方法是:
   1.在打开Procdump之前先打开TPM,然后再打开Procdump,在Procdump的窗口中选中TPM的进程,如下图示:

prodump6.GIF (15473 字节)

  单击完全保存后就会弹出如下对框要你选择要保存的文件名,任写一个保存就可得到你所需要可以汉化的未加壳程序了。

prodump7.GIF (6959 字节)

  采用这种方法的成功率要低很多,我建议你用GTW 2.51和Filebase for eXecutable 2.10先将要处理的程序识别出来是用什么加壳的之后,才用Procdump选取相应的解包方式解开它。

  技巧:有时在Procdump的任务窗口中采用以上方法解不开,你可以试着在Procdump的部件窗口中采用以上方法,说不定会有让你以外的惊喜。

  有时你使用Procdump还是无法将文件它解开或者是解开后却还是找不到资源(没有正确解开),建议大家用相应的专门针对这一类压缩壳的解壳工具来解开它。这些工具你可以在我们主页的汉化工具中找到.

  注意:文件脱壳后,有条件最好在不同系统进行测试,看看是否运行正常。前段时间,经常有用户反映有些汉化作品无法运行。后来发现,汉化人是用 TRW2000 进行脱壳的,这种方法脱壳非常简单,可惜有一个大的BUG。解开的EXE文件会少些东西,造成解开后的文件只能同一系统中运行。如:在win95脱壳,只能在win95运行,在其他系统无法正常运行,反之亦然。作为汉化人,装多个系统是必须的,不仅脱壳后的文件,要在不同系统中测试,汉化后的文件,最好也能在不同系统测试。

上一篇:《再谈进程与端口的映射》之续篇    下一篇:如何选择漏洞扫描工具  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-17
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿