您的当前位置:首页正文

网络抓包毕业设计

来源:尚佳旅游分享网
网络抓包毕业设计

【篇一:网络抓包与协议分析软件的设计与开发_毕业

设计论文】

毕业设计(论文)

题 目: 网络抓包与协议分析软件 的设计与开发 毕业论文(设计)原创性声明

本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期:

毕业论文(设计)授权使用说明

本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。

作者签名: 指导教师签名: 日期:日期: 注 意 事 项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作) 2)原创性声明

3)中文摘要(300字左右)、关键词 4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用a4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 目 录 1 绪

论 .......................................................................................................................................... 1 1.1 课题来

源 ....................................................................................................................... 1

1.2 当今网络数据安全现

状 ............................................................................................... 1 1.3 网络数据安全的技术研

究 ........................................................................................... 2 2 主要技术介

绍 .......................................................................................................................... 3 2.1 数据包的介

绍 ............................................................................................................... 3

2.2 网络数据包捕获原

理 ................................................................................................... 4 2.3 网络数据包的捕获方

法 ............................................................................................... 5

2.3.1 原始套接

字 ........................................................................................................ 5

2.3.2

libpcap ............................................................................................................... 5 2.3.3

winpcap.............................................................................................................. 5 2.3.4

jpcap ................................................................................................................... 6 2.4 winpcap研

究................................................................................................................ 6

2.5 winpcap内部结

构........................................................................................................ 7

2.6 winpcap的主要函数

库 ................................................................................................ 8 3 系统设

计 ................................................................................................................................ 10

3.1 捕获数据的分析与还

原 ............................................................................................. 10 3.1.1 802.3标准的数据帧分析与还

原 ................................................................... 10 3.1.2 ip报文的分析与还

原 ..................................................................................... 10 3.1.3 udp数据包的封

装 ........................................................................................... 12 3.1.4 tcp数据包的封

装 ........................................................................................... 14 3.1.5 icmp数据包的封

装 ....................................................................................... 15

4 实现与分

析 ............................................................................................................................ 16

4.1 winpcap环境配

置 ...................................................................................................... 16

4.1.1 winpcap下

载................................................................................................... 16 4.1.2 winpcap配

置................................................................................................... 16 4.2 程序的实

现 ................................................................................................................. 16

4.2.1 网络数据捕获的基本流

程 .............................................................................. 16

【篇二:毕业设计-局域网抓包软件的设计与实现论文】

毕业设计(论文)

局域网抓包软件的设计与实现 论文作者姓名:

申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期:

局域网抓包软件的设计与实现 摘 要

随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。通过运用winpcap开发包实现网络数据包的捕获,利用tcp/ip 协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。另外,还能实现一些功能,如对指定的ip地址进行数据包的捕获,对捕获结果进行显示等。

关键词:winpcap;数据捕获;信息分析;局域网

the design and implementation of lan information capture software abstract

as development of the network and technology, the society comes into a age of information explosion. due to the network, the world has become smaller, and people use all kinds of technologies and tools to break through the limitation of communication. the network security has been widely

concerned followed by the development and universal of the network technology. therefore, it is great significance that an effective real-time interception network information system is studied and developed. based on this situation, this thesis in-depth studies to capture the network data and so on. besides, it introduces relative technology and the needs information capture. the realization of the data capture module, data packet decoded module and database information module is

displayed for detail in the systems design. the network data packet is captured through winpcap, some functions has been realized, such as network data packet capture, data packets of information analysis by using tcp / ip protocol encapsulation theory and bottom-up, and will analyze the information stored in the database. simultaneously, this software would also

increases some functions, such as data packet capture by the ip address, make the results and statistics,display the results of data packet capture and so on.

key words: winpcap; data capture; information analysis ; lan 目 录

论文总页数:25页

1 引言 ..................................................................... 1 课题背景及意义 ..................................................... 1

本课题研究的相关技术及方法 ......................................... 1 visual c++ 6.0 ....................................................... 1 winpcap简介 ......................................................... 2 1.1 1.2 1.3 1.4

2 基于信息捕获的相关理论基础 ............................................... 4 tcp/ip协议 ......................................................... 4

数据封装与分用过程 ................................................. 5 ip协议 ............................................................. 7 2.1 2.2 2.3

3 需求分析 ................................................................. 9 功能需求 ........................................................... 9 性能要求 ........................................................... 9 3.1 3.2

4 局域网信息捕获器的设计 .................................................. 10 功能概述 .......................................................... 10

系统功能模块的设计 ................................................ 11 数据包捕获模块 ..................................................11 数据分析模块实现 ................................................13

数据库模块的实现 ................................................16 用户界面模块 ...................................................... 19 4.1 4.2 4.2.1 4.2.2 4.2.3 4.3

5 局域网信息捕获测试和测试结果 ............................................ 20 测试环境 .......................................................... 20 测试结果 .......................................................... 20 5.1 5.2 结 论 .................................................................... 22

参考文献 .................................................................... 23 致 谢 .................................................................... 24 声 明 .................................................................... 25 1 引言

1.1 课题背景及意义

计算机网络的发展给计算机产业和整个人类的工作、生活方式带来了巨大的变化,特别是信息技术的发展使一个信息缺乏的时代进入了一个信息爆炸的时代,世界也由于internet而变小。人们通过各种技术,工具使得交流突破了空间的限制。全球范围内的网络互联给人们的生活和工作带来了方便,人们正享受网络技术带给我们美好生活。但同时某些不法分子利用网络的漏洞非法入侵他人的主机系统,有的利用网络盗取他人个人信息,如网上银行帐号密码等,对他人财产安全造成了重大威胁。据有关资料统计我国每年通过计算网络进行违法行为以30%的速度上升。面对计算机犯罪越来越多的趋势,及网络上日益泛滥的信息垃圾和污染情况,我国政府未雨绸缪,已经制定了关于互联网络使用的法律法规,网络安全问题已面临着重大挑战。

随着信息化程度的提高,使我们从一个封闭的环境进入到一个开放的世界,但我们所担心和关心的问题便是网络安全问题,也就是内部网络安全和外部网络安全的问题。本课题正是针对这种情况和需

求,对实时数据捕获与网络信息监控提出系统设计方案,并对信息过滤和跟踪的方法和技术进行研究,这便是我的论文研究的意义与目的。

1.2 本课题研究的相关技术及方法

网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据tcp/ip分层理论进行层层拆解,提取相关协议中的信息。本毕业设计主要通过使用winpcap开发包,在

vc++环境下编写出了一款简单的软件对数据包信息按tcp协议类型、udp协议类型和特定ip地址进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。 1.3 visual c++ 6.0

visual c++6.0是微软公司推出的开发win32应用程序(windows 95/98/2000/xp/nt)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的mfc类库,mfc是一个很大的c++类层次结构,其中封装了大量的类 第 1 页 共 25 页

【篇三:网络抓包设计文档】

基于winpcap的mfc抓包程序设计报告书 引言

随着网络技术的飞速发展,加速了全球信息化的进程,各种重要数据在网上的传播日益普遍,使得网络安全问题越来越为人们所关注。网络抓包工具作为一种网络数据监听程序,在网络安全攻防方面扮演了很重要的角色,目前已经有不少抓包工具,譬如在windows环境下,最富盛名的工具是netxray、wireshark(原ethereal)。网络抓包工具实际上是一把双刃剑,通过使用网络抓包工具,可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析,此分析结果可供网络安全分析之用,也可为黑客发动进一步的攻击提供有价值的信息。而在网络安全方面,目前使用最广泛的tcp/ip协议存在许多安全缺陷,网络抓包工具可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析是有助于网络安全维护的。

根据《网络安全技术发展分析》一文中的数据,2007年以来网络监听技术出现了新额重要特征,传统的sniffer技术是被动地监听网络通信、用户名和口令,而新的sniffer技术则主动地控制通信数据。我们通过对网络抓包工具的数据包的捕获与分析功能的进一步了解,才能做到知己知彼,有针对性地获取所需要的信息,利用这些信息

进行网络安全分析的网络威胁应对。因此对网络抓包技术的研究具有重要的意义。

本程序通过分析网络上常用的抓包软件ethereal,在了解其功能和原理的基础上,以vs2010为开发平台,使用windows环境下的网络数据包捕获开发库winpcap,按照软件工程的思想设计了一个抓包程序。

一、概要设计 1.1开发环境

开发系统选用windows 7操作系统,并且采用microsoft visual studio2010编译系统,具体环境是微软基础类库mfc,这个类库便于我们构造基于windows操作系统的窗口程序。本系统是一个基于对话框的应用程序,并对该对话框添加了按钮控件、树状控件、列表框控件等,同时使用多线程设计,提高程序运行效率。 1.2系统结构

系统结构图如下: 1.3程序流程

根据系统结构,可以相应地得到这个程序的设计流程,通过采用程序的顺序、选择和循环三种基本的控制流程,可以提高程序质量和编程效率,使程序具有良好的可读性、 可靠性、

可维护性以及良好的结构,有利于后面程序的编写。 二、详细设计与实现

网络数据包抓取技术的关键技术在于监听网络数据流,并将接收到的数据包,经过重组分析,成为用户可见的应用层信息。本节主要讨论系统核心部分的具体实现,即利用winpcap开发网络抓包工具,包括了数据包的捕获和分析两大主要部分。 2.1总体设计思路

通过对照前面的设计流程,以及参考了winpcap的相关函数功能,初步构造了利用winpcap进行网络数据包的捕获和过滤的方法,其设计步骤如下:

(1)获得适合的网络接口的列表,得到设备的基本信息(如设备名称和设备描述),利用pcap_findalldevs_ex()函数实现,该函数不仅能打开本地设备,也可以打开远程设备进行远程的抓包控制;

(2) winpcap最强大的特点之一就是数据流的过滤引擎。它提供一种高效的方法来只捕。过滤数据包是通过pcap_compile()相

pcap_setfilter()函数来实现的,winpcap还提供了一个离线的过滤器编译函数pcap_compile_nocap()以方便实现过滤器字符串的离线检查而不影响到当前在运行的抓包函数;

(3)然后打开一个接口并捕捉流量,使用函数pcap_open() 来打开一个捕捉设备。接口打开

后,有两种方法获取数据包。第一种使用pcap_dispatch()或

pcap_loop()函数将会开始捕捉数据包,其中,pcap_dispatch()将会在超时后直接返回,pcap_loop()则一定要等到一定数量的数包被处理了以后才会返回。第二种使用pcap_next_ex()函数来获得缓冲区内的下一个数据包 它包含一个网络适配器的描述符和两个可以初始化和返回给用户的指针 (一个指向 pcap_pkthdr 结构体,另一个指向数据报数据的缓冲)。

(4)将抓到的包数据写入到脱机堆文件中,使用pcap_dump()即可实现;

(5)最后通过pcap_freealldevs()函数来释放接口列表;

(6)生成数据包分析树时需从堆文件中读取相关包数据,需使用

pcap_open_offline()来打开脱机文件,然后使用pcap_next_ex()定位到需要分析的包; 2.2数据结构

在分析数据包时需要定义合适的数据结构来帮助我们分析 我们按照tcp/ip中协议的头信息的定义设定了如下的结构体 /* 4 bytes ip address */ typedefstructip_address {

u_char byte1; u_char byte2; u_char byte3; u_char byte4; }ip_address;

/*ethernet header*/

typedefstructethernet_header {

u_chardstmac[6]; //目标mac地址

u_charsrcmac[6]; //源mac地址 u_shorteth_type; //以太网类型 }ethernet_header; /* ipv4 header */

typedefstructip_header {

u_char ihl:4; /* internet header length (4 bits)*/

u_char ver:4;/*version (4 bits)*/ u_chartos; /* type of service */ u_shorttlen; /* total length */ u_short identification; /*

identification */u_short fo:13; /* fragment offset (13 bits)*/ u_short flags:3;/*flags (3 bits) */ u_charttl; /* time to live */

u_char proto; /* protocol */ u_shortcrc; /* header checksum */ ip_addresssaddr;/* source address */ ip_addressdaddr;/* destination address */ u_intop_pad; /* option + padding */ }ip_header;

/* udp header */

typedefstructudp_header {

u_short sport; /* source port */

u_shortdport; /* destination port */ u_shortlen; /* datagram length */

u_shortcrc; /* checksum */ }udp_header;

typedefstructtcp_header //20 bytes : default {

u_short sport;//source port u_shortdport;//destination port u_longseqno; //sequence no u_longackno; //ack no u_char reserved_1:4; //保留6位中的4位首部长度 u_char offset:4; //tcp头部长度 u_char flag:6; //6位标志 u_char reserved_2:2; //保留6位中的2位 u_short win; u_short checksum; u_shortuptr; }tcp_header;

/*arp/rarp header*/

typedefstructarp_header//28 bytes {

u_shorthrd; //hardware address space=0x0001

u_shorteth_type; //ethernet type ....=0x0800 u_charmaclen; //length of mac address=6 u_chariplen;//length of ipaddres=4 u_shortopcode; //request =1 reply=2 (highbyte) u_charsmac[6]; //source mac address ip_addresssaddr; //source ip address u_chardmac[6]; //destination mac address ip_addressdaddr; //destination ip address }arp_header,rarp_header; /*icmp header*/

typedefstructicmp_header {

u_char type;//type u_char code;//code u_shortchk_sum; //checksum 16bit u_short id; u_shortseq; u_long timestamp; }icmp_header;

typedefstructigmp_header {

u_char type;//type

u_charmrtime; u_shortchk_sum; //max response time u_longmcadd;

}igmp_header; //multicast address

要获取相应协议的内容只需要将数据包内容的指针加上偏移量,所得到的指针转换成相应头部结构体的指针即可,偏移量为该协议前面协议首部的长度和。 2.3模块化设计思路

2.3.1网络适配器的获取与释放设计

winpcap提供了pcap_findalldev_ex函数来实现获得网络适配器设备列表功能,它返回一个pcap_if_t类型的链表alldevs,每个pcap_if_t结构体都包含一个适配器的详细信息,其中成员name和description分别表示一个适配器的名称和一个更容易让人理解的描述。该函数的的原型如下:

intpcap_findalldevs_ex(char *source, structpcap_rmtauth *auth,pcap_if_t **alldevs, char *errbuf);

该函数创建一个能用pcap_open函数打开的网络适配器设备列表。该函数是老函数pcap_findalldevs的一个扩展,

pcap_findalldevs()是一个过时的函数,其只允许列出在本机上的网络设备,而pcap_findalldevs_ex还可列出一个远程机器上的网络设备,此外也能列出一个给定文件夹中可用的pcap文件。因为pcap_findalldevs_ex()依赖于标准的pcap_findalldevs()来获得本地机器的地址,所以它是平台无关的。

获取完成后在combobox中显示设备名称。

当程序结束时释放设备列表,需调用pcap_freealldevs函数实现,将其占用的内存资源释放,函数原型如下:

voidpcap_freealldevs (pcap_if_t *alldevsp) 2.3.2数据包的抓取与存储设计

数据包的抓取与存储采用了多线程的设计,若不采用多线程则在抓包时主窗口进程会失去反应,而造成程序假死。

1、当选择了网卡设备点击start后,程序开始线程uint

readdumpthread(lpvoid lpparameter),参数lpparameter传递的是当前选择的设备,然后使用pcap_open()函数打开设备。该函数的原型如下:

pcap_t* pcap_open(const char *source,intsnaplen,int flags, intread_timeout,structpcap_rmtauth *auth,char *errbuf)

该函数能返回一个设备的句柄,并且能设置网卡是否工作在混杂模式。

2、随后使用pcap_compile()相pcap_setfilter()函数设置过滤器 3、接着使用pcap_next_ex()函数获取数据包,该函数原型如下: intpcap_next_ex ( pcap_t *p,structpcap_pkthdr **pkt_header, constu_char ** pkt_data)

pcap_next_ex() 在成功,超时,出错或eof的情况下,会返回不同的值。在while循环中判断该返回值,满足一定条件继续抓包,以此来实现不停抓包。

因篇幅问题不能全部显示,请点此查看更多更全内容