SCAN如何利用KV100的反病毒分告建立病毒特征代码数据库

Author: 河北 贝东建 Date: 1995-06-16

        首先给出笔者建立的SCAN和KV100两种消毒软件的病毒特征码库具体例子:
        SCAN软件
        #New Virus
        "8E C0 B9 ? 02 33 FF *(32) B8 88" CMOS设置破坏者or Trill/颤动声Virus[CMOS]  ([]内为病毒名称的缩写)
        kv100软件
        "8E C0 B9 ?? 02 33 FF %% B8 88"
        Found(CMOS设置破坏者)or Trill/颤动声Virus!用KV100.EXE清除!
        仔细分析SCAN病毒特征代码库的格式与KV100公布的病毒特征代码格式,不难发现两者有很大的相似性,两者的相互转化的主要问题在于特征串中通配符??、%%与?、*()如何对应?
        SCAN中“?”代表一个字节,“*()”代表的字节数取决于“()”的数字大小(上例中为32字节)。“?”、“*()”可以交叉使用(“#”为注释行)。
        KV100中“??”代表一个字节,“%%”代表的字节数为32个,即在两个不变的特征码之前,如果是在32个字节内变化,可以用“%%”代表。“??”、“%%”可以交叉使用。
        通过上面的分析可知二者通配符的相互对应关系,由此KV100的病毒特征代码库为SCAN所用也就成为可能。把KV100公告中的病毒特征码中通配符“??”、“%%”替换为“?”、“*(32)”就可以为SCAN所用了。
        应该注意的是,在SCAN中对病毒的特征码的长度限制为150个字节,在KV100中每串特征码的长度可达5000字节,因此,不是所有的KV100所公布的病毒特征码,SCAN都能正确使用。
        (河北 贝东建)