




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络作业网络嗅探器(实验报告)班级:F0222101 姓名:吴志杰 学号:5012219023 系统说明1 需求说明实现Sniffer的基本功能。Sniffer 是一种用于监测网络性能、使用情况的工具。能够侦听所有进出本主机的数据包,完整显示数据包网络层和传输层(ICMP、IP、TCP和UDP)的头信息。比如,对IP头而言,需要显示 版本、头长度、服务类型、数据包长度、标识、DF/MF标志、段内偏移、生存期、协议类型、源目的IP地址、选项内容。要求显示数据的实际含义;侦听来源于指定IP地址的数据,显示接收到的TCP数据包的全部实际内容。需要考虑一个TCP包划分为多个IP包传输的情况;功能验证手段:在运行Sniffer的同时,执行标准的Ping、Telnet和浏览网页等操作,检查Sniffier能否返回预期的结果。2 使用方法(详见用户手册)运行Sniffer.exe,按“Start”按钮开始接受显示,“Clear”为清除,“Close”为关闭。在按下“Stop”处于静止状态时可选择接受显示哪类数据包信息,如果在静止状态在“IP address”中输入IP地址,则可显示来源于该指定IP地址的数据包信息。3 运行环境本软件可以在Windows系统之下运行。由于软件需要某些抓包程序的配合,在运行该软件之前,需安装好WinPcap_3_1_beta.exe以获取其动态链接库的支持。 概要设计1 编程环境本软件是在VC环境下编写,使用WinPcap中定义的头文件和lib文件为支持,运用WinPcap提供的数据包捕获程序执行核心操作。2 模块分析 本软件使用的主要模块及其功能如下:1 线程控制模块2 抓包模块3 数据包分析模块开启线程 模块间的调用关系如下: 关闭线程抓包解包 详细设计 主要数据结构 IP协议typedef struct ip_header u_char ver_ihl; / Version (4 bits) + Internet header length (4 bits) u_char toservice; / Type of service u_short tlength; / Total length u_short identification; / Identification u_short flags_offset; / Flags (3 bits) + Fragment offset (13 bits) u_char longvity; / Time to live u_char protocol; / Protocol u_short checksum; / Header checksum IP_Address sAddress; / Source address IP_Address dAddress; / Destination address u_int opt_padding; / Option + Paddingip_header; UDP协议typedef struct udp_header u_short sPort; / Source port u_short dPort; / Destination port u_short length; / Datagram length u_short checksum; / Checksumudp_header; TCP协议typedef struct tcp_headeru_short sPort; /源端口/u_short dPort; /目的端口/u_int sequence; /序号/u_int affirmNo; /确认号/u_char ipHeadLen; /段头长度/u_char code; /码位/u_short winsize; /窗口长度/u_short checksum; /校验和/u_short epointer; /紧急指针/tcp_header; MAC地址typedef struct MAC_Addressu_int sMac;u_char sMacp;u_int dMac;u_char dMacp;Mac_Address; IP地址typedef struct IP_Addressu_char byte4;IP_Address; ICMP协议typedef struct icmp_headeru_char type;/报文类型u_char code;/代码u_short checksum; /校验和u_int temp4;/其余4个字段icmp_header; 主要代码描述 查找主机上所有的适配器 if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) = -1) 查找适配器时出错; for(d=alldevs;d;d=d-next) /显示所有适配器的描述信息 i+; if(i=0) 主机上无适配器; 打开指定的适配器 inum=所选适配器的索引号; for(d=alldevs, i=0; inext, i+); /循环直到找到选定的适器 adhandle= pcap_open (d-name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000,NULL,errbuf); /打开指定的适配器 开启线程并循环抓包 AfxBeginThread(ThreadProc,NULL); /建立一个抓包线程 UINT ThreadProc(LPVOID p) /循环地抓包while(timer=1)pcap_dispatch(adhandle, 0, packet_handler, NULL);/抓包 注:ThreadProc:线程函数,在函数中用到了pcap_findalldevs_ex,pcap_freealldevs,pcap_open,pcap_datalink,pcap_compile,pcap_setfilter和pcap_dispatch几个库函数。其中最重要的函数是抓包函数pcap_dispatch。变量timer的作用是通过OnStartSniffer()函数对timer的值的改变来控制线程是运行还是终止。 解包void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)用来处理抓包后的一些事情。对IP包的分析(包括tcp,udp,icmp)和显示的内容的处理都在这个函数内。详细的代码见程序。其中:if(ih-protocol=6)/6是TCPcontent9=TCP;else if(ih-protocol=17)/17是UDPcontent9=UDP;else if(ih-protocol=1)/1是ICMPcontent9=ICMP;elsecontent9.Format(%d,ih-protocol);是对协议类型的处理 实验小结 遇到的问题1本项目的一个重点是winpcap中函数的使用。在网上查找了一些文档后,学会了如何使用其中的库函数.如:知道了pcap_dispatch是一次抓一个包,而pcap_loop是循环抓包。2ip包的分析曾使我迷茫,主要原因是没弄清楚IP包的一些字段的实际意义,如校验和应以16进制的形式予以显示,从而造成对一些字段的处理不对了。问题在仔细看了一遍书后得到了解决。3在编码的过程中多次出现编译通过,而运行时出现内存错误,出现这种情况后,我就一条一条语句的执行并设置breakpoint,找到错误的语句,如:在程序中的一些全局函数:threadproc, packet_handler等要用到dlg中的变量,这时需要定义一个全局的dlg的对象,本来我是定义一个对象的,可是总是出错,后来改成指针,并在dlg的constructor中将this指针赋给它,结果就对了。 体会在选择做sniffer前我一直认为这个程序的关键是如何用winpcap的库函数,可是在深入的研究之后,我发现winpcap的研究其实并不是最重要的,因为在网上和在一些书籍中都能找到用法,其本身只是一个工具。最重要的恰恰是ip包的分析和显示。通过上学期对网络的学习,我了解了ip包的结构,可那只是肤浅的感性的认识。通过做sniffer后,我真正懂得了ip包的结构,并深深的记住了。另外,通过这次的项目,我还学习了以前不知道的一些关于mfc的知识,如:如何使用listcontrol控件,创造圆形按钮,扁平的com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北邯郸丛台区公开选聘农村党务(村务)工作者42名模拟试卷带答案详解
- 2025昆明市禄劝县人民法院司法协警招录(2人)考前自测高频考点模拟试题含答案详解
- 2025广西平果市新安镇人民政府城镇公益性岗位人员招聘2人模拟试卷及答案详解(网校专用)
- 2025广东东莞市水务局招聘聘用人员2人考前自测高频考点模拟试题附答案详解(典型题)
- 2025第十三届贵州人才博览会沿河土家族自治县县管国有企业引才17人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年芜湖安徽工程大学博士专职辅导员招聘2人考前自测高频考点模拟试题附答案详解(典型题)
- 2025年第一季度西部战区空军医院招聘医师、技师、护士、药师、心理咨询师、协调员等岗位人员29人(四川)考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年福建省厦门分行中国光大银行2025年春季校园招聘考前自测高频考点模拟试题及1套完整答案详解
- 2025年福建省福州市少年儿童图书馆招聘3人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025江苏常州市天宁区卫生健康局下属事业单位招聘18人考前自测高频考点模拟试题及答案详解(名师系列)
- 过氧化氢异丙苯安全技术说明书MSDS
- GB/T 35112-2017农业用腐殖酸和黄腐酸原料制品分类
- GB/T 3098.4-2000紧固件机械性能螺母细牙螺纹
- 【演练方案】特种设备事故(压力容器)应急预案
- 全新档案法专题学习讲座课件
- 乙酸酐(醋酸酐)的理化性质及危险特性表
- 六年级上册道德与法治课件第四单元第8课
- 量具使用知识培训课件
- 感动中国人物-于敏
- Q-RJ 557-2017 航天型号产品禁(限)用工艺目录(公开)
- JIS C62133-2-2020 便携式密封二次电池及其电池的安全要求 第2部分:锂系统
评论
0/150
提交评论