2011-10-06 56 views
1

基于签名的AntiVirus软件是否将每个当前扫描的文件与数据库中存在的所有字符串/签名匹配?是否需要通过所有签名才能将它们与文件进行比较?比较是从“数据库到文件”而不是从“文件到数据库”完成的,这是真的吗?AntiViruses的字符串/签名比较

第二个问题:是否有可能通过AV引擎首先从文件中提取字符串/签名(不是整个文件的哈希),然后查看该字符串是否在数据库中?有没有已知的AV这样做?

回答

2

典型的做法是使用已知病毒签名的数据库来构建状态机(通常与Aho-Corasick string search algorithm非常相似)。然后,每个要检查的文件都在状态机中运行。事实证明这很快,因为所有匹配的病毒签名都可以通过单个文件找到。