基于签名的防病毒软件是否将每个当前扫描的文件与数据库中存在的所有字符串/签名相匹配?是否需要通过所有签名才能将它们与文件进行比较?比较是从“数据库到文件”完成的,而不是从“文件到数据库”完成的,是吗?
第二个问题:是否有可能先由AV引擎从文件中提取字符串/签名(整个文件不散列),然后查看该字符串是否在数据库中?这样有没有已知的AV?
最佳答案
通常,这样做的方法是使用已知病毒签名的数据库来构建状态机(通常与Aho-Corasick string search algorithm非常相似)。然后,每个要检查的文件都通过状态机运行。结果证明出奇地快,因为所有匹配的病毒签名都可以通过该文件一次找到。