开发基于winPcap的嗅探器

来源:网络收集 时间:2025-06-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

网络安全课程设计报告

(2015-2016 第一学期)

题目 开发基于winPcap的嗅探器

专 业

学 号 姓 名

指 导 教 师

日 期 2015.11.23-12.4

分评分项 遵守机房规章制度 实验原理分析与设计 课题功能实现情况 设计验收与答辩 优秀 良好 中等 差 评分细 课程设计报告书写 简短评语教师签名: 年 月 日 评分等级备注

开发基于winPcap的嗅探器

一、 实验目的

开发一个winpcap的嗅探器,用它来捕获所有流经网卡的数据包,并进行分析。

二、 实验环境

操作系统:Windows 2000/XP 编程环境:Visual c++6.0 附加库 :Winpcap

介绍实验网络拓扑环境,所用的操作系统,编程环境(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)

三、 实验内容和要求

内容:所开发的程序可以输出本机所有网卡的信息和捕获流经网卡的数据包 并能够过滤出IP、TCP、UDP、ICMP等数据包

要求:掌握基于WinPcap的网络编程模式。

理解并能应用WinPcap设计并实现网络数据包的捕获与解析。

实验做哪些内容,要求是什么

(正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距)

四、 实验原理和步骤

原理:我们所要做的嗅探器是一种常用的网络数据收集软件,它是在广播式网络环境

下利用计算机网络接口截获目的地为其它计算机的数据报文的一种工具。

在以太网中,信息是以明文的形式在网络上传输 ,当将网络适配器设置为混杂模式时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。 IEEE802.3标准的以太网采用的是持续CSMA的 方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截我们所要的信息,这是捕获数据包的物理基础。

首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包,

- 3 -

这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF(Netgroup PacketFilter)。

Winpcap提供了两个不同的库:Packet.dll和Wpcap.dll。Wpcap.dll提供了更加友好、功能更加 强大的函数调用。WinPcap的优势在于提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来,便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些 API可以直接用来访问驱动的函数;后者导出了 一组更强大的与libpcap一致的高层抓包函数库 (captureprimitives)。这些函数使得数据包的捕获 以一种与网络硬件和操作系统无关的方式进行。

网络嗅探器工作在网络环境的底层,拦截所有正在网络上传送的数据,并且通过相应的解析处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体拓扑布局。

步骤:程序所实现嗅探器的总体结构

选择过滤包类型(ip/tcp/udp/icmp) 跳转到选择的网卡 本机网卡信息描述 开始嗅探

1.获得本地网络网卡列表

获取一个已经绑定的网卡列表,然后Winpcap对捕获网络数据端口进行设定。 通过pcap引擎找出并设定监听的网络接口。Winpcap提供了pcap_findalldevs_ex()

- 4 -

嗅探内容显示并分析

函数,这个函数返回一个指向pcap_if结构的链表,其中的每一项都包含了一个己经绑定的适配器(网卡)的全部信息。其中name和description这两项分别包含了相应设备的名称和描述。取得网卡列表后就在屏幕上显示出来,如果网卡没有被发现就显示有关错误,pcap_findalldevs()同其他的libpcap函数一样有一个errbuf参数,当有异常情况发生时,这个参数会被pcap填充为某个特定错误字串。 部分主要程序示意如下: ①主函数部分: // 获取网卡列表

if(pcap_findalldevs(&alldevs, errbuf) == -1)

{ fprintf(stderr,\发生错误: %s\\n\exit(1);} // 输出网卡信息

for(i=0,d=alldevs; d; d=d->next,i++) { ifprint(d,i+1)} if(i==0)

{ printf(\没有找到任何网卡,请确认Winpcap已经安装.\\n\return -1;} ②调用函数部分: // 输出网卡信息

void ifprint(pcap_if_t *d, int num) {pcap_addr_t *a;

printf(\网卡%d信息************\\n\// 输出网卡名称

printf(\网卡名 : %s \\n\// 网卡描述信息 if (d->description)

{ printf(\网卡描述: %s \\n\ // 反馈

printf(\反馈 : %s \\n\// IP地址

- 5 -

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库开发基于winPcap的嗅探器在线全文阅读。

开发基于winPcap的嗅探器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/296298.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219