简单修改木马壳头竟然骗过卡巴斯基

   “小样,你以为你穿了马甲我就不认识你了?”这句台词耳熟能详。现在用户用这句话来形容反病毒厂商的脱壳技术。这项技术的产生与病毒程序编写者使用的“加壳”技术密切相关。

众所周知,所谓“加壳”就是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变,以达到缩小文件体积或加密程序编码的目的。运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。

面对病毒编写者为其病毒“加壳”的问题,反病毒厂商自然而然地采用“脱壳”技术。脱壳的一般流程包括,查壳、寻找OEP(入口点,防止被破解)、Dump(卸出)、修复等步骤。目前,脱壳能力强弱则成为杀毒软件查杀病毒能力如何的重要衡量指标。

病毒编写者与反病毒厂商之间新一轮博弈在“加壳”与“脱壳”两个共生技术之间展开了。

在众多反病毒产品中,卡巴斯基在用户口碑相当不错,很多用户都说卡巴司基的虚拟机脱壳技术很强。然而笔者仅仅对通用的“加壳”步骤进行了小小的调整,却有了惊人的发现——仅通过简单的壳头修改,卡巴大叔竟然无语了。

笔者随便在网络上下了一个国外的下载者Deception4.0(以下简称DT)。卡巴是杀它的,不然测试就没法进行了。虽然只修改了加在DT上的9,但是按照这种方式加在其他的可执行文件上卡巴也是不报毒的,其中修改后的程序保证了程序的可再运行,不然这种修改是无意义的测试。开始操作,下面准备了八个最常见的壳。

一、首先对NSPACK3.6的测试

用OD载入被加过NSPACK壳的DT,复制出前十几行,如下(蓝色加粗是要被修改的部位,以下格式如一)
    004CF302     E8 00000000      call 复件_(2).004CF307
    004CF307     5D               pop ebp
    004CF308     83C5 F9          sub ebp,7
    004CF30B     8D85 0CFFFFFF    lea eax,dword ptr ss:[ebp-F4]
    004CF311     8338 01          cmp dword ptr ds:[eax],1
    004CF314     0F84 47020000    je 复件_(2).004CF561
    004CF31A     C700 01000000    mov dword ptr ds:[eax],1
    004CF320     8BD5             mov edx,ebp
    004CF322     2B95 A0FEFFFF    sub edx,dword ptr ss:[ebp-160]
    004CF

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwfff.html