基于特征码的病毒免杀的基本原理

基于特征码的病毒免杀的基本原理

特征码查杀原理

  • 什么是特征码

特征码,就是防毒软件从病毒样本中提取的不超过64字节且能代表病毒特征的十六进制代码。主要有单一特征码、多重特征码和复合特征码这三种类型。

  • 特征码的提取

特征码提取的思路是:首先获取一个病毒程序的长度,根据样本长度可将文件分为若干份(分段的方法在很大程度上避免了采用单一特征码误报病毒现象的发生,也可以避免特征码过于集中造成的误报),每份选取16B或32B的特征串,若该信息是通用信息或者全零字节则舍弃,认为或随机调整偏移最后重新选取。最后,将选取出来的几段特征码及它们的偏移量存入病毒库,标示出病毒的名称即可。根据这个思路可编写出特征码提取程序实现自动提取,并保存病毒记录。

  • 病毒查杀

在扫描病毒时,杀毒软件将目标文件通过模式匹配算法与病毒库中的特征码进行比对,以确定是否染毒。

  • 简要总结

在杀毒软件的病毒库里存储了大量病毒的特征码,在扫描病毒时,杀毒软件将目标文件通过模式匹配算法与病毒库中的特征码进行比对,若匹配,则进行查杀。

基于特征码的病毒免杀的基本原理

免杀的基本思想就是破坏特征码。即只要对定位后的特征码进行修改便能逃过查杀。

修改特征码的方法主要有:修改字符串大小写法、等价替换法、指令顺序调换法、通用跳转法。

许多病毒采用自动变形技术来逃避特征码检测,即所谓的多动态病毒,它在外观形态上没有固定的特征码川。病毒的多态致使对其代码段的加密能完全改变原有特征码,因此摇在零区域加入解密代码来解密,然后使用JMP指令跳回原指令代码执行,由于对某一字节执行XOR两次后可还原代码,因此可以手动加密代码,下次病毒执行时,可以解密代码并执行。致使特征码完全变样,达到免杀。

下面是一个通过加入一段花指令来改变病毒特征码的实例(花指令是一段毫无意义的指令,花指令是否存在对程序的执行结果没有影响)。
在这里插入图片描述

  • 总结
    由于杀毒软件通过提取文件的特征码在病毒库中匹配的方法扫描病毒,那么只要能够修改病毒的特征码,使其与病毒库存储的特征码不匹配,就能够实现病毒的免杀。

你可能感兴趣的:(基于特征码的病毒免杀的基本原理)