科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道“马甲”下的真相 病毒加壳与脱壳技术

“马甲”下的真相 病毒加壳与脱壳技术

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于大量的杀毒软件的出现,以及杀毒软件病毒库的不断壮大,病毒被查杀的几率也越来越大。所以有些病毒就开始通过加壳的方法来伪装自己,企图骗过杀毒软件,蒙混过关。为了做好病毒防御,我们就该了解什么是加壳?加壳的对立面是不是脱壳?如何脱壳等?

来源:论坛整理 2008年8月6日

关键字: 安全技术 安全防范 病毒

  • 评论
  • 分享微博
  • 分享邮件
  由于大量的杀毒软件的出现,以及杀毒软件病毒库的不断壮大,病毒被查杀的几率也越来越大。所以有些病毒就开始通过加壳的方法来伪装自己,企图骗过杀毒软件,蒙混过关。为了做好病毒防御,我们就该了解什么是加壳?加壳的对立面是不是脱壳?如何脱壳等?

  一 什么是壳:

  计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务,大家就把这样的程序称为“壳”了。从功能上抽象的讲,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。 软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。

  作者编好软件后,编译成exe可执行文件。有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。 加壳就需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩。而在黑客界中“壳”则被用在保护病毒,给木马等软件加壳脱壳以躲避杀毒软件,给网民带来很多的麻烦。

  二 病毒加壳:

  在好莱坞间谍电影里,那些特工们往往以神奇莫测的化妆来欺骗别人,甚至变换成另一个身份,国内对于这种伪装行为有个通俗的说法——“穿马甲”。而这种正与邪的争斗已经延伸到了病毒领域,很多病毒作者通过给病毒“穿马甲”、甚至穿多个“马甲”的方式,躲避杀毒软件的查杀,这种技术就是“加壳”。 病毒作者可以通过给老病毒加壳,大批量制造出杀毒软件无法识别的新病毒。所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。

  既然加壳后的病毒不易被发现,那么如何判断一个可执行文件是否被加了壳呢?

  有一个简单的方法(对中文软件效果较明显)。用记事本打开一个可执行文件,如果能看到软件的提示信息则一般是未加壳的,如果完全是乱码,则多半是被加壳的。我们还可以使用一款叫做Fileinfo的工具来查看文件具体加的是什么壳。目前,较常见到的壳有“UPX”、“ASPack”、“PePack”、“PECompact”、“UPack”、“NsPack”、“免疫007”、“木马彩衣”等等。

  病毒加壳的原理很简单,现在黑客营中提供的多数病毒中,很多都是经过处理的,而这些处理就是所谓的加壳。我们知道当一个普通的EXE程序生成好后,很轻松的就可以利用诸如资源工具和反汇编工具对它进行修改,但如果程序员给EXE程序加一个壳的话,那么至少这个加了壳的EXE程序就不是那么好修改了,如果想修改就必须先脱壳。病毒加壳后也是同样的道理,我们也必须先为病毒脱壳。

  三 脱壳方法:

  目前有很多加壳工具,既然有矛,自然就有盾,只要我们收集全常用脱壳工具,那就不怕病毒加壳了。脱壳主要是通过工具来脱壳。

  常用脱壳工具有:

  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脱壳

  看过本文,相信你对“壳”已经有了一定的了解,对于可疑的.exe文件,大可用上述方法去检查他是否加壳,提高安全意识。别让“穿马甲”的病毒突破我们的防线。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章