用于反恶意软件代码的类似 Aho-Corasick 的算法
Posted
技术标签:
【中文标题】用于反恶意软件代码的类似 Aho-Corasick 的算法【英文标题】:Aho-Corasick-like algorithm for use in anti-malware code 【发布时间】:2011-11-04 18:32:48 【问题描述】:有没有像Aho-Corasick这样的算法,可以同时匹配一组模式,适用于反恶意软件比较?所有已知的商业杀毒软件都使用 Aho-Corasick 算法吗?
Aho-Corasick 算法相对于Boyer-Moore 有哪些优势?
【问题讨论】:
请记住,大多数商业反恶意软件工具可能使用的不仅仅是精确的字符串匹配,在这种情况下,这两种算法都不是正确的答案。 是的,我的意思是没有启发式和人工智能技术的标准比较过程。 但是 Aho-Corasick 作为一种有限状态方法,可以通过一些基本的自动机理论扩展到模糊匹配。确定如何加权字典是困难的部分。 @larsmans 您是否有关于如何将其扩展到模糊匹配的参考资料?如果ClamAV
扩展了算法,你知道吗?
@Adban:Aho-Corasick 构造了一个有限状态机,FA 操作的整个代数都适用于该机。想到的参考资料是 Kornai 的语言的扩展有限状态模型、Mehryar Mohri 的论文和 Jurafsky & Martin 的语音和语言处理,前几章。
【参考方案1】:
Boyer-Moore:用于在另一个目标字符串中搜索一个字符串Aho-Corasick:用于同时搜索多个模式
因此,如果您想一次同时搜索大量模式,那么 Aho-Corasick 的优势是最佳选择。
Rabin-Karp字符串搜索也可以匹配多个模式。
【讨论】:
人们普遍认为 Aho Corasick 是最优的吗?我的意思是如果你只做一个查询肯定是这样,但如果你做很多,可能没有更有效的数据结构吗?以上是关于用于反恶意软件代码的类似 Aho-Corasick 的算法的主要内容,如果未能解决你的问题,请参考以下文章