病毒加壳技术与脱壳杀毒方法技术分析

互联网 | 编辑: 杨剑锋 2007-01-09 15:00:00转载 一键看全文

壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。当你想听说脱壳这个名词并试着去了解的时候,说明你已经在各个安全站点很有了一段日子了。下面,我们进入“壳”的世界吧。

压缩与脱壳

三、压缩与脱壳

现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求。而自动就稍好些,用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付。很多文件使用了一些压缩加壳软件加密过,这就需要对文件进行解压脱壳处理后,才能汉化。这种压缩与我们平时接触的压缩工具如winzip,winrar等压缩不同,winzip和winrar等压缩后的文件不能直接执行,而这种 EXE 压缩软件,EXE文件压缩后,仍可以运行。这种压缩工具把文件压缩后,会在文件开头一部分,加了一段解压代码。执行时该文件时,该代码先执行解压还原文件,不过这些都是在内存中完成的,由于微机速度快,我们基本感觉不出有什么不同。这样的程序很多,如 The bat,Acdsee,Winxfile等等。

要脱壳就应先了解常用压缩工具有哪些,这样知己知彼,如今越来越多的软件商喜欢用压缩方式发行自己的产品,如The bat!用UPX压缩,ACDSEE3.0用ASPACK压缩等。

它有以下因素:

一是:微机性能越来越好,执行过程中解压使人感觉不出来,用户能接受(给软件加壳,类似WINZIP 的效果,只不过这个加壳压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么异常。因为软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。)。 

二是:压缩后软件体积缩小,便于网络传输。

三是:增加破解的难度。首先,加壳软件不同于一般的winzip,winrar等压缩软件.它是压缩exe可执行文件的,压缩后的文件可以直接运行.而winzip,winrar等压缩软件可压缩任何文件,但压缩后不能直接运行。很多站点不允许上传可执行文件,而只能上传压缩的文件,一方面处于速度考虑,也是为了安全性考虑。用加壳软件压缩的文件就是体积缩小,别的性质没改变。还是EXE文件,仍可执行,只是运行过程和以前不一样了。压缩工具把文件压缩后,在文件开头一部分,加了一段解压代码。执行时该文件时,该代码先执行解压还原文件,不过这些都是在内存中完成的,由于微机速度快,我们基本感觉不出有什么不同。

四﹑加壳与木马

木马危害无穷,但是随着人们对各种木马知识的了解,杀毒和专杀工具的特殊照顾,使得很多木马无藏身之地,但很多高手到处卖马,号称不会被查杀。它们究竟是如何躲在我们的系统中的呢? 其实无非对木马进行“加/脱壳”。对于黑客来说,加/脱壳技术被淋漓尽致地应用到了伪装木马客户端上,目的是为了防止被杀毒软件反跟踪查杀和被跟踪调试,同时也防止算法程序被别人静态分析。最基本的隐藏:不可见窗体+隐藏文件。木马程序

采用“进程隐藏”技术: 第一代进程隐藏技术:Windows 98的后门 。第二代进程隐藏技术:进程插入,以及 其后的Hook技术之外就是跟杀毒软件对着干:反杀毒软件外壳技术了。木马再狡猾,可是一旦被杀毒软件定义了特征码,在运行前就被拦截了。要躲过杀毒软件的追杀,很多木马就被加了壳,相当于给木马穿了件衣服,这样杀毒软件就认不出来了,但有部分杀毒软件会尝试对常用壳进行脱壳,然后再查杀(小样,别以为穿上件马夹我就不认识你了)。除了被动的隐藏外,最近还发现了能够主动和杀毒软件对着干的壳,木马在加了这种壳之后,一旦运行,则外壳先得到程序控制权,由其通过各种手段对系统中安装的杀毒软件进行破坏,最后在确认安全(杀毒软件的保护已被瓦解)后由壳释放包裹在自己“体内”的木马体并执行之。对付这种木马的方法是使用具有脱壳能力的杀毒软件对系统进行保护。壳能够将文件(比如EXE)包住,然后在文件被运行时,首先由壳获得控制权,然后释放并运行包裹着的文件体。很多壳能对自己包住的文件体进行加密,这样就可以防止杀毒软件的查杀。比如原先杀毒软件定义的该木马的特征是“12345”,如果发现某文件中含有这个特征,就认为该文件是木马,而带有加密功能的壳则会对文件体进行加密(如:原先的特征是“12345”,加密后变成了“54321”,这样杀毒软件当然不能靠文件特征进行检查了)。脱壳指的就是将文件外边的壳去除,恢复文件没有加壳前的状态。

虽然很多杀毒软件的文件监控都会使程序首次运行时速度很慢。这是因为:杀毒软件对压缩加壳的exe文件监控扫描时,都要先“脱壳”。一般压缩加壳程序,可加密压缩可执行文件的代码、数据、输入表、重定位表、资源段。通常压缩后的文件大小只有原来的50%-70%,但不影响程序的正常使用和所有功能,目的是保护文件不被跟踪分析,反汇编,脱壳等。所以有时候使用某软件给木马脱壳会失败,但可换个软件试下。脱壳后重新加壳或者使用不同加壳的软件给木马加多层壳,均有可能欺骗杀毒软件,但在经过复杂的多重加壳后,检测出的结果就不一定准确了,此时就需要“adv.scan”高级扫描, pe-scan会分析出被各种加壳工具加壳的可能性。

五﹑加壳与病毒

病毒要想生存,除了增加自身的变形能力以外,还可与程序加壳压缩联系起来。我们先来看看病毒变形的目的,因为现在的反病毒软件,基于特征码检测,增加变形能力,使得特征码检测方法更加困难。那么,如果再和程序加壳技术结合起来,那么将使的单单通过添加特征码方法解毒彻底失效,解毒时,必须同时更新扫描引擎,而现在并没有通用的解壳方法。因此加壳压缩和变形结合起来,将使得反病毒厂商手忙脚乱,也使得反病毒软件用户痛苦不堪,频繁的更新,除了特征码,还有扫描引擎。给平常的病毒加个壳,比如用upx,现在通常反病毒软件,对于常用的加密加壳压缩程序,都有相应的解壳程序。效果并不好,所以如果病毒本是既是一好的变形加密加壳压缩程序,那么,目的是强迫更新扫描引擎,当然也是可以被动态解压检测出来的,只是增加了解毒的很多工作量。实际上加壳技术不仅仅用于软件保护,也可用于好的病毒。好的病毒不一定要非常快的传播速度,难于检测,难于查杀更重要一些,就像现在杀毒界的虚拟机技术,也不过是个雏形,有很多的功能并不能完全虚拟化,同时若加壳代码本身可变形,同时有多种加壳算法可供随机选择,那么就很难找出其中的规律以及关系。总之,好的杀毒软件至少应该具有的技术功能之一就是要具备压缩还原技术:对Pklite、Diet、Exepack、Com2exe、Lzexe、Cpav等几百种压缩加壳软件自动还原,彻底解除隐藏较深的病毒,避免病毒死灰复燃。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页< 上一页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑