用于反恶意软件代码的Aho-Corasick类算法

6

是否有像Aho-Corasick这样的算法,可以同时匹配一组模式,并适用于反恶意软件比较?所有已知的商业杀毒软件是否都使用Aho-Corasick算法?

Aho-Corasick算法相对于Boyer-Moore算法有哪些优势?


2
请记住,大多数商业反恶意软件工具可能使用的不仅仅是精确字符串匹配,因此这两种算法都不是正确答案。 - Billy ONeal
是的,我的意思是标准比较过程,没有启发式和人工智能技术。 - Aan
2
但是Aho-Corasick作为有限状态方法,可以通过一些基本的自动机理论扩展到模糊匹配。确定如何加权字典是困难的部分。 - Fred Foo
@larsmans,你有关于如何将其扩展到模糊匹配的参考资料吗?你知道ClamAV是否扩展了该算法吗? - Aan
3
Adban说,Aho-Corasick在一个有限状态机上构建了整个FA操作代数。与此相关的参考资料包括Kornai的《Extended finite state models of language》、Mehryar Mohri的论文以及Jurafsky & Martin的《Speech and Language Processing》前几章节。 - Fred Foo
1个回答

7

Boyer-Moore: 用于在目标字符串中搜索某个字符串。
Aho-Corasick: 用于同时搜索多个模式。

因此,Aho-Corasick的优势在于,如果您想要在一次搜索中同时搜索许多模式,则它是最佳选择。

Rabin-Karp 字符串搜索也可以匹配多个模式。


人们普遍认为Aho Corasick是最优的吗?我的意思是,如果你只做一个查询,那肯定是最优的,但如果你做很多查询,难道就没有更有效的数据结构了吗? - Thomas Ahle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接