BM、KMP
KMP算法的另一个讲解:(易理解)
内核态bm kmp字符串算法使用:textsearch.c textsearch.h
另一个算法实现:
多模BM系
AC算法、AC-BM算法、WM算法
AC算法的一个介绍(最后有源码下载)
WM算法(数学描述)
※Wu-Manber 经典多模式匹配算法(推荐)
关于Snort中的MWM算法
AC自动机:
Aho_Corasick自动机匹配算法是最著名的多模式匹配算法之一。AC自动机算法分为3步:构造一颗Trie树,构造失败指针和模式匹配过程。
1.建立一颗Trie的过程比较简单(可参考源代码)
2.构造失败指针
构造失败指针的过程概括起来就一句话:设这个节点上的字母为C,沿着他父亲的失败指针走,直到走到一个节点,他的儿子中也有字母为C的节点。然后把当前节点的失败指针指向那个字母也为C的儿子。如果一直走到了root都没找到,那就把失败指针指向root。
3.模式匹配过程
AC自动机的一篇英文文档,和几道题:
AC自动机数学描述:
AC自动机基础介绍:
一个AC自动机的算法实现和解释:
字符串多模匹配算法之AC自动机理解心得
WAF(Web Application Firewall)中的多模式匹配算法论文(有些相关论文的名字)
用模式串首字符做hash表方法:(单纯用hash表)
cublog一个博客,关于多模式匹配的,c#:
snort相关:
一个专门关于snort的blog:(还有些不错的文章,有空看看)
阅读(1128) | 评论(0) | 转发(0) |