嗅探器的实现.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
`计算机通信网络实验嗅探器的实现 班级: 学号: 姓名:实验目的掌握基于Libpcap/Winpcap的协议分析器的设计方法原理介绍嗅探器程序一般包括内核部分和用户分析部分。内核部分负责从网络中捕获和过滤数据。用户分析部分负责界面、数据转化与处理、格式化、协议分析,如果在内核没有过滤数据包,在这里还要对数据进行过滤。一个较为完整的基于网络监听和过滤的程序一般包括以下步骤:数据包捕获数据包过滤与分解数据分析数据包捕获常用的方法有两种:通过设置硬路由器的监听端口;利用以太网络的广播特性。这种方式必须将网卡设置为混杂(promiscuous)模式。监听程序工作在网络环境的底三层,可以拦截所有经过该机器的网络上传送的数据,然后将这些数据做相应处理,可以实时分析这些数据的内容,进而分析网络当前状态和整体布局。基于windows的数据包捕获方案有以下几种:使用原始套接字(row socket)机制。方法简单,但功能有限,只能捕获较高层的数据包;直接连接调用NDIS库函数,这种方法功能非常强大,但是比较危险,很可能导致系统崩溃和网络瘫痪;基于windows的数据包捕获方案有以下几种:使用或者自行编写中间层驱动程序,这是微软公司推荐使用的一种方法,微软提供的win2000 DDK中也提供了几个这样的驱动程序。在具体的实现方式上可分为用户级和内核级两类。其中内核级主要是TDI捕获过滤驱动程序,NDIS中间层捕获过滤驱动程序,NDIS捕获过滤钩子驱动程序等,它们都是利用网络驱动来实现的;而用户级的包括SPI接口,Windows2000包捕获过滤接口等;使用或自行编写协议驱动程序;使用第三方捕获组件或者库,比如Winpcap。捕获数据包后要进行的工作是对其进行包过滤与分解,就是在海量的数据里面找我们感兴趣的内容。一些基础的过滤规则如下:站过滤:专门筛选出来自一台主机或者服务器的数据;协议过滤:根据不同的协议来筛选数据,例如:选择TCP数据而非UDP数据;服务过滤:根据端口号来选择特定数据包;通用过滤:通过数据包中某一特定位置开始,选择具有某些共同数据特征的数据包;过滤完成后,必须进行数据分析,这一部分就是对已经捕获的数据包进行各种分析,比如:网络流量分析、数据包中信息、分析敏感信息提取分析等,功能取决于系统要达到的目的。WinPcap是Windows平台下一个专业网络数据包捕获开发包,是为Libpcap在Windows平台下实现数据包的捕获而设计的。Libcap(Winpcap是其windows版本)可以提供与平台无关的接口,而且操作简单,它是基于改进的BPF(Berkeley Packet Filter),该软件来自Berkeley的Lawrence National Laboratory研究院。使用Winpcap包过程比较规范。基于Libcap/Winpcap库的基本使用流程比较规范,一般为:使用pcap_lookupdev获取设备;使用pcap_lookupnet获取网络地址和子网掩码;使用pcap_open_live打开设备;使用pcap_complile编译过滤规则;使用pcap_setfilter设置过滤规则;使用pcap_loop循环捕获数据包,在其中调用相应处理函数;使用pcap_close关闭设备句柄。实验环境Windows 2000以上版本,WinPcap3.0。实验思路1、根据TCP/IP协议中各层的数据包格式编写数据头部的结构体,便于存储调用各层数据头部信息;IP数据报:TCP报文格式:2、以老师给出的参考代码为基础编写基于Winpcap的监听过程,为了过滤出登录FTP服务器的帐号和密码,将过滤规则设置为“port 21”,即只过滤出端口号为21的传输数据;3、在回调函数中对捕获到的数据包进行分析,打印出每条数据包的时间、源地址和目的地址,并找出关键字“USER”和“PASS”,过滤出FTP服务器的帐号和密码。实验步骤参考代码编写基于WinPcap的监听程序。参考给出的代码,实现一个监听程序能够自动过滤FTP的用户名和密码。代码:#pragma comment(lib, wsock32.lib) //WINSOCK API连接库文件#include pcap.hu_char user[20]; //存放用户名u_char pass[20]; //存放密码/* TCP header*/typedef struct tcp_header{u_short sport; // Source port 16bitsu_short dport; // Destination port 16bitsu_int seq; //序列号 32bitsu_int ack

您可能关注的文档

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档