admin管理员组

文章数量:1568431

2024年2月9日发(作者:)

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

欲破解一个软件,我们首先应根据前面的内容侦测它的壳,然后我们要把它的壳脱去,还原软件的本来面目。如果软件是一个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所在目录生成脱壳后的文件,其名称为。

图3 脱壳成功时的画面

ripper

Asprstripper(作者网站:/syd/)功能非常强大,能对付ASPack 版本的各种标准壳和变种壳,它只能运行在windows 2000/xp平台上。它还能对付ASProtect 1.2x壳。AsprStripper软件运行界面如图4。

图4 AsprStripper软件运行界面

下面举个例子(ex1701)。运行AsprStripper软件,点击右上角的“open”按钮选定目标程序ex1701,点击“打开”按钮,如图5。

图5选定目标程序ex1701

然后点击右边的“unpacking”按钮,开始自动脱壳,完成后,在信息栏显示“-done”。在ex1701所在目录生成脱壳后的文件,其名称为_。如图6。

图6 AsprStripper自动脱壳界面

(二) 脱UPX壳软件(叉U)――重点

脱UPX壳软件主要有三个:UPX;FS;UPX-Ripper。

UPX(主页)既是加壳软件,又是脱壳软件。UPX经过不断的升级更新,有很多版本,脱UPX壳最好使用与加壳所用版本相同的UPX脱壳。由于收集起来相当困难,故根据新版本的向下兼容性,我们用UPX的最新版本就足够了,当前最新版本是UPX1.9版。

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

优点:脱壳快捷。

缺点: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 脱壳完成后信息

FS(作者网站)的全称为File Scanner,支持UPX所加壳的脱壳。

★使用方法:将待脱壳的软件(如)和放于同一目录下,执行windows起始菜单的运行,键入:

fs -u 只需记牢第一步(执行第一步后,FS会提示你执行后面的操作)

fs -rn -spl

fs -se

fs -c

缺点:操作略显繁琐,DOS界面;

优点:能够对付作了手脚的UPX(指有许多UPX加壳软件都针对upx –d采取了防范措施,

使此脱壳命令失效)加壳软件。

-Ripper

UPX-Ripper的突出特色是完美支持各种作了手脚的UPX变种壳、变形壳。下面举例说明其使用方法:

用UPX Shell软件对win2000下的记事本加壳,在“高级选项”中选中“加密”,则加壳后的文件不能被UPX Shell解压缩。用PEiD侦测,壳的信息如图13。

图13 UPX-Scrambler变种壳

启动UPX-Ripper,其界面如图14。

图14 UPX-Ripper运行界面

点击右上角的“File”按钮,选定目标程序-加壳的。如图15。

图15 用UPX-Ripper选定目标文件

点击下方的“Unpack”按钮,开始自动脱壳。脱壳成功后界面如图16。

图16 脱壳成功界面

(三)脱pecompact软件(叉P)――重点

所使用软件为UnPECompact2 v0.1,傻瓜式,极易上手,使用方法类似aspackdie,比较简单,不详述,自己摸索,熟练掌握。它支持最新版的-2.78a的pecompact软件加的壳。

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

(四)其他一些壳及其相应专用脱壳软件 见下表:

专用脱壳软件汇总 表

壳的名称

Krypton

Telock

Petite

PEMangle

LameCrypt

AcidCrypt

VGCrypt

PELOCK-NT

相应专用脱壳软件

Krypton-DiE

WKT_tElock_Dumper、untelock

Petite enlarger

UnPEMangle

LameCrypt unpacker

Un-AcidCrypt

UnVGCrypt

PEUNLOCK-NT

DBPE(幻影)

CodeCrypt

NoodleCrypt

PCPEC

PE-protect

PEPack

Y0da’s cryptor

PE-SHiELD

PEncrypt

Softwrap

FSG

NFO

Pex

PE-PACK

PeDiminisher

LameCrypt

Bit-Arts Crunch

PCGuard

ExeStealth

UnDBPE

Un-CodeCrypt

NoodleKiller

UNPCPEC

DePE-protect

DePEPak

Dey0da

unPES

unPEncrypt

Softunwrap

Un-FSG

unNFO

Dex

DePE-PACK

PeDiminisher Unpacker

LameCrypt unpacker

DeCrunchit

PCGuard Dumper

Generic ExeStealth Unpacker

Shrinker DeShrink, Ned

获取这些软件请到以下网址:/,

三、通用脱壳软件及使用方法

通用脱壳软件主要有以下几个:GUW32;各侦壳软件的插件等。

(一) GUW32

GUW32(作者网站),全称为Generic Unpacker Win32。它是一个智能化的全自动脱壳软件,其原理是通过模拟单步追踪而实现自动脱壳。使用它,你不需要了解有关壳的信息,不需要侦测它所加的是什么壳,你只需要选定欲脱壳软件即可,然后静待其完成脱壳。

图17 GUW32界面

使用时,点击GUW32图形界面的“START”按钮,选择待脱壳软件,GUW32对话框最小化并且在底部显示“>T.R.A.C.I.”,进行脱壳工作,所需时间与软件大小、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 、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-scan

pe-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是一个相当出色的侦壳软件。它有一个自动脱壳插件,插件名称为PEiD Generic Unpacker,其脱壳能力极强,只能工作在win2000/xp平台上。笔者强烈推荐读者使用。下面举个例子(ex1700),来介绍此插件自动脱壳的使用方法。首先,用PEiD打开目标文件ex1700,信息栏显示壳的信息为非常强悍的Asprotect1.2x(传说中令人生畏的大S),此插件能胜任吗?如图21,选中PEiD Generic Unpacker插件。

图21 选择PEiD Generic Unpacker插件

如图22,点击右方的“->”按钮。

图22 脱壳界面一

然后,点击左下角的“Unpack”按钮,开始自动脱壳。如图23。

图23 脱壳界面二

脱壳过程中会出现图24的提示窗口,点击“是(Y)”即可。

图24 提示窗口

脱壳后的文件自动命名为ed_.exe,大小为384KB,原始大小为170KB。如此强悍的壳瞬间脱去,所以此脱壳插件一定不可小视,读者千万不可错过。

总结:标红色的为重点掌握内容,其他内容一般性了解即可。

作业:

1. 从网上下载20个共享软件,分别用专用脱壳软件和通用脱壳软件脱壳,脱不掉的先放过,挑简单的,进行脱壳,抓取脱壳前后的PEiD图片寄给我。标题为“第二课作业”。

2. 脱壳第1课中所打包的练习软件。

本文标签: 脱壳软件自动运行文件