cnpaf.net - 中国协议分析网

投递文章 投稿指南 RSS订阅 网站通告:
搜索: 您的位置主页>网络安全>工具使用>阅读文章

压缩与脱壳-自动脱壳 上

12-20 13:48 来源: 作者: 【 评论:0 浏览:
1、工具介绍

  通过上一节,我想大家己认识了什么是壳的概念了,也是说运行加壳程序时, 用户执行的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交还给解开后的真正的程序,由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,只要执行起来没有变化就好。当时有些人担心这些解压缩的工作会给程序带来额外的运行时间,但实际上所有的可执行文件都要读到内存中去执行,文件小了,从计算机硬盘上读到内存的时间自然也少了,两下相抵,实际上用户并不会感觉程序慢了多少。脱壳的就是把在内存中真正还原的程序抓取下来,修正后变成可执行的文件。

  在Windows 95/NT/2000 上的文件格式是Portable Executable File Format(即PE格式),该格式应用于所有基于Win32的系统。由于现在windows的普及,下面谈到的壳都是基于这种文件格式。

压缩工具介绍(PACKERS)

  我们这里谈的压缩工具不是Winzip,WINRAR等工具(它们是可压缩任何文件),而是谈专门压缩windows下的 PE 格式EXE或DLL文件的工具,压缩的EXE文件是自解压可执行文件。

常用压缩工具(Windows Packers )列表:

名称
作者
主页
介绍
ASPack
Alexey Solodovnikov
http://www.aspack.com/
是俄国作者Alexey Solodovnikov写的一个非常强大的Win32压缩工具,其压缩率、速度和兼容性很不错,是目前很流行的一种压缩工具。
UPXMarkus Oberhumer & Laszlo Molnar
Homepage
非常全能的 EXE 压缩软件,并可用UPX -D命令脱壳。
Petite Ian Luck
Homepage
能压缩PE文件的code, data等资源。
PE-PACK ANAKiN
Homepage
一个自身体积小巧的压缩工具
PKLITE32 PKWARE, Inc.
http://www.pkware.com/
32-位压缩工具(DLL/EXE).
WWPack32 Piotr Warezak and Rafal Wierzbicki
Homepage
32-位压缩工具(DLL/EXE).
NeoLite  
Hompage
32-位压缩工具(DLL/EXE).
Shrinker Blink Inc
Hompage
32-位压缩工具(DLL/EXE).

脱壳工具介绍(UNPACKERS)

  一般某种压缩工具的壳,都会有相应的脱壳工具,因此只要找到较新版本的脱壳工具, 一般的壳都可轻易脱去。

常用脱壳工具(Windows Unpackers)列表:

名称
作者
主页
介绍
ASPack unpackerbane
Homepage
脱ASPack的压缩PE文件。
UnPEPack M.o.D.  脱PEPack的壳
ProcDump32   十分优秀的“万能”脱壳工具,可惜不升级了,因此只能自动脱些老版本压缩工具的壳,但可通过脚本命令使其升级。也是一款优秀的PE修改工具。

侦测文件类型工具

名称
介绍
FileInfo 能检测多种文件格式,脱壳前用来判断是否加壳或何种壳,推荐使用!
GetTyp 功能同上
TYP功能同上

要了解更多的压缩工具或脱壳工具可去下面站点:

站点1:playtools工具站点(请通过代理访问)
站点2:protools工具站点 (请通过代理访问)
站点3:阿伦主页

2、ProcDump应用文章一

注:本文作者PererS是台湾的,因此要注意在一些名词上称呼与我们不同。
由于此文写作时间较早,在此推荐两个新版工具:
侦测工具:推荐FileInfo。
脱壳工具:ProcDump32 v1.6.2 FINAL终结版本 。(作者不升级了,对目前新版压缩工具的壳无效,为了你对 Procdump有个认识,在此提供一较老版本ASPack压缩的记事本程序供练习:下载)

标题:软体名称中文哇!档案阅览器 2000 (Version 4.1)
保护方法
需要工具TYP(侦测工具) & ProcDump 1.50(剥壳机)
文章作者
Peter S. (彼得的家)

侦测与剥 CWView 2000 (Version 4.1) 的壳

一、前言

    何谓壳?相信这是很多人的疑问。

  其实壳,顾名思义,就像鸡蛋的壳一样,主要是保护鸡的「卵」。从外观上看来,鸡蛋是白色的,但是把壳剥掉以后呢?是黄色的卵+透明的蛋白(未熟蛋)。这应用到我们的破解与保护上呢,也是同样的意思,假若我今天要修改一个执行档(就像我要把黄色的卵,涂成绿色),但是因为有壳,所以根本找不到你要修改的地方(就像光从鸡蛋的外观上看来,根本找不到有黄色的地方一样),一定要把壳「剥掉」,才能达成你的目的。我这样说,应该比较容易了解什么是壳了吧

当然,正确的说,「壳」与「加密」是一体的,这类似你有一个纯文字档,如果你用zip压缩它以后,能够再更改它吗?不可能,因为资料已经被重新排列、且压缩运算过,成为一堆乱码,所以根本不能直接改。

这个教学文件所需要的软体如下:

1. TYP  这是一个能侦测你的软体是被哪一种「壳」给加密了

   (就好像侦测你的文件档是被ziprararj哪一个给压缩了一样,如果连被哪种软体加了壳都不晓得,那要剥壳就难很多)

2. Procdump 1.5 这是剥壳机器,可剥许多已知壳、未知的for win32的壳。

二 . 用 TYP 测试 CWView2000 是被哪种壳给加密了 :

    废话不多说,直接来:

1.首先,你要把你下载来的TYP先解压缩到某个目录(我假设c:\try)

2.再来,把CWView2000的主程式cwview32.exe,由c:\cwv2000下拷贝到上面讲的目录(c:\try),接下来,从win95开一个dos视窗,并且切换到c:\try目录下,然后键入typ3 cwview32.exe

3.过几秒以后,直接跳到最后一行,有没有看到ASPACK / Solodovnikov Alexy [1.07b]这行?

    ~~~原来CWView2000是用ASPACK 1.07b 来加密的啊。那要脱壳不就简单了,去找一个专门脱ASPACK 1.07的软体不就得了??

    没错,不过我在来要教的,是使用目前全世界最强的拨壳机Procdump来剥壳。

.Procdump 1.50 来剥ASPACK 1.07b的壳:

1.首先,当然也是把Procdump解压缩到刚刚的目录(C:\TRY)

2.执行Procdump,你会看到如下的视窗:

3.因为我们要剥壳,所以按下Unpack(其他的按钮是干什么的,我也不清楚,大概是跟WINPE执行档有关的吧):

4.由刚刚TYP侦测得知,CWView2000是用Aspack 1.07b加的壳,所以理所当然的我们要选择 [Aspack<108],选好后,按下OK(要选对喔,选错会剥不出来):

5.此时,ProcDump会要求你开启你要剥壳的执行档,当然,我们要把路径指到c:\try\cwview32.exe

6.紧接著马上会出现如下的视窗,此时,千万不要按下[确定]。稍微等一下,有耐心一点,你马 上就会看到CWView2000被呼叫执行了,此时,将视窗切换至CWView,随便使用一二个 功能,然后在不要关掉CWView2000之下,按下[确定]钮。(这个按钮是当程式[完全]被载入以后,才要按的)

上面这个步骤很重要,如果心急乱按或乱关,你就得重来了。

7.按下[确定]后没多久,会出现下面的视窗,并且此时cwview会自动被关掉,然后开始剥壳 运算,当出现Step by step analyzis activated ...时,过不久,Prucdump就会要求你键入要输出的 档名(也就壳剥掉以后,原始的卵要存成什么档名),我这里举例成unshell.exe,此时,也代表剥壳成功!!:

剥壳还蛮简单的嘛,对不对?

三 . 试试看剥壳了以后的 CWView32.exe 可不可用 :

    你可以自己执行看看,应该可以用吧?或许你也可以比较一下剥壳与未剥之间的差别, 你将惊觉:没有剥壳的CWView32只有602kb,但是剥壳后,竟然高达1634kb。很惊人的压缩率吧!(所以加密或加壳的确有存在的必要,就好像压缩一样,可以帮助人们节省很多硬碟空间)

四 . 试试看剥壳了以后的 CWView32.exe 可不可以修改成注册版 ?:

      你可以用16位元编辑器,打开刚刚剥壳后的档案(unshell.exe),然后

寻找 C60520864F0001

改成 ------------00

嘿嘿,找的到对不对?也可以改了吧...这样就不用使用外挂的「动态破解」软体PPATCHER!

五 . 我知道你在想什么 ...

    你是不是在想,可不可以把刚刚修改完成的unshell.exe再把它加壳,让它变的小一点啊?

当然可以,只要你有加壳软体...还等什么,赶快去做啊!

从这次的破解教学我们学到:

1. 如何使用TYP来侦测壳,与如何使用史上最强的procdump来剥壳。

2. 要剥壳,其实并不难,只要TYP侦测得出来、procdump有列表的,都很简单。

要注意的是:

1.当你发现TYP的回报是Unknow时候,别慌,procdump也可以针对未知的壳作剥壳的运算,只要选择 **unknow** 就可以啦,不过成功率当然降低许多。

2.为什么要介绍procdump?因为它可以外挂script.ini来增加剥壳的能力。也就是你可以自己用sice追某个被不知名加密软体给加壳的软体,然后纪录起相关的资料,再交由Procdump来把记忆体的内容「dump()起来,只是这篇教学没有教(我也不太会啦...) 

3.TYP是目前世界上侦测壳、压缩资料,能力最强的软体,要善用,你可以在下面的网站抓到:

阿伦的家(GB): http://crackers.163.net/
作者网页: http://www-user.TU-Cottbus.DE/~kannegv

注意:要抓dos32的版本,才能在windows下正常使用

4.Procdump是目前世界上最强的拨壳软体,除可以剥已知道的壳外,还可以剥许多未知的壳。更可以以手动的方法,增强其剥壳能力(可惜的是,它只支援win32的软体,win16dos的他都不支援)。,你可以在下面的网站抓到:

阿伦的家(GB): http://crackers.163.net/
吴朝相的家(GB):http://member.netease.com/~topage

5.别看我的网站都是介绍中国的网站,我可是道道地地的台湾人,只是因为破解与保护在中国比较盛行,不得已...否则我也想介绍一些台湾的破解站啊!(不然只有孤零零的我一个)

3、ProcDump应用文章二

 今天,在吴朝相的网页上看到一篇由台湾的Peter's写的关于脱壳的文章,里面提的了Procdump1.50的使用,但由于所写的内容比较地肤浅,并没有交待到Procdump1.50的强大之处,同时由于最近在网上的软件,加壳之风日盛,如果作为一个Cracker,不跟着时代走,可能在不久的将来,你就没有什么软件可以修改了,所以一定要在加脱方法下点苦功才行,为此,小弟想把一月来学习到的脱壳技术Post出来,让大家了解一下在Windows上是如何进行软件脱壳的,同时也想向大家介绍强大的Procdump1.50是如何使用的,如何用它来进行手动脱壳的,如何扩展自已的Procdump1.50的脱壳种类。但由于小弟在脱壳方面还是新手,如果文章中有错误之处,请来信指教。

读者要求:

你可以阅读和传播本文章,但不能对文章的内容作任何的修改,请尊重作者的劳动。

首先我们要先准备我们的工具:

1.Procdump1.50

2.Ultraedit6.10(这个你也可以用别的编辑器)

3.Winsoftice4.0

4.Trw0.75

5.MakePE1.27

6.Wdasm8.93

好了!工具都准备齐全了,我们就去下载一个实验品吧!今次我们选的是UPX ,在Procdump1.50的脱壳文件列表中,你可以清楚地看到有UPX的选项,所以我们今次就选它了,目前它的最新版本0.82,好了下载完毕了,我们先用它来为软件加一个脱吧!

操作:

1.windows上打开一个Dos窗口,进入UPX0.82所在的目录;

2.输入upx  [要加壳的文件路径和文件名]

3.OK!加壳成功了!

好了!现在可以试一试脱壳了!

操作:

1.运行Procdump1.50

2.Unpack按钮,这时就出现了Choose Unpacker窗口;

3.在窗口中选择UPX,这时就会跳出一个选择你要脱壳文件的选择窗口;

4.按下打开,哦天啊!好痛苦啊!程序没有脱壳竟然运行了,Procdump1.50提示一个错

误发生在script的第一行。

以上的所有操作,是对自动脱壳来说的,基本上的自动脱壳的操作都是这样的。好了,难道就这样没有戏唱了吗?作者写文章那会就写这几十行废话呢?请接着看下面的吧!好了,看一看它没有没防住winsoftice呢?重新启动机器,换一个有安装winsofticewindows平台吧!再次运行被加脱了的程序,还好!没有当掉winsoftice,这样心中暗喜,你有难了啊!看来外国人写的东西还是比较有善,不象Ding Boy的幻影系列,比小燕子还凶(^o^,又说Ding Boy的坏话了,其实有时我觉得他比较象Crack的小燕子,令人又爱又恨)。好了关闭程序,用winsoftice载入去,唉刚刚还说好呢!原来它还是对winsoftice作了一点小动作,winsoftice不能中断于程序的入口的第一句处。没有关系,现在有三种方法,第一种方法是通过对程序的exe文件作一点修改,使其符合标准的PE文件格式,因为winsoftice毕竟不是专为Crack设计的,所以它的中断程序入口是针对标准的PE文件格式来写的,对于那些不符合的,它就没有能力了,具体的PE文件格式,大家可以看一看VC中的MSDN中的帮助和WINNT.H中的解释;第二种方法就是不用winsoftice,而用TRW,因为刘涛涛先生的TRW是专为Crack设计的,所以几乎所有可以在Windows上运行的程序,它都可以中断得了;第三种方法,就是在原exe文件中加插int 3语句,令winsoftice强行中断。  好了,方法说了一大罗,我们就用最简单的方法吧!没人会有简单的不用,去用最繁的,如果有吧!大家就。。。。。。。。

运行TRW0.75,选择菜单中的TRNEWTCB命令,然后运行加脱的程序,程序马上中断于第一句了。

收藏此篇文章内容到:
Tags:
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 广告合作 - 网站地图 - 版权说明 - 网站历史 - 世界排名 - 加入收藏 - 设为首页 - 返回顶部