网络入侵检测系统(NIDS)函数接口说明
基本函数
1、nids_register_chksum_ctl
struct nids_chksum_ctl {
u_intnetaddr;
u_int mask;
u_intaction;
u_intreserved;
};
void nids_register_chksum_ctl(struct nids_chksum_ctl*ptr,intnr)
该函数没有返回值。
参数1:ptr 表示结构体nids_chksum_ctl的列表
参数2:nr 表示列表的个数
此函数的功能是决定是否计算校验和。它是根据数据结构nids_chksum_ctl中的action进行决定的,如果所要计算的对象不在列表中,则必须都要计算校验和。
2、nids_init
int nids_init(void)
函数返回值:函数调用成功就返回1,失败就返回0。
此函数的功能是对Libnids进行初始化,这是所有设计基于Libnids的程序最开始调用的函数。它的主要内容打开网络接口、打开文件、编译过滤规则、设置过滤规则、判断网络链路层类型、进行必要的初始化工作。
TCP数据流重组函数
3、nids_register_tcp
struct half_stream
{
char state;
char collect;
char collect_urg;
char *data;
intoffset;
intcount;
intcount_new;
intbufsize;
intrmem_alloc;
inturg_count;
u_int acked;
u_int seq;
u_int ack_seq;
u_int first_data_seq;
u_char urgdata;
u_char count_new_urg;
u_char urg_seen;
u_int urg_ptr;
u_short window;
u_char ts_on;
u_char wscale_on;
u_int curr_ts;
u_int wscale;
struct skbuff *list;
struct skbuff *listtail;
};
struct tuple4
{
u_short source; //源端口
u_short dest; //目的端口
u_int saddr; //源IP
u_int daddr; //目的 IP
};
struct tcp_stream
{
struct tuple4 addr;