基于winpcap的sniffer程序设计

合集下载

基于winpcap的嗅探器设计与实现毕业设计

基于winpcap的嗅探器设计与实现毕业设计

计算机与信息学院《计算机网络系统实践》报告设计题目:嗅探器的设计与实现学生姓名:***学号:2010****专业班级:信息安全****2013 年9 月25一、设计要求1.不限平台,可以使用Libpcap、WinPcap 或 Linux的原始套接字;2.实现一个功能比较简单的、具有图形界面的Sniffer,主线程响应用户界面操作,工作线程完成抓包等工作;3.能够解析出IP层和传输层的协议头,能够过滤TCP、UDP等数据包;4.能够输出文本方式传送的数据包的内容;5.能够进行简单的流量统计。

二、开发环境与工具操作系统:windows7开发工具:visual studio开发语言:C++附加库:Winpcap三、设计原理网络嗅探器是一种常用的监听网络的工具。

所谓嗅探器( Sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。

嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式( 如IP 数据包或者以太网包) 封装的信息流。

其中可能携带了重要数据或敏感信息。

可以将这些捕获到的信息包存档,以利用相应工具可以作进一步分析。

计算机网络的设计为嗅探器的使用创造了最基本的条件。

在目前的网络环境中,所有计算机节点都是共享传输介质,任意节点发出或发往任意节点的数据帧必将经过网内每一个节点的网络接口,此时只需对嗅探节点的网络接口( 网卡) 进行适当的设置便可为实现嗅探的做好准备工作。

在计算机网络系统中,网卡是用来接收网络上其他节点发来的数据帧,其内嵌的单片处理程序会检测数据帧来源的MAC 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。

否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。

在vs2008MFC下开发基于winpcap的网络嗅探器(IP,TCP,UDP)

在vs2008MFC下开发基于winpcap的网络嗅探器(IP,TCP,UDP)

课程设计Ⅰ设计报告题目:基于Winpcap的网络嗅探器的实现学号:姓名:学院:专业班级:指导教师:设计时间:指导老师评语:评定成绩: 签名: 日期:目录1 概述 (3)1.1课程设计的目的 (3)1.2设计任务与要求 (3)1.3开发环境 (3)2系统设计的基本概念与原理 (3)2.1IP协议基本知识 (3)2.2TCP协议基本知识 (6)2.3UDP协议基本知识 (9)2.4 WINPCAP基本知识 (9)2.5 WINPCAP基本原理 (14)2.6MFC编程框架 (16)3 基于WINPCAP的单文档网络嗅探器的设计与分析 (19)3.1系统设计实现的基本原理与过程 (19)3.2系统功能设计 (21)3.3系统架构设计 (22)3.4子系统与模块设计 (23)3.4.1网络嗅探器设置模块 (23)3.4.2网络数据包的捕获模块 (23)3.4.3解析和显示模块 (23)4 系统详细设计与实现 (24)4.1数据结构的设计 (24)4.2全局变量与函数的声明 (25)4.3嗅探器界面设计 (25)4.4嗅探器捕获模块的设计与实现 (26)4.5网络数据包捕获模块的设计与实现 (31)4.6解析和显示模块的设计与实现 (32)4.6.1列表视图初始化设置 (32)4.6.2从读取离线数据包并在列表视图中显示 (33)4.6.2响应用户鼠标消息,解析对应行的数据包信息。

(36)5 系统调试与运行 (38)5.1 WINPCAP函数库的安装 (38)5.2 SNIFFER网络嗅探器的测试与运行 (38)6 课程设计总结 (39)参考文献 (40)1 概述1.1 课程设计的目的目的:设计一个GUI程序,实现IP、TCP、UDP数据包的捕获和解析。

通过编程了解各类数据报的结构,掌握网络编程的基本原理和方法。

1.2 设计任务与要求本课程设计的基本内容是捕获IP,TCP,UDP数据包,通过解析数据包,理解和掌握各类数据包的结构(1)设计一个GUI程序,完成局域网数据包的捕获和IP、TCP、UDP数据包的解析;(2)捕获几个网络数据报,给出实例并分析各数据包各字段的含义;(3)说明基于Winpcap编程的基本原理、程序的总体框架,绘制每个函数的详细设计流程图。

基于Winpcap的sniffer检测原理与实现

基于Winpcap的sniffer检测原理与实现

基于Winpcap的sniffer检测原理与实现作者:刘建亮,宋莉来源:《电脑知识与技术》2009年第34期摘要:以太局域网的监听检测软件可以监视网络的状态,并利用这些信息来分析网络性能等。

由于监听工具能有效的截获网络上的数据,所以它也对网络信息安全造成极大威胁。

还必须采用各种反监听的检测措施以保护网络信息安全。

关键词:网络安全;Winpcap;ARP检测中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)34-9685-03The Principle and Realization of sniffer Detection Based on WinpcapLIU Jian-liang, SONG Li(Information Engineering College of China University of Geosciences (Beijing), Beijing 100083, China)Abstract: The program of Ethernet Network's Interception and Detection is mostly a very good network' tool for managers. It can keep watch on network's condition, and use these information to analyze the network's performance. Because the wiretap tool can intercept and seize the data on the network effectively, it results the network and information's security problems. We must still adopt the anti detection measure to protect network and information's security problems.Key words: network security; winpcap; ARP detection在局域网内,安全总是值得关注的。

上机1:基于WinPcap的网络嗅探器设计与实现.

上机1:基于WinPcap的网络嗅探器设计与实现.

上机1:基于WinPcap的网络嗅探器设计1、目的与要求掌握基于WinPcap的网络编程模式。

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

2、设备与上机环境连网PC机(至少一台)。

计算机硬件要求:Intel Pentium5 处理器、256MB以上内存,Ethernet网卡,网线若干。

计算机软件要求:MS Windows 9x/2000/XP操作系统,TCP/IP协议,WinPcap430,Visual c++6.0/.net系统。

3、上机内容与步骤:在程序设计之前,请参照提供的软件安装WinPcap。

之后,按照如下步骤操作:步骤1:在VC++ 6.0下创建一个DOS命令行程序,工程名:自己的学号-PacketDump步骤2:打开main(函数,在主程序中增加如下头文件和常量定义:#include#define LINE_LEN 16pcap_if_t *alldevs, *d;pcap_t *fp;u_int inum, i=0;char errbuf[PCAP_ERRBUF_SIZE];int res;struct pcap_pkthdr *header;const u_char *pkt_data;printf("pktdump_ex: prints the packets of the network using WinPcap.\n"; printf(" Usage: pktdump_ex [-s source]\n\n"" Examples:\n"" pktdump_ex -s file.acp\n"" pktdump_ex -s \\Device\\NPF_{C8736017-F3C3-4373-94AC-9A34B7DAD998}\n\n"; if(argc < 3{printf("\nNo adapter selected: printing the device list:\n";/* The user didn't provide a packet source: Retrieve the local device list */if(pcap_findalldevs(&alldevs, errbuf == -1{fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf;exit(1;}/* Print the list */for(d=alldevs; d; d=d->next{printf("%d. %s\n ", ++i, d->name;if (d->descriptionprintf(" (%s\n", d->description;elseprintf(" (No description available\n";}if (i==0{printf("\nNo interfaces found! Make sure WinPcap is installed.\n"; return -1;}printf("Enter the interface number (1-%d:",i;scanf("%d", &inum;if (inum < 1 || inum > i{printf("\nInterface number out of range.\n";/* Free the device list */pcap_freealldevs(alldevs;return -1;}/* Jump to the selected adapter */for (d=alldevs, i=0; i< inum-1 ;d=d->next, i++;/* Open the adapter */if ((fp = pcap_open_live(d->name, // name of the device65536, // portion of the packet to capture.// 65536 grants that the whole packet will be captured on all the MACs. 1, // promiscuous mode (nonzero means promiscuous1000, // read timeouterrbuf // error buffer== NULL{fprintf(stderr,"\nError opening adapter\n";return -1;}}else{/* Do not check for the switch type ('-s' */if ((fp = pcap_open_live(argv[2], // name of the device65536, // portion of the packet to capture.// 65536 grants that the whole packet will be captured on all the MACs. 1, // promiscuous mode (nonzero means promiscuous1000, // read timeouterrbuf // error buffer== NULL{fprintf(stderr,"\nError opening adapter\n";return -1;}}/* Read the packets */while((res = pcap_next_ex( fp, &header, &pkt_data >= 0{if(res == 0/* Timeout elapsed */continue;/* print pkt timestamp and pkt len */printf("%ld:%ld (%ld\n", header->_sec, header->_usec, header->len; /* Print the packet */for (i=1; (i < header->caplen + 1 ; i++{printf("%.2x ", pkt_data[i-1];if ( (i % LINE_LEN == 0 printf("\n";}printf("\n\n";}if(res == -1{printf("Error reading the packets: %s\n", pcap_geterr(fp;return -1;}pcap_close(fp;return 0;步骤3:为编译器指定包含文件和库文件搜索目录。

(完整word版)Sniffer 网络抓包

(完整word版)Sniffer 网络抓包

MySniffer抓包程序一、开发思路在windows操作系统下,要想捕获网络上的数据包,必须要对网卡进行控制,因为本机的数据报从网络上来到本机是通过网卡然后再保存到本地缓冲区上的,所以要抓获网包就必须调用网卡驱动中的对外函数.因此,通过调用网卡驱动函数,将网卡设置为杂乱模式状态,使得网卡不能阻塞、过滤或控制其他应用程序数据报的收发,以达到抓取数据包的目的.开发环境:系统:Windows XP;IDE:MyEclipse6.0。

1;工具包: winpcap;Jpcap;开发语言:java二、开发流程1、MySniffer功能本程序基本功能:包括对ipv6数据包的抓取,分析.扩展功能:提供友好的可视化界面和操作。

2、MySniffer层次结构MySniffer抓包程序分为三大部分:访问网络底层部分、数据包分析部分、可视化界面部分。

因此,层次结构大概为下图所示:图一、MySniffer抓包程序层次结构图从MySniffer抓包程序层次结构图可知,程序各部分的主要功能包括:●可视化界面部分:提供友好界面显示,抓包操作(网卡选择、开始抓包、停止抓包)及显示数据包分析结果。

●数据包分析部分:负责分析数据包及保存抓取到的数据包.●访问网络底层部分:提供底层服务,检测网卡设备及抓取网络中的原始数据包.3、MySniffer操作流程MySniffer操作流程具体为:初始化界面—〉检测网卡—〉调用网卡抓包—〉对抓到的数据包即时统计、分析->停止抓包—〉显示数据包内容。

如下图所示:图二、MySniffer抓包程序操作流程图4、MySniffer具体实现MySniffer抓包程序包括4个类,分别是IPV6Main(主函数)、IPV6Frame(界面)、IPV6Packet(数据包信息)、IPV6Captor(抓包)。

IPV6Frame提供界面显示,有以下方法:startButton()//开始按钮触发方法,调用doCapture()。

sniffer的研究和基于开源libpcap的sniffer实现 网络工程 毕业论文正文

sniffer的研究和基于开源libpcap的sniffer实现 网络工程 毕业论文正文

本科生学位论文题目:sniffer的研究和基于开源libpcap的sniffer实现姓名:xx专业:网络工程导师:xx学院:计算机学院2013年6月 1 日独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。

尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

申请学位论文与资料若有不实之处,本人承担一切相关责任。

本人签名:日期:关于论文使用授权的说明学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。

学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。

(保密的学位论文在解密后遵守此规定)保密论文注释:本学位论文属于保密在年解密后适用本授权书。

非保密论文注释:本学位论文不属于保密范围,适用本授权书。

本人签名:日期:导师签名:日期:sniffer的研究和基于开源libpcap的sniffer实现摘要局域网嗅探技术是一种分析局域网的重要工具,局域网嗅探技术绕过了操作系统TCP/IP协议栈,直接从网卡捕获数据包,非常自由和灵活,在流量分析、网络安全、故障排查、协议分析、局域网测试等众多领域内发挥了重要作用。

论文主要介绍了嗅探器的技术原理与应用,TCP/IP的四层结构模型、数据帧和IP 包的字段的信息,详细分析了libpcapAPI,并提出了利用libpcap在fedora14操作系统下实现“个性化”的嗅探器的方法,这个嗅探器主要有以下三个功能:功能一,计算当前局域网内包的个数,每秒的字节数等基本局域网状况的参数;功能二,分析ip包,udp 包,tcp包,itcmp包等特定的数据包的状况;功能三,对数据包做应用层协议分析,这里用到了基于端口、协议、正则表达式、长度的综合识别方法,并加入了基于流识别的内容,论文最后对在fedora14下编写完成的“个性化”嗅探器做出了测试分析并提出了进一步研究的思路。

sniffer的研究和基于开源libpcap的sniffer实现 开题报告

sniffer的研究和基于开源libpcap的sniffer实现 开题报告

本科毕业设计(论文)开题报告学院计算机专业网络工程班级09211311 学生姓名学号09211419 班内序号8 指导教师姓名所在单位网络技术研究院职称讲师设计(论文)题目sniffer的研究和基于开源libpcap的sniffer实现一、选题的背景和意义sniffer是一种非常常用的网络工具,在流量分析、网络安全、故障排查、协议分析、局域网测试等众多领域内发挥了重要作用。

当然目前已经有良好的嗅探工具,比如wireshark。

但是面对一些“个性化”的场合,拥有冗长用户说明和庞大功能系统的wireshark并不是我们的首选。

个性化的嗅探器有以下优点:轻量级。

根据自己需要开发的嗅探器不需要像wireshark那样面面俱到,只要针对需求即可,这样我们的嗅探器将变得更为灵巧,同时更加符合需求。

针对性。

比如需要分析的是一种非通用的新型的应用层协议,显然wireshark对这种“个性”的要求无能为力,我们就可以根据现实需求量身定制符合需求的灵巧的嗅探器。

对自身能力的成长有帮助。

摆脱现有sniffer工具的“拐杖”,加深对协议的理解。

现有的sniffer工具功能强大,使使用者在享受方便的同时,对协议字段本身了解不求甚解。

自行编写sniffer有助于作者加深对各类协议的了解,加深对网络和网络协议的理解。

二、研究的基本内容和拟解决的主要问题设计并实现一个基于libpcap的sniffer,主要实现以下三大功能:1)计算当前局域网内包的个数,每秒的字节数等基本局域网状况的参数。

2) 分析ip包,udp包,tcp包,itcmp包等特定的数据包的状况。

3) 对数据包做应用层协议分析,这里用到了基于端口、协议、正则表达式、长度的综合识别方法,并加入了基于流识别的内容。

三、研究方法及措施第一,通过学习了解实现这个嗅探器的功能需要哪些理论知识,这些需要通过阅读libpcap库的API 获取以及相关论文。

第二,要把大问题模块化,分层次分阶段,逐步解决问题。

sniffer报告

sniffer报告

默认规则为包括 ICMP,ARP,UDP.TCP 核心代码如下: int state[ 4 ]; state[ 0 ] = 1; for( int i = 1; i < 4; i++ ) { state[ i ] = 2 * state[ i - 1 ]; } CButton* pBtn; pBtn = (CButton*)GetDlgItem(IDC_CHECK_ICMP); state[ 0 ] *= pBtn->GetCheck(); pBtn = (CButton*)GetDlgItem(IDC_CHECK_ARP); state[ 1 ] *= pBtn->GetCheck(); pBtn = (CButton*)GetDlgItem(IDC_CHECK_TCP); state[ 2 ] *= pBtn->GetCheck(); pBtn = (CButton*)GetDlgItem(IDC_CHECK_UDP); state[ 3 ] *= pBtn->GetCheck(); result = (state[ 0 ] | state[ 1 ] | state[ 2 ] | state[ 3 ]); //record the rule 4. 数据包处理 这部分是整个系统的核心部分。 4.1 对话框绘制 新建 CpacketInfo 类,并且绘制对话框,此对话框也正是 view 中所显示的 对话 框。具体的控件及其作用在视图部分已经详细给出了。 4.2 协议添加 为每个系统支持的协议类型各创建一个类。以 TCP 协议为例,创建 CTcp 类。 通过查询 TCP/IP 协议,可以得到数据包中各部分的信息。如下图所示:
CString nFlag = true);
GetStr(unsigned int nNum,unsigned char * pData = NULL,bool
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档