4、编译器
对于不加壳的样本,通常的病毒特征提取,为了保证质量,通常都会提取在代码段上,这就带来了一个隐含的问题,即编译器误报。不同的编译器生成的目标代码,会有不同的特性。有的编译器编译不同的程序,在入口处就会表现出明显不同的特性,但有的编译器则在入口之后,有一个相对长的相似部分。
如果提取在这个相似部分上,可能会导致反病毒软件误报。通常对于主流编译器,反病毒厂商都会有一个基本的提取原则或者禁忌。但还有一些覆盖率不高、用户较少的边缘开发工具,反病毒厂商对此搜集的则未必齐全。
在编译器这里需要说明的是,有时误报源于壳与编译器的组合,如果一种壳不能脱掉的话,对于壳的特征提取往往会有一些经验方法,但那些编译结果代码相似段较长的编译器编译出来的不同程序,用壳压缩过之后,可能还会出现大量的相似部分。如果提取在这个位置上依然会产生误报。