




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章Libnet和Libnids编程技术 2 内容 LibnetLibnids 3 一 Libnet 概述Libnet是一个小型的接口函数库 主要用C语言写成 提供了底层网络数据报的构造 处理和发送功能 Libnet的开发目的是 建立一个简单统一的网络编程接口以屏蔽不同操作系统底层网络编程的差别 4 Libnet的主要特点 高层接口可移植性数据报构造数据报的处理数据报发送 5 Libnet库提供的接口函数包含15种数据包生成器和两种数据包发送器 IP层和数据链路层 提供的接口函数包括 内存管理 分配和释放 函数地址解析函数各种协议类型的数据包构造函数数据包发送函数 IP层和链路层 一些辅助函数 如产生随机数 错误报告 端口列表管理等 6 Libnet函数1 内存管理函数2 地址解析函数3 数据包构造函数4 数据包发送函数5 相关支持函数6 数据常量 7 ARP协议数据包 intlibnet build arp u shorthrdw u shortprot u shorth len u shortp len u shortop u char s ha u char s pa u char t ha u char t pa constu char payload intpayload len u char packet buf 构造ARP协议数据包 libnet build arp ARPHRD ETHER 硬件地址 ETHERTYPE IP IP地址 6 硬件地址长度 4 IP地址长度 ARPOP REPLY 操作类型 enet src 源硬件地址 ip src 源IP地址 enet dst 目的硬件地址 ip dst 目的IP地址 NULL 有效载荷 0 有效载荷大小 packet 包缓冲 9 IP协议数据包 intlibnet build ip u shortlen u chartos u shortip id u shortfrag u charttl u charprotocol u longsaddr u longdaddr constu char payload intpayload len u char packet buf 10 构造IP协议数据包 libnet build ip LIBNET IP H 首部大小 IPTOS LOWDELAY 服务类型 242 标识 0 标志 48 生存时间 IPPROTO TCP 协议 src ip 源IP地址 dst ip 目的IP地址 NULL 有效载荷 0 有效载荷大小 packet 包缓冲 11 TCP协议数据包 intlibnet build tcp u shortth sport u shortth dport u longth seq u longth ack u charth flags u shortth win u shortth urg constu char payload intpayload len u char packet buf 12 构造TCP协议数据包 libnet build tcp src prt 源端口 dst prt 目的端口 0 xa1d95 序号 0 x53 确认号 TH SYN 控制标志 1024 窗口大小 0 紧急指针 NULL 有效载荷 0 有效载荷大小 packet 包缓冲 13 Libnet的使用网络接口初始化数据包内存初始化构造所需的数据包计算数据包的校验和发送数据包关闭网络接口释放数据包内存 14 Libnet的安装 以libnet1 1 2 1为例 安装步骤为 tar zxvflibnet tar gz cdlibnet configure make makeinstall 15 二 Libnids 概述Libnids的英文全称是NetworkIntrusionDetectSystemlibrary 即网络入侵监测系统函数库 它是在前面介绍的两种C函数接口库Libnet和Libpcap的基础上开发的 封装了开发NIDS所需的许多通用型函数 Libnids支持Linux Solaris和xBSD系统平台 16 IP分片数据包为了使Libnids能接收所有的IP数据包 需要定义如下的回调函数 voidip frag func structip a packet 在调用nids init 函数初始化后 使用nids的函数进行注册 nids register ip frag ip frag func 这样回调函数ip frag func会在适当的时候由Libnids调用 参数a packet指针将指向接收到的数据报 17 TCP数据流重组要接收TCP流交换的数据 必须定义如下回调函数 voidtcp callback structtcp stream ns void param tcp stream结构提供了一个TCP连接的所有信息 tcp stream结构有一个名为nids state的字段 此字段的数值将决定tcp callback的操作 18 NIDS JUST EST 表示tcp连接建立NIDS DATA 表示接收数据的状态NIDS CLOSE 表示tcp连接正常关闭NIDS RESET 表示tcp连接被重置关闭NIDS TIMED OUT 表示由于超时tcp连接被关闭NIDS EXITING 表示libnids正在退出 19 Libnids的数据结构及函数1 数据结构Libnids库的所有数据结构及接口函数都在 nids h 头文件中声明 structtuple4 TCP连接参数 客户端和服务器端的端口号unsignedshortsource dest 客户端和服务器端的IP地址unsignedlongsaddr daddr 20 2 函数 1 基本函数intnids init void 对Libnids进行初始化voidnids run void 运行Libnids 进入循环捕获数据包状态intnids getfd void 获得文件描述符intnids next void 调用Libpcap中的pcap next 21 2 IP数据包函数voidnids register ip frag void 注册一个能够检测所有IP数据包的回调函数voidnids register ip void 定义一个回调函数 用来接收正常的IP数据包 22 3 TCP数据流重组函数voidnids register tcp void 注册一个TCP连接的回调函数voidnids killtcp structtcp stream a tcp 终止TCP连接voidnids discard structtcp stream a tcp intnum 丢弃num字节TCP数据 23 4 UDP注册函数voidnids register udp void 注册一个分析UDP协议的回调函数 回调函数的类型定义如下 voidudp callback structtuple4 addr char buf intlen structip iph
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考专业(建筑工程)混凝土结构设计-结构力学(一)参考题库含答案解析(5套)
- 网咖安全知识培训课件
- 初中英语游戏化教学设计与实施方案
- 产品建筑拍摄方案设计(3篇)
- 网吧收银基础知识培训
- 创新压迫疗法效果分析-洞察及研究
- 2025年学历类自考专业(小学教育)心理卫生与心理辅导-教育原理参考题库含答案解析(5套)
- 城市轨道交通车站装修施工进度评估报告2025
- 4.3.1 等比数列的概念(第1课时)(教学设计)高二数学选择性必修第二册同步高效课堂(人教A版2019)
- 2025年学历类自考专业(学前教育)教师职业道德与专业发展-学前教育史参考题库含答案解析(5套)
- 2025年足球裁判三级试题及答案
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
- 2025年特种设备检验检测项目合作计划书
- 安全生产投入费用明细
- 2025年司机三力考试题库及答案
- 铁路动态设计管理办法
- 奔驰GL350GL450GL550中文版说明书
- 智能微电网应用技术课件
- 泌尿外科围手术期护理
- 光谷华科附小数学试卷
- 大学班助培训
评论
0/150
提交评论