随着计算机技术及网络应用的发展,网络逐渐成为生活中必备的工具。但伴随而来的网络安全问题也逐渐受到人们的重视。网络嗅探及捕获是文护网络安全的核心技术之一。现有的一些技术如防火墙、协议分析、入侵检测、安全扫描等软件的实现都是以数据包的嗅探捕获为前提的,所以研究相关的数据包嗅探和分析技术对保证网络的安全运行是很有现实意义的。
1.WinPcap概述
1.1WinPcap简介
WinPcap是由意大利人Fulvio Risso和Loris Degioanni提出并实现的[1],其主要思想来源于Unix系统中著名的BSD包捕获架构Libpcap。作为一个在Win32环境下可以实现高效数据包捕获的开发包,其体系结构由一个核心的包过滤驱动程序NPF、一个底层的动态链接库Packet.dll和一个高层的独立于系统的函数库Libpcap组成。基于其高性能开源API封装库,很多市面上的网络分析软件都采用了它作为底层的架构,比较著名的如:Wireshark、Ethereal。[2]
1.2基于WinPcap开发的意义
网络网络嗅探中的数据包捕获主要可以分为两种方式:一是基于操作系统内核的;二是基于外界提供的驱动程序库。[3]
由操作系统内核提供的捕获机制主要有以下四种:BPF(Berkeley Packet Filter)、DLPI(Data LinkProvider Interface)、NIT(Network Interface Tap)、SOCK_PACKET套接口。其中BPF由基于BSD的Unix系统内核所实现,而DLPI是Solaris系统的子系统,对于NIT则是SunOS4系统的一部分,但在Solaris系统中已经被DLPI取代,Linux系统内核则实现了SockPacket的包捕获机制。从性能上看,BPF比DLPI及NIT效率要高的多,而SockPacket最差。
WinPcap是一个基于Win32的开源的包捕获驱动架构,它弥补了Windows系统内核本身提供很少包捕获接口的劣势,可以直接捕获到链路层的数据帧本文来自优*文^论'文/网,
毕业论文 www.youerw.com 加7位QQ324,9114找源文。基于WinPcap开发的监听程序具有很好的移植性,可以很容易的移植到Unix系统上,所以在Windows系统上基于WinPcap来开发嗅探软件是一种很好的选择。
1.3WinPcap构成模块
图1 Wincap的内部结构和原理
WinPcap结构分为一下三个模块(内部结构如图1所示):[4]
(1)内核层的数据包过滤模块:NPF(Netgroup Packet Fillter)。NPF的结构来源于BPF(Berkley Packet Filter),BPF是用于Unix 系统中的一种网络监控工具,它使用由UNIX 操作系统提供的内核级别的可访问未处理的原始网络数据的功能。BPF有两个部分:网络开关(Network Tap)和包过滤机(Packet Filter)。Network Tap从网络设备驱动程序中收集数据拷贝并转发到监听程序,Network Filter决定是否接收该数据包以及该数据包方式。实际上NPF是BPF的一个虚拟机,但NPF不是由操作系统提供而是WinPcap的一部分,其主要任务是直接从取数据链路层取得数据包,并不加修改地转发给上层模块。NPF与操作系统有关,WinPcap开发组针对不同的Windows操作系统提供了不同版本的NPF。
(2)低级动态链接库: Packet.dll为Win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块,Packet.dll用于解决这些不同,使得基于WinPcap开发的应用程序能运行在不同的Windows平台上,而无需重新修改编译。[5]
(3)高级系统无关库:Wpcap.dll作为一个工作在Packet.dll之上的用户级动态链接库,Wpcap.dll主要提供完善的接口函数库,它和应用程序编译在一起,为用户提供了跨平台的服务。[6]
上一页 [1] [2] [3] [4] [5] 下一页
基于WinPcap的数据包捕获和分析 第2页下载如图片无法显示或论文不完整,请联系qq752018766