第2课用相应工具软件为软件自动脱壳(非手动脱壳)

  • 格式:doc
  • 大小:288.50 KB
  • 文档页数:13

第二课用相应工具软件为软件自动脱壳(非手动脱壳)欲破解一个软件,我们首先应根据前面的内容侦测它的壳,然后我们要把它的壳脱去,还原软件的本来面目。

如果软件是一个PLMM,我们不喜欢穿衣服的MM,我们不喜欢艺术照的MM,我们迫不及待地想把MM脱光,想把MM骗上床。

带壳的软件以后很难分析,带壳的穿衣的MM很难调教,壳是一个拦路虎,我们却不知武松醉在何处。

这就如同我们要吃糖炒栗子,必须先剥掉栗子壳一样。

这一课就教给你如何用自动剥壳机去掉花生壳、栗子壳之类的东东。

若侦测出它根本没加壳,就可省掉这一步了(现在没加壳的软件已经很少很少了,除非软件作者缺乏最基本的加密解密常识)。

脱壳成功的标志是脱壳后的文件能正常运行,功能没有任何损耗。

一般来说,脱壳后的文件长度大于原文件长度;即使同一个文件,当采用不同脱壳软件进行脱壳的时候,由于脱壳软件机理不同,脱出来的文件大小也不尽相同。

但只要能够运行起来,这都是正常的,就如同人的体重,每次上秤,份量都有所不同。

但只要这个人是健康的,就无所谓,合乎情理。

一、脱壳软件的两大类别(两个门派――少林、武当)脱壳软件主要分两大类:专用脱壳软件(武当派)和通用脱壳软件(少林派,源自“全民皆武,天下英雄出少年”)。

每个专用脱壳软件只能脱掉特定的一种或两种加壳软件所加的壳,也就是说它是专门针对某种加壳软件的某个版本而制作的。

通用脱壳软件则具有通用性,可以脱掉许多种不同类型的壳。

根据“以一当一”的原则,专用类此门派为“武当”派。

大家可能会有这样的疑问?既然有通用脱壳软件,为什么还要专用脱壳软件呢?所谓“术业有专攻”,通用的脱壳程序往往不能精确地适用于某些软件,而专用的脱壳程序适用面虽窄,对付特定的壳却极为有效。

因此,少林派和武当派缺一不可,相辅相成。

均掌握了武术之精髓,能置“壳”以死地,打得壳满地找牙,第一时间以迅雷不及掩耳之势极速脱掉壳MM的衣衫。

二、专用脱壳软件的四大类别根据壳的流行程度,常用的脱壳软件主要有三类:脱Aspack类(叉A)、脱UPX类(叉U)、脱pecompact类(叉P,怎么又跟微软搞到一块儿了),分别针对前面提到的3个加壳软件。

剩下的全都归到一个其他类中。

下面详细介绍它们的使用方法:(一)脱ASPack壳软件(叉A)――重点针对ASPack壳的软件主要有两个: AspackDie,AsprStripper。

1. AspackDie(A死)AspackDie (作者网站,需要代理才能访问)支持ASPack 2.11/2.11c/2.11d/2.12版所加壳的脱壳。

此软件的优点是支持新版ASPack壳、图形界面、使用方便、操作简单。

最新版本1.41。

★使用方法:傻瓜式软件,运行后选取欲脱壳的软件即可完成脱壳工作。

AspackDie软件运行界面如图1所示。

图1 AspackDie运行界面脱壳时注意:目标程序的属性不能为“只读”,否则会失败。

下面举个例子(ex1701)。

运行AspackDie软件,选定ex1701,如图2。

图2 选定目标文件ex1701选定后,鼠标单击“打开”按钮,即完成脱壳工作,如图3。

在ex1701所在目录生成脱壳后的文件,其名称为Unpacked.exe。

图3 脱壳成功时的画面2.AsprStripperAsprstripper(作者网站:/syd/)功能非常强大,能对付ASPack 2.xx版本的各种标准壳和变种壳,它只能运行在windows 2000/xp平台上。

它还能对付ASProtect 1.2x壳。

AsprStripper软件运行界面如图4。

图4 AsprStripper软件运行界面下面举个例子(ex1701)。

运行AsprStripper软件,点击右上角的“open”按钮选定目标程序ex1701,点击“打开”按钮,如图5。

图5选定目标程序ex1701然后点击右边的“unpacking”按钮,开始自动脱壳,完成后,在信息栏显示“-done”。

在ex1701所在目录生成脱壳后的文件,其名称为_ex1701.exe。

如图6。

图6 AsprStripper自动脱壳界面(二)脱UPX壳软件(叉U)――重点脱UPX壳软件主要有三个:UPX;FS;UPX-Ripper。

1.UPXUPX(主页)既是加壳软件,又是脱壳软件。

UPX经过不断的升级更新,有很多版本,脱UPX壳最好使用与加壳所用版本相同的UPX脱壳。

由于收集起来相当困难,故根据新版本的向下兼容性,我们用UPX的最新版本就足够了,当前最新版本是UPX1.9版。

★使用方法:将待脱壳的软件(如aa.exe)和upx.exe放于同一目录下,执行windows起始菜单的运行,键入upx -d aa.exe优点:脱壳快捷。

缺点:DOS界面。

为了弥补UPX的缺点,第三方开发了许多UPX的GUI界面(即图形界面),从而大大方便了大家的使用。

大家可以根据自己的喜好挑选一个自己喜欢的GUI界面。

图7是笔者推荐的UPX Shell,其界面华丽,功能强大,操作方便。

图7 UPX Shell运行界面下面举个例子(ex1)”。

运行UPX Shell软件,选定ex1,如图8。

图8 选定目标文件然后点“打开”按钮,出现ex1的信息,大小171KB,如图9。

图9 脱壳前原始文件信息然后,在“压缩”选项中,将“解压缩”选中,如图10。

图10 “压缩”选项设置点击“执行!”按钮,开始自动解压缩。

如图11。

图11 自动解压缩脱壳完成后的信息如图12。

图12 脱壳完成后信息2.FSFS(作者网站http://smf.chat.ru)的全称为File Scanner,支持UPX所加壳的脱壳。

★使用方法:将待脱壳的软件(如aa.exe)和fs.exe放于同一目录下,执行windows起始菜单的运行,键入:fs -u aa.exe 只需记牢第一步(执行第一步后,FS会提示你执行后面的操作)fs -rn -spl aa.exefs -se aa.exefs -c aa.exe缺点:操作略显繁琐,DOS界面;优点:能够对付作了手脚的UPX(指有许多UPX加壳软件都针对upx –d采取了防范措施,使此脱壳命令失效)加壳软件。

3.UPX-RipperUPX-Ripper的突出特色是完美支持各种作了手脚的UPX变种壳、变形壳。

下面举例说明其使用方法:用UPX Shell软件对win2000下的记事本notepad.exe加壳,在“高级选项”中选中“加密”,则加壳后的文件不能被UPX Shell解压缩。

用PEiD侦测,壳的信息如图13。

图13 UPX-Scrambler变种壳启动UPX-Ripper,其界面如图14。

图14 UPX-Ripper运行界面点击右上角的“File”按钮,选定目标程序-加壳的notepad.exe。

如图15。

图15 用UPX-Ripper选定目标文件点击下方的“Unpack”按钮,开始自动脱壳。

脱壳成功后界面如图16。

图16 脱壳成功界面(三)脱pecompact软件(叉P)――重点所使用软件为UnPECompact2 v0.1,傻瓜式,极易上手,使用方法类似aspackdie,比较简单,不详述,自己摸索,熟练掌握。

它支持最新版的2.xx-2.78a的pecompact软件加的壳。

2.78a以后的版本是否支持,请自我测试。

(四)其他一些壳及其相应专用脱壳软件见下表:专用脱壳软件汇总表三、通用脱壳软件及使用方法通用脱壳软件主要有以下几个:GUW32;各侦壳软件的插件等。

(一) GUW32GUW32(作者网站),全称为Generic Unpacker Win32。

它是一个智能化的全自动脱壳软件,其原理是通过模拟单步追踪而实现自动脱壳。

使用它,你不需要了解有关壳的信息,不需要侦测它所加的是什么壳,你只需要选定欲脱壳软件即可,然后静待其完成脱壳。

图17 GUW32界面使用时,点击GUW32图形界面的“START”按钮,选择待脱壳软件,GUW32对话框最小化并且在底部显示“>T.R.A.C.I.N.G...”,进行脱壳工作,所需时间与软件大小、CPU速度、同时运行的任务数有关。

有时可能需要较长的时间,请耐心等候。

若GUW32显示出错信息或蓝屏或待脱壳软件突然运行,则表明脱壳失败。

尤其值得注意的是:使用GUW32时,不允许SoftIce或其他调试器处于工作状态。

支持的壳有ASProtect1.1、ASPack2.1、UPX1.08d、Crunch、CodeCrypt、PCShrinker、PE-Compact 、PKLite32、PE-Pack、Shrinker、TimeLock、WWPack32、Yoda Crypter等。

GUW32能够脱掉ASPack2.12版的壳,脱时务必按照“Options”的默认选项设置。

该软件现在暂还不能把ASProtect 1.xx、tELock、Petite、PE-Crypt32这些软件加的壳给脱掉。

参数(Options)说明:"Show current EIP" -显示当前EIP,主要用于寻找bug,须置空;"Report APIs" -报告API调用,须置空;"Remove last section" -去尾,脱UPX,、PECompact、 PCGuard 和PCShrinker壳时,须将此选项置空;"Build new idata" -创建新idata,此选项须打上对号;"Use ring0 tracer" -使用ring0级追踪,此选项须打上对号。

斜体的了解即可。

(二) pe-scanpe-scan 原本为侦壳软件,但随着侦壳软件的发展,加入自动脱壳功能是侦壳软件的发展方向。

pe-scan自动脱壳功能还比较强,故把它放到这里来讲。

pe-scan可以测出壳的种类很多,还可以测出壳入口点、偏移量及pep。

对未知壳也可以通过高级扫描方式来帮助您作出判断。

可以脱的壳有 wwpack、stone's pe-encryptor、petite 2.1、pe-compact 1.84、aspack 2.12 等等,使用方便、快捷。

下面举个例子(ex1701)”,来介绍其自动脱壳的使用方法。

首先,用pe-scan打开目标文件ex1701,如图18。

图18 pe-scan运行界面在上图中,点击“脱壳”按钮,出现图19所示界面。

图19 pe-scan脱壳界面在上图中,点击“开始”按钮,开始自动脱壳,脱壳完成后出现图20所示界面。

为脱壳后的文件起个名字,保存即可。

图20 脱壳完成后的保存界面(三) PEiD+脱壳插件――重点前面已经介绍过,PEiD是一个相当出色的侦壳软件。