zzp139 发表于 2008-9-27 20:09

手动脱壳

一.什么是壳及其作用

1.什么是壳
我想大家应该先明白“壳”的概念。在自然界中,我想大家对"壳"这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(当然后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。

最早提出"壳"这个概念的,应该是当年推出脱壳软件 RCOPY 3 的作者熊焰先生。在很多年前的 DOS 时代,"壳"一般都是指磁盘加密软件的段加密程序,那时侯的加密软件还刚起步不久,所以大多数的加密软件(加壳软件)所生成的"成品"在"壳"和“需要加密的程序”之间总有一条比较明显的"分界线"。有经验的人可以在跟踪软件的运行以后找出这条分界线来。

2.壳的作用

①写好一个程序后,不想让别人随便更改其中的版权信息,我们可以加壳对其进行保护防止被修改。

②可以利用压缩壳减少程序容量,方便程序传播。

③帮助木马病毒进行免杀,我们可以直接加壳免杀,也可以脱壳对其代码进行修改从而躲过杀毒软件的查杀

二.脱壳的基础知识
首先我们要从以下几个方面对壳有一个初步的了解
1.壳是怎么装载的?

壳自从加到程序上以后就连在一起了,即对程序进行保护,防止被修改,也就是壳把程序给包裹起来了,而且原程序的数据也被压缩了。
装载的时候通常是先执行壳后再跳到真正的原程序OEP(程序入口点),这时开始运行原先没加壳的程序。
运行顺序:执行带壳文件——执行壳——执行到程序入口点——运行未加壳的程序。

2.压缩壳和加密壳

压缩壳:一般只对文件进行压缩处理,既压缩区段和一些资源压缩,以减少文件体积为目的
如:ASPack、UPX、PECompact等

加密壳:跟压缩壳正好相反,一般是牺牲减少体积为代价,对文件进行加密处理,用上各种反跟踪技术保护程序不被调试、脱壳,
如:ASProtect、Armadillo、EXECryptor等

但随着加壳技术的发展,这两类壳之间的界限越来越模糊,很多加壳软件既有压缩功能也有保护性能,而且现在很多加密壳达到壳中带肉,肉中带壳的地步了!

3. OEP (程序入口点)
Original Entry Point
即程序加壳前真正的入口点

4.脱壳的基本步骤与方法:

先查壳——选择快速脱去该壳的方法——脱壳

基本方法:单步跟踪法,ESP定律法、内存镜像法等等。

kv心迹如雨 发表于 2008-9-27 20:30

wgz001 发表于 2008-9-27 20:58

内容好像和题目有点不一样哦

qq513701092 发表于 2008-9-27 21:38

新手的话 基础要打好再学高的~~~

matao5168 发表于 2013-1-8 11:42

不详细,能把单步跟踪法,定律法,说具体吗?
页: [1]
查看完整版本: 手动脱壳