欢迎来到天天文库
浏览记录
ID:8483418
大小:349.00 KB
页数:11页
时间:2018-03-29
《网络嗅探器程序课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机学院课程设计专业:课程名称:TCP/IP协议分析实验课题名称:网络嗅探器程序设计教师:学号:姓名:时间:2011年月日网络嗅探器程序设计-11-一.需求分析3二.技术分析32.1Wincap的基本结构32.2抓包系统4三.软件设计53.1总体规划53.2分块设计53.2.1获得网卡信息53.2.2数据包过滤53.2.3数据包捕获53.2.4数据包分析5四.代码实现64.1获得设备列表64.2打开一个适配器开始捕获数据包64.3过滤数据包64.4获取包数据74.5解析数据包84.6将数据包存入文件9五软件图形界面1
2、05.1软件实现图:105.2捕获UDP数据包:105.3捕获到的数据包解析:11六总结11参考文献11网络嗅探器程序设计-11-摘要:随着网络入侵的不断发展,网络安全变得越来越重要,利用一种方法对网络数据包进行高效捕获,并进行一系列的分析,从而进行可靠的网络安全管理显得尤为重要。本课题基于网络安全,用Winpcap实现网络嗅探器来监听网络,以达到保证网络安全的目的。关键词:网络嗅探器;程序设计;Winpcap编程一.需求分析通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧
3、,比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包既可以是发给本机的也可以是发往别处的。通过将网络接口设置为混杂模式可以使它接收所有经过它的数据包(例如以太网帧将会到达同一局域网的所有网络接口),但是,此时操作系统不再行底层的细节操作(协议处理,流量均衡等),而是将拆封解释处理接收到的数据帧(frame)的任务交给应用程序完成,这样应用程序就可以灵活的获取各类信息。二.
4、技术分析2.1Wincap的基本结构Winpcap是一个基于Win32平台上的用于捕获和分析网络数据包的开放式的源库(opensourcelibrary),它与UNIX的BPF-libpcap结构兼容。主要功能是捕获、发送原始数据包,Winpcap支持Win32平台上信息包的捕获和网络分析,它的主要思想来源于Unix系统中最著名的包截获架构,Winpcap的基本结构由3个模块所组成:(1)内核级的网络组包过滤器(NetgroupPacketFilter,NPF)。它是运行于操作系统内核中的驱动程序,直接与网卡驱动程序进
5、行交互。它的主要功能是过滤数据包,在包上附加时间戳、数据包长度等信息。它直接从数据链路层取得数据包,不加修改地传给运行在用户层的应用程序,也允许用户发送原始数据包。(2)低级动态链接库(Packet.dll)。它用于在Win32平台上为数据包驱动程序提供一个公共接口,把应用程序和数据包监听设备驱动程序隔离开来,使得程序可以不加修改地在不同的Windows系统上运行。(3)高级系统无关库(Wpcap.dll)。它也工作在用户级,和应用程序编译在一起,并使用Packet.dll提供的模块,向应用程序提供完善的监听接口。Wp
6、cap.dll模块与Unix系统下的BSD截获架构提供的Libpcap库完全兼容。它提供了一组功能强大而且跨平台的函数,利用这些函数,可以不去关心适配器和操作系统的类型。Application-11-Wpcap.dllPacket.dllNPFDeviceDriver2.2抓包系统首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包(rawpacket),这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖(systemdependent)的,在Winpcap的解决方案里它被
7、认为是一个设备驱动,称作NPF(NetgroupPacketFilter)。Winpcap开发小组针对Windows95,Windows98,WindowsME,WindowsNT4,Windows2000和WindowsXP提供了不同版本的驱动。这些驱动不仅提供了基本的特性(例如抓包和injection),还有更高级的特性(例如可编程的过滤器系统和监视引擎)。前者可以被用来约束一个抓包会话只针对网络通信中的一个子集(例如,仅仅捕获特殊主机产生的ftp通信的数据包),后者提供了一个强大而简单的统计网络通信量的机制(例如
8、,获得网络负载或两个主机间的数据交换量)。 其次,抓包系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。Winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;
此文档下载收益归作者所有