suricata 开源工具学习-规则 关键字开发应用

suricata提供了组件式的开发方式,在SigTableSetup注册所有规则关键字。

通过接口可以看出,sigmatch_table变量为所有规则关键字的实例(可以作为gdb的调试参数)

文件

规则关键字的编译文件命名格式detect-xx.c detect-xx.h

生成文件

下载对应suricata主干版本的工具,本教程使用4.1.x版本,github地址: https://github.com/OISF/suricata/tree/master-4.1.x

解压完成后的路径结构

scripts目录里就有生成关键字和协议的脚本,我们执行工具+关键字(自己diy)名称

/bin/bash scripts/setup-simple-detect.sh test

结果是这样的代表成功,让我们编译即可。

我们把生成的文件拿到编译环境中(这里生成后,也可以在script版本中使用,因为他是裁剪的所以我还是用主干

这是生成的文件

复制进我们自己编译环境的src目录中。

编译

如何生效模板(成功编译)

  • Makefile编译:src/Makefile 向am_suricata_OBJECTS成员中加入生成的文件

  • 新增规则ID:每个规则拥有自己的index存在于sigmatch_table这个线性表里面。坐标声明在detect-engine-register.h文件中。加入DETECT_TEST宏
  • 注册接口:在detect-engine-register.c中加入生成文件关键字的注册接口

在这里还要添加对应头文件

        

编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强壮的向阳花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值