libnids介
转自:http://blog.chinaunix.net/uid-22832715-id-2111578.html
Libnids开发包介绍 |
Libnids是一个用于网络入侵检测开发的专业编程接口,它使用了Libpcap所以它具有捕获数据包的功能。同时,Libnids提供了TCP数据流重组功能,所以对于分析基于TCP协议的各种协议Libnids都能胜任.Libnids还提供了对IP分片进行重组的功能,以及端口扫描检测和异常数据包检测功能。 一.基本常量 1.报警类型
2.Libnids状态 在对TCP数据流进行重组时,必须考虑到TCP的连接状态,在Libnids中为了方便开发而定义了6种Libnids状态(描述的是连接的逻辑状态) #define NIDS_JUST_EST 1//表示tcp连接建立 #define NIDS_DATA 2 //表示接受数据的状态 #define NIDS_CLOSE 3 //表示tcp连接正常关闭 #define NIDS_RESET 4 //表示tcp连接被重置关闭 #define NIDS_TIMED_OUT 5 //表示由于超时tcp连接被关闭 #define NIDS_EXITING 6 //表示libnids正在退出 真正的TCP连接状态有11种 enum {
} 3.校验和,与此相关的常量定义如下: #define NIDS_DO_CHKSUM 0 //表示告诉Libnids要计算校验和 #define NIDS_DONT_CHKSUM 1//表示告诉LIbnids不需要计算校验和 二。数据结构 1.tuple4:此数据结构是Libnids中最基本的一种数据结构 struct tuple4 {
};//用于描述一个地址端口对,它表示发送方IP和端口以及接收方IP和端口 2.half_stream:此数据结构用来描述在tcp连接中一端的所有信息,可以使客户端也可以是服务端。 struct half_stream {
} 3.tcp_stream:描述的是一个TCP连接的所有信息 struct tcp_stream {
};//描述了一个TCP连接的完整信息 4.nids_prm:描述libnids的一些全局参数信息 struct nids_prm {
}; 在Libnids中用nids_prm数据结构定义了一个全局变量nids_params,其定义和初始值如下: struct nids_prm nids_params={
}在使用Libnids开发程序时,可以首先对nids_params全局变量的值进行修改,这样对整个Libnids就全部有效 5.nids_chksum_ctl:描述的是计算校验和 struct nids_chksum_ctl {
} 三.Libnids函数 1.基本函数
2.IP碎片函数
3.TCP数据流重组函数
4.UDP注册函数
利用Libnids开发的流程 用函数nids_init()进行初始化。 然后注册相应的回调函数。不同的回调函数实现不同的功能 最后利用函数nids_run()进入循环捕获数据包的状态。 |
libnids介的更多相关文章
- 介介介是一个ORM
介个是一个ORM,介个ORM基于Dapper扩展. 为什么需要一个ORM呢? 支持简单的LINQ查询 但是不能连表查询,why?why?why?为什么不能连接查询 ^.^ ok.但是就是不支持.哈哈哈 ...
- SQL Server 的 Statistics 簡介
當你要清空「資料表(table)」,或倒入大量「資料(data;record)」,或公司「資料庫(database)」改用新版本要資料大搬家…等情形,不只是要重建「索引(index)」,還應要重建或更 ...
- 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介
[源码下载] 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介 作者:webabcd 介绍不可或缺 Windows Native 之 ...
- [轉]Android Libraries 介紹 - Butter knife
原文地址 Butter Knife 簡介 Butter Knife - Field and method binding for Android views.助你簡化程式碼,方便閱讀. 使用方法 開發 ...
- split(),preg_split()与explode()函数分析与介
split(),preg_split()与explode()函数分析与介 发布时间:2013-06-01 18:32:45 来源:尔玉毕业设计 评论:0 点击:965 split()函数可以实 ...
- 用Razor語法寫範本-RazorEngine組件介紹【转——非常好,可以用它来代替NVelocity】
RazorEngine 官網網址:http://razorengine.codeplex.com 在找到RazorEngine之前曾經想過其他的方案,如T4與V8 Engine載jquery.temp ...
- 入侵检测课设之Libnids开发包
Libnids开发包介绍 Libnids是一个用于网络入侵检测开发的专业编程接口,它使用了Libpcap所以它具有捕获数据包的功能.同时,Libnids提供了TCP数据流重组功能,所以对于分析 ...
- Browser 與 Server 持續同步的作法介紹 (Polling, Comet, Long Polling, WebSocket)长连接
對 Comet 的懵懂 記得兩年多前,第一次看到 Gmail 中的 GTalk 覺得很好奇:「咦?線上聊天且是 Google 的熱門系統,只用傳統的 AJAX 應該會操爆伺服器吧?」很幸運的,當時前公 ...
- Linux Kernel 排程機制介紹
http://loda.hala01.com/2011/12/linux-kernel-%E6%8E%92%E7%A8%8B%E6%A9%9F%E5%88%B6%E4%BB%8B%E7%B4%B9/ ...
随机推荐
- B1:模板方法模式 TemplateMethod
定义一个操作中的算法骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤 应用场景: A.操作步骤稳定,而具体细节延迟到子类. UML: 示例代码: ...
- Photoshop - 描边
描边在后期的UI制作的时候会比较少用,因为有一些缺陷,可以用选取收缩 1.快捷键E + S (菜单栏-编辑-描边.photoshop cc) 2.使用图层样式进行描边(双击图层列表区域,图层缩略图的 ...
- UVA 11534 - Say Goodbye to Tic-Tac-Toe(博弈sg函数)
UVA 11534 - Say Goodbye to Tic-Tac-Toe 题目链接 题意:给定一个序列,轮流放XO,要求不能有连续的XX或OO.最后一个放的人赢.问谁赢 思路:sg函数.每一段.. ...
- zoj How Many Sets I(组合计数)
http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=4535 一个集合s有n个元素,求满足这种集合序列{s1,s2....sk}使S ...
- 【Java】Java_15 打印九九乘法表
使用For循环嵌套即可打印九九乘法表 以下是具体代码: /** * 打印九九乘法表 */ package com.oliver.test; public class TestMultiplicatio ...
- 轻量级代码生成器-OnlyCoder 第一篇
程序猿利器:代码生成器,使用代码生成器已经好几年了,增删改查各种生成,从UI到DATA层均生成过.之前有使用过动软的,T4模板等.... T4生成实体还是没有问题的,但是生成MVC视图就有点烦杂了, ...
- 02-4设置第一启动项--U盘装系统中bios怎么设置USB启动
整个U盘启动里最关键的一步就是设置U盘启动了,本教程内只是以特定型号的电脑为例进行演示,鉴于各种电脑不同BIOS设置U盘启动各有差异,所以如果下面的演示不能适用于你的电脑,建议去百度或者谷歌搜索一下你 ...
- Atitit.wrmi web rmi框架新特性
Atitit.wrmi web rmi框架新特性 1. V1d 新特性1 1.1. 增加了精确参数1 1.2. 增加了req参数,命名参数模式..1 1.3. 增加了globale 传递隐含参数r ...
- I2S与pcm的区别
I2S仅仅是PCM的一个分支,接口定义都是一样的, I2S的采样频率一般为44.1KHZ和48KHZ做,PCM采样频率一般为8K,16K.有四组信号: 位时钟信号,同步信号,数据输入,数据输出. I2 ...
- 关于angularjs在IE里的坑——F12工具打开,功能正常,关闭之后,angularjs not working
前端时间在做项目的时候,用到了angularjs,期间,发现了一个奇葩的问题,就是在IE11浏览器下,点击下方图1上箭头所示的位置,将此处的开关变为图2中箭头所示的样子,但是发觉没有反应,开关还是灰色 ...