欢迎来到天天文库
浏览记录
ID:20536308
大小:176.50 KB
页数:7页
时间:2018-10-13
《利用winpcap技术捕获数据包70960》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用WinPcap技术捕获数据包徐美华王振旗韩秀娟(华北电力大学)摘要:本文通过对WinPcap的结构和功能的介绍,实现如何在windows环境下对网卡进行编程,进行网络数据包的捕获。关键词:winpcap,包捕获,NDIS,BPF,NPFDatapacketcaptureinNetworkbasedonWinPcapXuMeihuaWangZhenqiHanXiujuan(DepartmentofComputerScienceandTechnologyNorthofChinaElectricityPowerUniversityBaoDing0710
2、03xumeiyan123@mail.china.com)Abstract:AccordingtotheintroduceofarchitectureandperfermencesofWinPcap,thisarticlediscriblehowtoprogrammetoNICandcapturenetwork-packetinwindows.Keywords:WinPcap,packetcapture,NDIS,BPF,NPF0前言随着网络入侵的不断发展,网络安全变得越来越重要,于是网络入侵取证系统的研究也变得日益重要。在网络入侵取证系统中,对网络
3、上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。1winpcap简介WinPcap是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows操作平台上来实现对底层包的截取过滤。WinPcap为用户级的数据包提供了Windows下的一个平台。WinPcap是BPF模型和Libpcap函数库在Windows平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll和一个
4、高层的独立于系统的函数库Libpcap组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS中函数的调用为Win95、Win98、WinNT、和Win2000提供一类似于UNIX系统下BerkeleyPacketFilter的捕获和发送原始数据包的能力。Packet.dll是对这个BPF驱动程序进行访问的API接口,同时它有一套符合Libpcap接口(UNIX下的捕获函数库)的函数库。WinPcap的结构图如图1。WinPcap包括三个部分:第一个模块NPF(NetgroupPacketFilter),是一个虚拟设备驱动程序文件。它的功
5、能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll为win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在不同版本的Windows平台上,而无需重新编译。第三个模块Wpcap.dll是不依赖于操作系统的。它提供了更加高层、抽象的函数。packet.dll和Wpcap.dll:packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加
6、强大的函数调用。WinPcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。图1WinPcap结构图2网络数据包捕获的原理以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获
7、任何一个在同一冲突域上传输的数据包。IEEE802.3标准的以太网采用的是持续CSMA的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信息,这是捕获数据包的物理基础。以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的CSMA/CD协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据的传送,判断每个物理数据帧目的地是否为本站
8、地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的CRC校验,然
此文档下载收益归作者所有