欢迎来到天天文库
浏览记录
ID:49438271
大小:1.57 MB
页数:12页
时间:2020-03-01
《snort2.9.3预处理插件步骤整理.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Snort2.9.3预处理器开发步骤1.打开模板snort2.9.3.1/templates,查看文件:sp_template.h和sp_template.c是开发预处理插件使用的模板,spp_template.h和spp_template.c是开发预处理器使用的模板。这里使用spp_template.h和spp_template.c。2.复制spp_template.h和spp_template.c重命名,得到新的插件3.复制spp_hellosnort.c和spp_hellosnort.h到snort2.9.3.1/src/preprocessors4.修改plugbase.c文件
2、,将插件的头文件spp_hellosnort.h包含到plugbase.c中如图(63、64行)并且将插件的SetupHelloSnort()函数插入plugbase.c的RegisterPreprocessors()函数中如图(672行)1.修改spp_hellosnort.h文件,即定义初始化函数原形voidSetupHelloSnort();如图(13行)1.修改spp_hellosnort.c文件。需注意地方:1、修改引用的头文件,删除#inlcude“spp_template.h”,增加#inlcude”spp_hellosnort.h”2、增加#definePROTO_MA
3、SK0x0001(添加函数到预处理器链表是用到)3、AddFuncToPreprocList(HelloSnortFunct,PRIORITY_NETWORK,PP_HELLO_SNORT,PROTO_MASK);此信息中的PRIORITY_NETWORK为源文件/src/preprocids.h中引用(图80行)此信息中的PP_HELLO_SNORT需在源文件/src/preprocids.h中定义的最后添加如图:添加#definePP_HELLO_SNORT30(图72行)spp_hellosnort.c文件源码如下(只写出打印信息做调用参考,没有具体功能函数):/*$Id$*//
4、*SnortPreprocessorPluginSourceFileTemplate*//**Purpose:**Preprocessorsperformsomefunction*once*for*each*packet.Thisis*differentfromdetectionplugins,whichareaccesseddependingonthe*standardrules.Whenaddingaplugintothesystem,besureto*addthe"Setup"functiontotheInitPreprocessors()functioncallin*plugb
5、ase.c!**Arguments:**Thisisthelistofarguementsthattheplugincantakeatthe*"preprocessor"lineintherulesfile**Effect:**Whatthepreprocessordoes.Checkoutsomeofthedefaultones*(e.g.spp_frag2)foragoodexampleofthisdescription.**Comments:**Anycomments?**/#include#include#include6、.h>#include#include"snort_debug.h"/**Ifyou'regoingtoissueanyalertsfromthispreprocyou*shouldincludegenerators.handevent_wrapper.h*/#include"generators.h"#include"event_wrapper.h"#include"util.h"#include"plugbase.h"#include"parser.h"/**putinotherinculdesasnecessary*//**yourpreprocesso7、rheaderfilegoeshereifnecessary,don'tforget*toincludetheheaderfileinplugbase.htoo!*/#include"spp_hellosnort.h"#definePROTO_MASK0x0001/**defineanyneededdatastructsforthingslikeconfiguration*/typedefstruct_TemplateData{/*Yourst
6、.h>#include#include"snort_debug.h"/**Ifyou'regoingtoissueanyalertsfromthispreprocyou*shouldincludegenerators.handevent_wrapper.h*/#include"generators.h"#include"event_wrapper.h"#include"util.h"#include"plugbase.h"#include"parser.h"/**putinotherinculdesasnecessary*//**yourpreprocesso
7、rheaderfilegoeshereifnecessary,don'tforget*toincludetheheaderfileinplugbase.htoo!*/#include"spp_hellosnort.h"#definePROTO_MASK0x0001/**defineanyneededdatastructsforthingslikeconfiguration*/typedefstruct_TemplateData{/*Yourst
此文档下载收益归作者所有