Snort总结-程序结构



阅读源代码后绘制,大致描述系统的主要函数调用情况图,原图visio绘制,需要可以联系。

逻辑结构图


      规则处理模块
rules.h定义了生成二维规则链表的各种类型变量的数据结构。
parser.c(h)规则解析。
detect.c(h)处理规则部信息,构造规则链表。
pcrm.c(h)构造快速匹配的规则链表的辅助函数。
fpcreate.c(h)构造快速匹配的规则链表。
fpdetect.c(h)用于快速规则匹配检测。
      预处理插件模块
保存在\preprocessors子目录中的文件。实现http解码、数据包分片检查和端口扫描检测等。
      处理插件模块
保存在\detection-plugins子目录中的文件。实现不同类型的检测规则。可以很容易的从文件名得知所实现的规则,例如:spdsizecheck.c针对的是包的数据大小,sp_icmp_type_check.c针对的是ICMP包的类型,sp_tcp_flag_check.c针对的是TCP包的标志位,还有规则选项的模式匹配文件spalem_match.c等等。
      输出插件模块
保存在\output-plugins子目录中的文件。实现输出规则,以不同的方式记录事件。例如:yslog,tcpdump等。
      日志模块
log.c(h)实现日志和报警功能。
     辅助模块
ubiBinTree.c(h)实现一个简单的二叉树。
ubi_SplayTree.c(h)实现了一个伸展的二叉树和相关的功能。
tag.c(h)实现与tag有关的高级日志操作。
vmstring.c(h)实现字符串匹配Boyer-Moore算法。
strlcatu.c(h)文件只有一个函数strlcat(dst,src,siz),实现把src字符串追加到dst的后面,siz用来限定dst的最终长度。
strlcpyu.c(h)文件只有一个函数strlcpy(dst,src,siz),实现把src字符串拷贝到dst,siz用来限定复制的长度。
snprintf.c(h)定义了一些增强的输出函数,由configure决定是否使用。
codes.c(h)定义了unicode_entry结构以及unicode_entry类型的数组。
unicode_data,该数组包含了建立unicode与ASCII码之间的映射所需的数据。
debug.c(h)定义了debug的级别和GetDebugLevel函数获取相应得Debug级别,DebugMessageFunc函数确认Debug参数变量的格式化输出。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值