⑴ 什么是软件加壳
加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩,
改变其原来的特征码,隐藏一些字符串等等,使一些资源编辑软件不能
正常打开或者修改。类似WINRAR的效果,只不过这个压缩之后的文件,
可以独立运行,解压过程完全隐蔽,都在内存中完成。
解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才
能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东东。
软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳
后的软件运行速度的差别。
当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是
这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存
中解开,解开后,以后的就交给真正的程序。所以,这些的工作只是在内
存中运行的,是不可以了解具体是怎么样在内存中运行的。
通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一
些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时
候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程
序被人跟踪调试,防止算法程序不想被别人静态分析。加密代码和数据,
保护你的程序数据的完整性。不被修改或者破解。
A壳和C壳算法不同。
⑵ 什么叫加壳怎么样加壳
最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件 RCOPY 3 的作者熊焰先生。在几年前的 DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。但毕竟在当时,甚至现在这样的人也不是很多,所以当 RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成 EXE 可执行文件这项,就应该是世界首创了。但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的 RO97),这个想法也在后来和作者的面谈中得到了证实。在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有: UNKEY、MSCOPY、UNALL .... 等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。
解密(脱壳)技术的进步促进、推动了当时的加密(加壳)技术的发展。LOCK95和 BITLOK 等所谓的“壳中带籽”加密程序纷纷出笼,真是各出奇谋,把小小的软盘也折腾的够辛苦的了。正在国内的加壳软件和脱壳软件较量得正火红的时候,国外的“壳”类软件早已经发展到像 LZEXE 之类的压缩壳了。这类软件说穿了其实就是一个标准的加壳软件,它把 EXE 文件压缩了以后,再在文件上加上一层在软件被执行的时候自动把文件解压缩的“壳”来达到压缩 EXE 文件的目的。接着,这类软件也越来越多, PKEXE、AINEXE、UCEXE 和后来被很多人认识的 WWPACK 都属于这类软件,但奇怪的是,当时我看不到一个国产的同类软件。
过了一段时间,可能是国外淘汰了磁盘加密转向使用软件序列号的加密方法吧,保护 EXE 文件不被动态跟踪和静态反编译就显得非常重要了。所以专门实现这样功能的加壳程序便诞生了。 MESS 、CRACKSTOP、HACKSTOP、TRAP、UPS 等等都是比较有名气的本类软件代表,当然,还有到现在还是数一数二的,由台湾同胞所写的 FSE 。其实以我的观点来看,这样的软件才能算是正宗的加壳软件。
在以上这些加壳软件的不断升级较劲中,很多软件都把比较“极端”技术用了上去,因为在这个时候 DOS 已经可以说是给众高手们玩弄在股掌之间了,什么保护模式、反 SICE 、逆指令等等。相对来说,在那段时间里发表的很多国外脱壳程序,根本就不能对付这么多的加壳大军,什么 UPC、TEU 等等都纷纷成为必防的对象,成绩比较理想的就只有 CUP386 了,反观国内,这段时间里也没了这方面的“矛盾斗争”。加壳软件门挥军直捣各处要岗重地,直到在我国遇到了 TR 这个铜墙铁壁以后,才纷纷败下阵来各谋对策,但这已经是一年多以后的事情了。我常想,如果 TR 能早两年“出生”的话,成就肯定比现在大得多,甚至盖过 SICE 也有可能。TR 发表的时候 WIN95 的流行已经成为事实,DOS 还有多少的空间,大家心里都清楚。但话又说回来, TR 的确是个好软件,比起当年的 RCOPY3 有过之而无不及,同时也证明了我们中国的 CRACK 实力(虽然有点过时)。这个时候,前面提到过的 FSE 凭着强劲的实力也渐渐的浮出了水面,独领风骚。其时已经是 1997 年年底了,我也走完了学生“旅程”。工作后在CFIDO 的 CRACK 区认识了 Ding-Boy ,不久 CRACK 区关了,我从此迷上了 INTERNET,并于98年6月建起了一个专门介绍“壳”的站台: http://topage.126.com ;;,放上了我所收集的所有“壳”类软件。在这段时间里,各种“壳”类软件也在不段的升级换代,但都没什么太大的进展,差不多就是 TR 和众加壳软件的版本数字之争而已。
1998年8月,一个名为 UNSEC (揭秘)的脱壳软件发表了,它号称可以脱掉98年8月以前发表的所有壳。我测试之后,觉得并没传闻中的那么厉害,特别是兼容性更是令我不想再碰它。 Ding-Boy 给这个软件的作者提了很多建议,但寄去的 EMIAL 有如泥牛入海,可能是一怒之下吧,不久 Ding-Boy 的 BW (冲击波)就诞生了。这个使用内存一次定位生成 EXE 文件(后来放弃了)的脱壳软件,在我的站台公开后,得到了很多朋友们的肯定。要知道,从RCOPY 3 开始,绝大部分的脱壳软件都是要两次运行目标程序来确定 EXE 的重定位数据的。BW 的这一特点虽然有兼容性的问题,但也树立了自己的风格、特色。经过几个月的改善, BW 升级到了 2.0 版本,这个版本的推出可以说是 BW 的转折点,因为它已经是一个成熟、稳定脱壳软件了,它可以对付当时(现在)大多数的壳,包括当时最新的 FSE 0.6 等。更重要的是这个版本把选择壳的和软件“分界线”这个最令新手头疼的步骤简化到不能再简化的地步,使更多的朋友接受了它。另外,能加强 BW 功力的 CI 模式也是其它脱壳软件没有的东西。最近,BW 发表了最新的 2.5 BETA2 版本,增强了一些方面的功能,因它竟然可以脱掉号称最厉害的磁盘加密工具 LOCKKING 2.0 的加密壳,因而进一步奠定了它在“脱壳界”的地位。说到最新,就不能不提 GTR、LTR、EDUMP、ADUMP、UPS、UPX、APACK 这几个国外的好软件了,它们每个都有自己的特色,可以说都是当今各类“壳”中的最新代表了。(这些软件和详细介绍请到我的主页查阅)
由于 WINDOWS 3.1 只是基于 DOS 下的一个图形外壳,所以在这个平台下的“壳”类软件很少,见过的就只有像 PACKWIN 等几个有限的压缩工具,终难成气候。
可能是 MICROSOFT 保留了 WIN95 的很多技术上的秘密吧,所以即便是 WIN95 已经推出了 3 年多的时间,也没见过在其上面运行的“壳”类软件。直到 98 年的中期,这样的软件才迟迟的出现,而这个时候 WIN98 也发表了有一段日子了。应该是有 DOS 下的经验吧,这类的软件不发表由自可,一发表就一大批地的冲了出来。先是加壳类的软件如: BJFNT、PELOCKNT 等,它们的出现,使暴露了 3 年多的 WIN95 下的 PE 格式 EXE 文件得到了很好的保护。大家都应该知道现在很多 WIN95 下的软件都是用注册码的方法来区分、确定合法与非法用户的吧,有了这类加壳软件,这种注册方法的安全性提高了不少,如果大家也有自己编的 WIN95 程序,就一定要多留意一下本类软件了。接着出现的就是压缩软件了,因为 WIN95 下运行的 EXE 文件“体积”一般都比较大,所以它的实用价值比起 DOS 下的压缩软件要大很多,这类的软件也很多,早些时候的 VBOX、PEPACK、PETITE 和最近才发表的 ASPACK、UPX 都是其中的佼佼者。在 DOS 下很流行的压缩软件 WWPACK 的作者也推出了对应 WIN95 版本的 WWPACK32,由于性能并不是十分的突出,所以用的人也不太多。由于压缩软件其实也是间接给软件加了壳,所以用它们来处理 EXE 也是很多软件作者喜欢做的事情,最近新发表的很多软件里都可以看到这些加壳、加压缩软件的名字了。有加壳就一定会有脱壳的,在 WIN95 下当然也不例外,但由于编这类软件比编加壳软件要难得多,所以到目前为止,我认为就只有 PROCDUMP 这个软件能称为通用脱壳软件了,它可以对付现在大多数的加壳、压缩软件所加的壳,的确是一个难得的精品。其它的脱壳软件多是专门针对某某加壳软件而编,虽然针对性强、效果好,但收集麻烦,而且这样的脱壳软件也不多。前些时候 TR 作者也顺应潮流发表了 TR 的 WIN95 版本: TRW ,由现在的版本来看可以对付的壳还不多,有待改进。
BW 的作者 Ding-Boy 最新发表了一个 WIN95 的 EXE 加壳软件 DBPE 。虽然它还不太成熟,但它可以为软件加上使用日期限制这个功能是其它加壳软件所没有的,或者以后的加壳软件真的会是像他说的那样可以:加壳和压缩并重、并施;随意加使用日期;加上注册码;加软件狗(磁盘)保护;加硬件序列号判别;加... 。