局域网监听软件的设计与实现_第1页
局域网监听软件的设计与实现_第2页
局域网监听软件的设计与实现_第3页
局域网监听软件的设计与实现_第4页
局域网监听软件的设计与实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计(论 文) 设计(论文)题目: 局域网监听软件的设计与实现 学 院 名 称: 电子与信息工程学院 专 业: 计算机科学与技术 班 级: 10 计科(2) 姓 名: XXXX 学 号 XXXXXXXX 指 导 教 师: XXXX 职 称 教授 定稿日期:2014 年 4 月 30 日 局域网监听软件的设计与实现 摘摘 要要 互联网给我们的社会和个人带来了太多的便利和益处。社会运作 包括公共设施及其服务、政府运作和个人生活,已经越来越离不开电 脑和互联网了。这使得互联网安全这一潜在威胁迅速、悄然但又爆炸 式地产生了。公民个人的隐私、通讯和表达自由受到直接冲击。从邮 件、电话到电子文档和其他资料,乃至行踪、消费记录等,我们似乎 可以变成透明。最近沸沸扬扬的棱镜门和 Heartbleed 漏洞更是为世 人敲响了网络安全的警钟。对局域网内数据监听系统的研究,对于维 护网络的稳定性和解决网络安全问题有着重要的意义,它可以用来帮 助诊断网络中的路由设备,其他的网络连接设备,查看网络上数据报 的传送情况,利于网络管理员的管理与维护。 本局域网监听软件主要采用 WinPCap 开发工具和 C+语言在 VisualStudio2008 编译器下进行开发。软件实现了对局域网内的数 据进行捕获以及过滤,并分析出每一协议层的传输数据的主要字段和 内容。之后再将其显示,同时进行动态更新。经过长时间的使用,证 明该软件运行可靠稳定,捕获数据准确,易于使用。 关键词:互联网安全,局域网监听,WinPCap,多协议分析 DESIGN AND IMPLEMENTATION OF LAN MONITORING SOFTWARE ABSTRACT Internet has brought much convenience and benefits to our everyday life.Social functioning, including public facilities and services, government operations and personal life has become increasingly dependent on computers and the Internet. This makes the potential threat to Internet security quickly, quietly but explosively generated. The privacy of individual citizens, freedom of communication and expression direct impact. From e-mail, telephone to electronic documents and other information, as well as the whereabouts of consumer records, it seems that we can become transparent. Recent uproar the US surveillance program PRISM and Heartbleed loophole is for the world sounded the alarm for network security. Research on data monitoring system in LAN, plays an important role in maintainingthe stability of the network and solve the problem of network security, it can be used to help diagnose routing equipment in the network, the other network connection device, check the transmission of the data on the network,management and maintenance to the network administrator. This LAN monitoring software developed with WinPcap, using the C + + language compiler under VisualStudio2008.This software is mainly realizes in monitoring the network ,data analyzes and analyze the main field data for each protocol layer.After that,it shows with carries on the dynamic renewal. After a long period of use, the software is reliable and stable, also able to accurately capture data and easy to use. Key Words: internet security,lan monitoring,winpcap,multi-protocol analysis 目录目录 摘摘 要要.I ABSTRACT .II 目录目录.IV 第第 1 章章绪论绪论.6 1.1研究目的和意义.6 1.2局域网监听技术的发展.7 1.2.1 局域网监听技术原理.7 1.2.2 局域网监听的实现方法.7 第第 2 章章网络传输技术概述网络传输技术概述.9 2.1网络传输模型.9 2.1.1 TCP/IP模型.9 2.1.2 OSI模型.11 2.1.3 TCP/IP模型和OSI模型的关系.12 2.2主要数据包结构.14 2.2.1 以太网帧格式.14 2.2.2 IP数据包格式.15 2.2.3 TCP数据报.16 2.3WINPCAP简介.18 2.3.1 WinPCap主要函数.18 2.3.2 WinPCap过滤器表达式.20 第第 3 章章需求分析需求分析.22 3.1用户需求.22 3.2功能需求.22 3.3性能需求.23 第第 4 章章系统设计系统设计.24 4.1开发环境.24 4.2系统结构.24 4.2.1 结构描述.24 4.2.2 系统架构.24 4.3设计思路.25 4.4基于 WINPCAP开发应用程序.25 4.5程序流程.26 第第 5 章章系统实现系统实现.28 5.1总体设计.28 5.2模块设计.29 5.2.1 网卡初始化.29 5.2.2 数据包捕获.29 5.2.3 数据包分析.33 5.2.4 过滤器模块设计.35 第第 6 章章总结总结.38 参考文献参考文献.39 致谢致谢.40 作品(软件)使用说明书作品(软件)使用说明书.41 第第 1 1 章章 绪论绪论 1.11.1研究目的和意义研究目的和意义 随着计算机技术的发展,网络与我们的生活紧密相连,甚至已经成为生活中 的一部分,然而越来越多的网络攻击正在一步步侵犯着我们的网络安全。黑客们 很容易截获在局域网中传输的数据包,通过对数据包进行分析,就能得到数据包 内的重要信息。通过这种方式,我们使用的密码,发送的邮件等私密信息无疑就 暴露在别人面前,给个人隐私等信息带来很大的安全威胁!当然,我们也可以利 用网络监听技术,获取黑客入侵的信息,甚至可以提前做好预防工作,这样对保 护我们的信息安全无疑是一个获得了巨大的先机。因此,了解网络监听的实现原 理就显得尤为重要1。 网络监听是信息安全领域内一项非常重要和使用的技术,他的起源是网络管 理员为了诊断网络故障的需要,而监听网络中传输的数据信息。在网络管理和维 护中,网络管理和维护人员常常利用网络监听技术监控网络当前的信息状况,网 络流量,进行网络访问统计分析等等。除此之外,网络监听还可以发现网络中存 在的安全隐患,及时采取相应措施,不让黑客有机可乘。但在现实生活中,网络 监听技术往往能在黑客手中发挥更大的作用,它们利用网络监听技术窃取用户的 私密资料。对于普通用户来说,被监听也许只是泄露个人隐私资料;而对于金融 机构等资料敏感用户,恶意的网络监听更会带来难以弥补的金钱和信用损失。 综上所述,对于局域网数据监听系统的研究,有利于维护计算机网络安全。 对于网络管理者来说,局域网监听可以识别网络中的路由设备,查看局域网中传 输的数据包,统计网络的流量,并可以侦测到非法的入侵,找出网络中潜在的问 题等。同时,管理员还可以利用网络监听软件解决一些网络故障,比如网络延时, 丢包等问题。如果不凭借监听软件,就无法准确的知道问题出在何处。在大型的 网络中,它的存在对系统管理员是非常重要的,凭借从局域网监听软件获取的信 息,系统管理员可以了解网络中出现的问题,给出相应的解决方法,这给网络环 境的管理与维护提供了非常宝贵的信息。 1.21.2局域网监听技术的发展局域网监听技术的发展 1.2.1 局域网监听技术原理 局域网监听的基本原理是数据在局域网环境下进行传输时,包含物理地址的 帧数据能送达到线路上的每一台主机。当数据到达一台主机的网卡时,在正常情 况下,网卡读取数据帧,并进行检查,如果数据帧中所包含的物理地址和本机的 物理地址或者广播地址相同,则将该数据帧交由 IP 层进行处理,否则就将该数 据帧丢弃。 当主机将该网卡置于混杂模式时,所有的数据帧都将交由 IP 层进行处理, 并不会发生因物理地址不符而将该数据帧丢弃的情况。也就是说,在局域网环境 下同一根线缆上传输的所有数据都会被该主机接收到,进而可以将所有接收到的 数据进行分析,从而得出用户所需要的数据23。 1.2.2 局域网监听的实现方法 要在局域网中监听, 就需要主机工作在监听模式下,需要向网络接口发出 I/O 控制命令,将其设置成监听模式。在 Unix 系统中,需要超级用户权限来发送命 令。但在 Windows 系统中,就没这个限制。这种工作并不复杂,目前有太多的 工具软件可以做到这一点,在很多黑客网站或者从事网络安全管理的网站都能找 到。 在 Unix 环境下,监听工具非常多,如 Sniffit、Snoop、Dsniff 等都是常见的, 他们都免费发布源代码,可以进行研究。而在 Windows 环境下,常用的网络监 听工具当然是著名的 Sniffer pro 了,实际上很多人都是用它在 Windows 环境下抓 包来分析4。 (1) Sniffit: Sniffit 可以运行在 Solaris、SGI 和 Linux 等平台上,是由 Lawrence Berkeley Laboratory 开发的一个免费的网络监听软件。举例说明: # Sniffit- a- p21- t xxx. xxx. xxx. xxx 监听流向机器 xxx. xxx. xxx. xxx 的 21 端口( FTP)的信息,并以 ASCII 显示5。 (2)Sniffer pro: 通过对用监听工具捕获的数据帧进行分析,可以很容易的发现敏感信息和重 要信息。例如,在使用 Sniffer pro 对局域网进行一段时间的监听后,分析所得的 数据,就能直接看到一些在监听期间该网用户名和口令,都以明码显示,由此也 可以看到局域网监听技术如果用于不正当的目的会有多大的危害6。 第第 2 2 章章 网络传输技术概述网络传输技术概述 2.12.1网络传输模型网络传输模型 计算机网络采用两种传输模型进行传输:协议模型和参数模型。协议模型提 供了与特定协议族结构精确匹配的模型。TCP/IP 模型描述了 TCP/IP 协议族中每 个协议层实现的功能,因此属于协议模型。 参考模型为各类网络协议和分服务之间保持一致性提供了通用的参考,参考 模型的主要用途是帮组人们更清晰地理解涉及的功能和过程。开放式系统互联 (OSI)模型是一种参考模型。 2.1.1 TCP/IP 模型 TCP/IP 是 Transmission Control Protocol/Internet Protocol 的简写,中译名为传 输控制协议/因特网互联协议,又名网络通讯协议,是 Internet 最基本的协议、 Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 TCP 协议组成。 TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。 协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提 a 供的协议来完成自 己的需求。通俗而言:TCP 负责发现传输的问题,一有问题就发出信号,要求重 新传输,直到所有数据安全正确地传输到目的地。而 IP 是给因特网的每一台电 脑规定一个地址7。 (1)网络接口层 物理层是定义物理介质的各种特性: 1、机械特性; 2、电子特性; 3、功能特性; 4、规程特性。 数据链路层是负责接收 IP 数据包并通过网络发送,或者从网络上接收物理 帧,抽出 IP 数据包,交给 IP 层。 ARP 是正向地址解析协议,通过已知的 IP,寻找对应主机的 MAC 地址。 RARP 是反向地址解析协议,通过 MAC 地址确定 IP 地址。比如无盘工作站 还有 DHCP 服务。 常见的接口层协议有: Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM 等。 (2)网络层 负责相邻计算机之间的通信。其功能包括三方面。 处理来自传输层的分组发送请求,收到请求后,将分组装入 IP 数据报,填 充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。 处理输入数据报:首先检查其合法性,然后进行寻径-假如该数据报已到达 信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达 信宿,则转发该数据报。 处理路径、流控、拥塞等问题。 网络层包括:IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol) 控制报文协议、ARP(Address Resolution Protocol)地址转换协议、 RARP(Reverse ARP)反向地址转换协议。 IP 是网络层的核心,通过路由选择将下一条 IP 封装后交给接口层。IP 数据 报是无连接服务。 ICMP 是网络层的补充,可以回送报文。用来检测网络是否通畅。 Ping 命令就是发送 ICMP 的 echo 包,通过回送的 echo relay 进行网络测试。 (3)传输层 提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传 输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必 须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。 传输层协议主要是:传输控制协议 TCP(Transmission Control Protocol)和用 户数据报协议 UDP(User Datagram protocol) 。 (4)应用层 向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录 等。远程登录 TELNET 使用 TELNET 协议提供在网络其它主机上注册的接口。 TELNET 会话提供了基于字符的虚拟终端。文件传输访问 FTP 使用 FTP 协议来 提供网络内机器间的文件拷贝功能。 应用层协议主要包括如下几个: FTP、TELNET、DNS、SMTP、NFS、HTTP。 FTP(File Transfer Protocol)是文件传输协议,一般上传下载用 FTP 服务,数 据端口是 20H,控制端口是 21H。 Telnet 服务是用户远程登录服务,使用 23H 端口,使用明码传送,保密性差、 简单方便。 DNS(Domain Name Service)是域名解析服务,提供域名到 IP 地址之间的转 换,使用端口 53。 SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的 发送、中转,使用端口 25。 NFS(Network File System)是网络文件系统,用于网络中不同主机间的文 件共享。 HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于实现互联网中的 WWW 服务,使用端口 808。 2.1.2 OSI 模型 OSI 是 Open System Interconnect 的缩写,意为开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在 1985 年研究的网络互联模型。 该体系结构标准定义了网络互连的七层框架。主要如下: (1)应用层(Application Layer) 应用层是 OSI 参考模型的顶层,该层通过应用程序来完成用户的需求,是用 户与网络的接口。主要完成文件传输、收发电子邮件等功能。 (2)表示层(Presentation Layer) 早期的表示层用来转化字符数据的编码等显示相关功能。现在由于应用层能 完成一部分表示层功能,因此功能有所淡化。 (3)会话层(Session Layer) 会话指的是用户与用户的连接。会话层负责在两台计算机之间建立,管理和 终止通信,就如同两台计算机之间的对话。会话层因此而得名。 (4)传输层(Transport Layer) 传输层是整个 OSI 模型中最关键的一层,是模型中的中心层,充当心脏的作 用。在它之下的层级实现通信,而它之上的层级则对通信进行管理。它负责数据 传输和控制,提供端到端的数据控制。传输层独立于物理网络运行。另外它还负 责数据重传任务。 (5)网络层(Network Layer) 网络层定义了通信的协议,它把逻辑地址转换成物理地址。同时,网络层还 提供选择路由功能,路由器的功能就在这一层实现。它为传输层提供支持。 (6)数据链路层(Data Link Layer) 数据链路层位于物理层与网络层之间。在数据链路层上传输的数据为帧。该 层的目的是保证在节点之间传输数据帧的正确性。 (7)物理层(Physical Layer) 物理层是 OSI 参考模型的最底层。顾名思义,它为数据传输建立物理连接。 完成通过物理线路在两个节点间传输比特流9。 2.1.3 TCP/IP 模型和 OSI 模型的关系 TCP/IP 协议并不能够与 OSI 模型完全匹配,TCP/IP 不是使用 7 层,而是使 用 4 层,它通常也叫做 Internet 协议套件,它分为下面的 4 层: 1. 网络接口层 2. 互连网层 3. 传输层 4. 应用层 这 4 层的每一层对应于 OSI 模型的一层或者多个层。 表 2-1 TCP/IP 协议簇和 OSI 对应层级比较 OSI 层级TCP/IP 协议功能 应用层TFTP,HTTP,SNMP,FTP 等文件传输,电子邮件,文件服务等 表示层无数据格式化,代码转换,数据加密 会话层无解除或建立别的连接点联系 传输层TCP,UDP提供端对端的接口 网络层IP,ICMP,OSPF,ARP 等为数据包选择路由 数据链路层SLIP,PPP,MTU,RARP 等传输有地址的帧以及错误检测功能 物理层ISO2110,IEEE802 等二进制形式在物理媒体上传输数据 TCP/IP 协议簇对应 OSI 的相应层级,如下图所示: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TELNET SMTP TFTP FTP TCPUDP IP,ICMP,ARP OSI参考模型TCP/IP协议簇 图 2-1 TCP/IP 协议簇对应 OSI 的相应层级 2.22.2主要数据包结构主要数据包结构 2.2.1 以太网帧格式 以太网帧是 OSI 参考模型数据链路层的封装。它是对网络层传输的数据包加 上帧头帧尾进行封装,从而构成了可被数据链路层识别的数据帧。在以太网帧当 中,帧头和帧尾的数据大小是固定不变的,但是因为被封装的数据包大小是可变 的,所以以太网帧的大小是可变不固定的。大小范围在 64-1518 字节之间。 以太网 V2 的 MAC 帧格式。该标准由 5 个字段组成:目的地址、源地址、 类型、数据报、效验。 前导码:包括同步码(用来使局域网中的所有节点同步,7 字节长)和帧标 志(帧的起始标志,1 字节)两部分; 目的地址:接收端的 MAC 地址,6 字节长; 源地址:发送端的 MAC 地址,6 字节长; 类型:数据包的类型(即上层协议的类型) ,2 字节长; 数据:被封装的数据包,46-1500 字节长: 校验码:错误检验,4 字节长。 分析每一帧可以得到此数据包的源 MAC 地址和目的 MAC 地址,并且可以 得到 IP 数据报的完整内容(如果是 ARP 协议则没有 IP 数据包) 。IP 数据报的第 4 至 7 位是 IP 首部长度,该字段可以用来准确定位上层协议的起始位置。第 10 字节是协议字段,指出该 IP 数据报携带的数据使用何种协议。 以太网头数据结构描述如下: typedef struct ethernet_header u_char dstmac6; /目标 mac 地址 u_char srcmac6; /源 mac 地址 u_short eth_type; /以太网类型 ethernet_header; 10 2.2.2 IP 数据包格式 图 2-2 IP 数据报首部的组成 表 2-2 IP 数据包总体结构 数据包 IP 首部信息首部(如 TCP、UDP 首部) 数据 以太网 V2 标准的主要特点是通过类型域标识了封装在帧里的数据包所采用 的协议,类型域是一个有效的指针,通过它,数据链路层就可以承载多个上层 (网络层)协议。但是,它的缺点是没有标识帧长度的字段。 根据前面的定义,数据包一般都从数据链路层获取,因此,本软件按照获取 数据格式的先后,先处理链路层之上的数据帧,之后分别是网络层,传输层以及 应用层上的数据。在对数据链路层上的太网帧进行分析之后,我们就可以得到 IP 数据包。 IP 数据包数据结构描述如下: typedef struct ip_header u_char ihl:4; /*首部长度(4 bits)*/ u_char ver:4;/*版本(4 bits)*/ u_char tos; /* 服务类型 */ u_short tlen; /*总长度*/ u_short identification; /*标识*/ u_short fo:13; /*片偏移(13 bits)*/ u_short flags:3;/*标志 (3 bits) */ u_char ttl; /*生存时间*/ u_char proto; /*协议*/ u_short crc; /*首部检验和 */ ip_address saddr;/*源地址*/ ip_address daddr;/*目标地址*/ u_int op_pad; /*可选+填充*/ ip_header; 2.2.3 TCP 数据报 图 2-3 TCP 数据报的组成 源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。 传输层的复用和分用功能都要通过端口才能实现。 序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一 个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个 字节的序号。 数据偏移占 4bit,它指出 TCP 报文段的数据起始处距离 CP 报文段的起 始处有多远。 “数据偏移”的单位不是字节而是 32bit 字(4 字节为计算单位) 。 保留字段占 6bit,保留为今后使用,但目前应置为 0。 紧急比特 URG当 URG1 时,表明紧急指针字段有效。它告诉系统此 报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特 ACK只有当 ACK1 时确认号字段才有效。当 ACK0 时, 确认号无效。 复位比特 RST(Reset) 当 RST1 时,表明 TCP 连接中出现严重差错 (如由于主机崩溃或其他原因) ,必须释放连接,然后再重新建立运输连接。 同步比特 SYN同步比特 SYN 置为 1,就表示这是一个连接请求或连接 接受报文。 终止比特 FIN用来释放一个连接。当 FIN1 时,表明此报文段的发送 端的数据已发送完毕,并要求释放运输连接。 窗口字段占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。 TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对 方以确定对方的发送窗口的上限。 检验和占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在 计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。 紧急指针字段占 16bit。紧急指针指出在本报文段中的紧急数据的最后一 个字节的序号。 选项字段长度可变。TCP 首部可以有多达 40 字节的可选信息,用于把 附加信息传递给终点,或用来对齐其它选项。 填充字段这是为了使整个首部长度是 4 字节的整数倍。 TCP 数据报的数据结构描述如下: typedef struct tcp_header /20 bytes : default u_short sport; /源端口 u_short dport; /目标端口 u_long seqno; /Sequence no u_long ackno; /Ack no u_char reserved_1:4; /保留 6 位中的 4 位首部长度 u_char offset:4; /tcp 头部长度 u_char flag:6; /6 位标志 u_char reserved_2:2; /保留 6 位中的 2 位 u_short win; u_short checksum; u_short uptr; tcp_header; 2.32.3WinPCap 简介简介 WinPCap 是在 Windows 环境下的链路层网络访问的行业标准工具。 它允许应用程序绕过协议栈进行数据捕获和发送,并且还有其他的功能,其 中包括内核级别的包过滤,网络流量统计以及远程数据包捕获等功能。 WinPCap 扩展了操作系统所提供的低级别的网络访问功能,它也提供了一个 库用于更方便的访问网络层级中的底层。该库也包含了 UNIX 下的众所周知的 libpcap API 的 Windows 版本1112。 WinPCap 主要提供以下功能: (1)捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介) 上进行交换的,在数据包发送给某应用程序前,根据用户指定的规则过滤数据包, 将原始数据包通过网络发送出去。 (2)设置 filter,只捕获自己敢兴趣的数据包。 (3)方便的把捕获的数据包输出到文件和从文件输入。 (4)统计网络流量。 2.3.1 WinPCap 主要函数 1.pcap_if_t 结构体,表示适配器列表中的一项。 struct pcap_if struct pcap_if *next; char *name; /* name to hand to pcap_open_live() */ char *description; /* textual description of interface, or NULL */ struct pcap_addr *addresses; bpf_u_int32 flags; /* PCAP_IF_ interface flags */ 2.pcap_findalldevs_ex() 获取适配器列表,返回 0 表示正常,-1 表示出错。 int pcap_findalldevs_ex(char *source, struct pcap_rmtauth *auth, pcap_if_t *alldevs, char *errbuf); 3.pcap_freealldevs() 释放适配器链表空间。 void pcap_freealldevs(pcap_if_t *); 4.pcap_open() 通过名字打开适配器。 pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf); 5.pcap_compile() 编译数据包过滤器,将程序中高级的过滤表达式,转换成 能被内核级的过滤引擎所处理的东西。对于 bpf_program 结构体我们只需要知道 它是 pcap_compile()最终要得到用来过滤的东西。13 int pcap_compile(pcap_t *, struct bpf_program *, const char *, int, bpf_u_int32); 6.pcap_setfilter() 在捕获过程中绑定一个过滤器。 至于 pcap 结构体,它是一个已打开的捕捉实例的描述符。这个结构体对用 户来说是不透明的,它通过 wpcap.dll 提供的函数,维护了它的内容。 int pcap_setfilter(pcap_t *, struct bpf_program *); 7.pcap_next_ex() 直接获得一个数据包,非回调方法;pcap_pkthdr 结构体表 示 dump 文件中数据包首。 int pcap_next_ex ( pcap_t * p, struct pcap_pkthdr * pkt_header, const u_char * pkt_data ) 8.pcap_dump_open() 打开一个文件来写入数据包;而 pcap_dumper 结构体表 示 libpcap 存储文件的描述符 pcap_dumper_t *pcap_dump_open(pcap_t *, const char *); typedef struct pcap_dumper pcap_dumper_t; 2.3.2 WinPCap 过滤器表达式 WinPCap 过滤器语法基于一个声明式的谓词语法。过滤器则是一个包含了过 滤表达式的 ASCII 字符串。Pcap_compile()获取这个表达式并将其翻译为一个内 核级包过滤器的程序。 这个过滤表达式用于选择需要 dump 的数据包。如果没有给定的过滤表达式, 内核级过滤引擎将会接收所有的数据包。否则,只有带入表达式之后其值为 true 的包才会被接收。主要规则如下: (1) 表达式支持逻辑操作符,可以使用关键字 and、or、not 对子表达式进行 组合,同时支持使用小括号。 (2) 基于协议的过滤要使用协议限定符,协议限定符可以为 ip、arp、rarp、tcp、udp 等。 (3) 基于 MAC 地址的过滤要使用限定符 ether(代表以太网地址) 、当该 MAC 地址仅作为源地址时表达式为 ether src mac_addr,仅作为目的地址时,表 达式为 ether dst mac_addr,既作为源地址又作为目的地址时的表达式为 ether host mac_addr。此外应注意 mac_addr 应该遵从 00:E0:4C:E0:38:88 的格式,否则编译 过滤器时会出错。 (4) 基于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论