飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4746|回复: 7

全面剖析加壳病毒 将其一网打尽

[复制链接]

该用户从未签到

发表于 2006-12-28 15:06:31 | 显示全部楼层 |阅读模式
(一)壳的概念



  作者编好软件后,编译成exe可执行文件。 1.有一些版权信息需要保护起来,不想让别人随便改动



,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。 2.需要把程序搞的小一点



,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩, 3.在黑客界给木马等软件



加壳脱壳以躲避杀毒软件。实现上述功能,这些软件称为加壳软件。



  (二)加壳软件最常见的加壳软件



  ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK ;PETITE NEOLITE



  (三)侦测壳和软件所用编写语言的软件



  因为脱壳之前要查他的壳的类型。



  1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强)。



  2.侦测壳和软件所用编写语言的软件language.exe(两个功能合为一体,很棒),推荐



language2000中文版(专门检测加壳类型)。



  3.软件常用编写语言Delphi,VisualBasic(VB)---最难破,VisualC(VC)。



  (四)脱壳软件



  软件加壳是作者写完软件后,为了保护自己的代码或维护软件产权等利益所常用到的手段。目前有



很多加壳工具,当然有盾,自然就有矛,只要我们收集全常用脱壳工具,那就不怕他加壳了。软件脱壳



有手动脱和自动脱壳之分,下面我们先介绍自动脱壳,因为手动脱壳需要运用汇编语言,要跟踪断点等



,不适合初学者,但我们在后边将稍作介绍。



  加壳一般属于软件加密,现在越来越多的软件经过压缩处理,给汉化带来许多不便,软件汉化爱好



者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等



调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用



专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,



如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处是简单,缺点是版本更新了就没用



了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的



压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。我们知道文件的加密方式,就可



以使用不同的工具、不同的方法进行脱壳。下面是我们常常会碰到的加壳方式及简单的脱壳措施,供大



家参考: 脱壳的基本原则就是单步跟踪,只能往前,不能往后。脱壳的一般流程是:查壳->寻找OEP-



>Dump->修复 找OEP的一般思路如下: 先看壳是加密壳还是压缩壳,压缩壳相对来说容易些,一般是没



有异常,找到对应的popad后就能到入口,跳到入口的方式一般为。 我们知道文件被一些压缩加壳软件



加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方



法都不相同。



  常用脱壳工具:1、文件分析工具(侦测壳的类型):Fi,GetTyp,peid,pe-scan, 2、OEP入口查



找工具:SoftICE,TRW,ollydbg,loader,peid 3、dump工具:IceDump,TRW,PEditor,ProcDump32



,LordPE 4、PE文件编辑工具PEditor,ProcDump32,LordPE 5、重建Import Table工具:ImportREC,



ReVirgin 6、ASProtect脱壳专用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只对ASPr V1.1有效),



loader,peid(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了 (2)



ASProtect+aspack:次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业



知识,但最新版现在暂时没有办法。 (3)Upx: 可以用UPX本身来脱壳,但要注意版本是否一致,用-D



参数 (4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦 (5)Dbpe: 国内比较好的加密软件,新



版本暂时不能脱,但可以破解 (6)NeoLite: 可以用自己来脱壳 (7)Pcguard: 可以用



SOFTICE+ICEDUMP+FROGICE来脱壳 (8)Pecompat: 用SOFTICE配合PEDUMP32来脱壳,但不要专业知识



(9)Petite: 有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,



需要一定的专业知识 (10)WWpack32: 和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱



壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳  我们通



常都会使用Procdump32这个通用脱壳软件,它是一个强大的脱壳软件,他可以解开绝大部分的加密外壳



,还有脚本功能可以使用脚本轻松解开特定外壳的加密文件。另外很多时候我们要用到exe可执行文件编



辑软件ultraedit。我们可以下载它的汉化注册版本,它的注册机可从网上搜到。ultraedit打开一个中



文软件,若加壳,许多汉字不能被认出 ultraedit打开一个中文软件,若未加壳或已经脱壳,许多汉字



能被认出 ultraedit可用来检验壳是否脱掉,以后它的用处还很多,请熟练掌握例如,可用它的替换功



能替换作者的姓名为你的姓名注意字节必须相等,两个汉字替两个,三个替三个,不足处在ultraedit编



辑器左边用00补。



  常见的壳脱法:



  (一)aspack壳 脱壳可用unaspack或caspr 1.unaspack ,使用方法类似lanuage,傻瓜式软件,运



行后选取待脱壳的软件即可. 缺点:只能脱aspack早些时候版本的壳,不能脱高版本的壳 2.caspr第一



种:待脱壳的软件(如aa.exe)和caspr.exe位于同一目录下,执行windows起始菜单的运行,键入



caspr aa.exe脱壳后的文件为aa.ex_,删掉原来的aa.exe,将aa.ex_改名为aa.exe即可。使用方法类似



fi 优点:可以脱aspack任何版本的壳,脱壳能力极强缺点:Dos界面。第二种:将aa.exe的图标拖到



caspr.exe的图标上***若已侦测出是aspack壳,用unaspack脱壳出错,说明是aspack高版本的壳,用



caspr脱即可。



  (二)upx壳 脱壳可用upx待脱壳的软件(如aa.exe)和upx.exe位于同一目录下,执行windows起始



菜单的运行,键入upx -d aa.exe。



  (三)PEcompact壳 脱壳用unpecompact 使用方法类似lanuage傻瓜式软件,运行后选取待脱壳的软



件即可。



  (四)procdump 万能脱壳但不精,一般不要用 使用方法:运行后,先指定壳的名称,再选定欲脱



壳软件,确定即可脱壳后的文件大于原文件由于脱壳软件很成熟,手动脱壳一般用不到。



  三、压缩与脱壳



  现在脱壳一般分手动和自动两种,手动就是用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等几百种压缩加壳软件自动还原,彻底解除隐藏较深的病毒,避免病毒死
PYG19周年生日快乐!

该用户从未签到

发表于 2007-1-20 18:22:00 | 显示全部楼层
不错的说。。。学习了。。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-4-14 11:12:14 | 显示全部楼层
很好的东西啊不错啊。。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-4-14 13:54:03 | 显示全部楼层
不错的东西!谢谢楼主了!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-4-17 09:41:28 | 显示全部楼层
所以要学会分析病毒
最起码的大家要把汇编学好
PYG19周年生日快乐!

该用户从未签到

发表于 2007-4-30 03:32:32 | 显示全部楼层
为什么我有的可以看有的不可以看
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-2 14:35:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-11 15:51:09 | 显示全部楼层
呵呵  写得很不错啊~
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表