OPT、FPL分别是什么?

/**申请一个规则选项对象*/ /**为该规则选项设置一些基础属性*/ /**设置默认状态*/ /**如果该规则没有规则选项*/ /**没有规则选项时但snort又需要规则选项中的sid时报错*/ /**实际是规则选项保留指向规则头的指针,这样就构成了整个规则对象*/ /**将该规则的gid 和sid 构成一个id对象存放在ruleIndexMap的一个数组中,而存放位置下标作为返回值*/ else /**有规则选项,解释规则选项*/ /**字符数组大小为解析规则选项的预制回调函数个数*/ /**去掉首尾括号*/ /**提取规则选项条目*/ /**有的键值对应的数据只能获取一次,如果多次发现该键则报错*/ /**若果键没有对应的值且该键需要参数则错误*/ /**调用键对应的回调函数进行处理*/ /**标记该键已获取过一次*/ /**解析规则选项的回调函数中,部分必要的基础数据解析使用的是 * rule_options中的单元,但更多的辅助单元是以插件方式注册的, /**先检查是否是探测类型的插件*/ /**遍历所有规则选项解析插件*/ /**调用该插件解析该单元*/ /**如果该插件试探查类插件将名字备份*/ /**如果不是探测类型的插件,再来检测他是否是预处理的插件*/ /**获取该关键字对应的预处理插件*/ /**初始化该插件*/ /**将该预处理处理报文的部分加入该规则选项实体持有的回调链中*/ /**这一部分代码是对自检和善后处理*/ /** 建立起规则选项实体到规则头部实体的映射*/ /** 保存规则的gid 和 sid, 返回两个数据构成的对象在存放该对象集合的数组中的位置*/ /**更新该规则选项所拥有的探测计数*/ /**更新总的规则选项计数*/ /**如果该规则选项是探测型的,则增加探测规则计数*/ /**如果该规则选项是预处理类型的则增加预处理计数*/ /**向该选项节点的规则选项回调链表中追加一个尾部标志*/ /**这两个主要是针对字串的模式匹配,后续专门分析*/ /**启用阀值时的一些检测不用太关注*/ * 不同的是当发现其中有键完全相同的数据时的处理 * 1.第一个函数会将该otn链接在sfgash查到的重复otn的一个专有链表中 * 2.第二个则会直接报错 /**根据关键字获取预处理插件*/ /**因为预处理插件会注册多个函数,所以使用PreprocessorOptionInfo管理一个预处理插件的所有回调接口*/ /**这是用来获取数据的指针*/ /**这里再次利用关键字获取到该预处理插件 /**注意, 在初始化该插件是允许返回一个数据,这里将该数据使用PreprocessorOptionInfo保存*/ /**将该插件的功能函数(该函数会解析报文数据)加入该规则选项的opt_func链表中*/ /**将fp1关联生成他的预处理器*/ /**这要是将初始化该插件时返回的数据保存在hash表中*/ /**将插件的回调函数加入该规则选项的opt_func链表中*/ /**指向最后一个被加入的回调函数**/ /**实际就这里最关键,这里建立起规则选项实体到规则头部实体的映射*/
}

我要回帖

更多关于 哪与那分别是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信