基于winpcap的嗅探器设计与实现
基于Winpcap的网络嗅探器设计与实现
1
基于网络协议分析和网络数据捕获的技术,从广义上来讲,通常被叫作协议分析仪(ProtocofAnalyzer)。这样定义的原因在于我们常常将一些纯软件的,并且更侧重于捕获网络数据和进行协议分析的系统叫做嗅探器(Sniffer).而在实际用中,基于硬件或者软硬件结合的网络数据捕获和分析系统我们称之为协议分析仪。当然,我们并不是在所有的场合都对两者之间的概念进行区分,因为他们在功能上都能完成类似的工作.举例子来说,一些网络管理软件及一些网络协议分析仪都使用了嗅探器技术。
嗅探器是一柄双刃剑,具有正反两个方面的作用。作为正面用途,嗅探器主要分析网络流量,作为发现和修补网络故障的重要手段.例如,当网络某个部分运行出现异常,报文发送速度下降时,网络管理员无法确切找出问题的关键所在时,嗅探器即可做出精确的判断。此外,网络管理员还可以利用嗅探器诊断出网络内大量不可见的模糊问题,比如,哪个网络协议传输了多少流量,占主要通讯协议的主机,大多数通讯的目的地址,报文发送的时间和主机间报文传送的时间间隔等.另一方面,嗅探器也可以被别有用心的人用于非法行为。被嗅探器所截取的数据经过处理可以向用户还原显示数据包中所封装的信息,该信息包括用户标识符和口令以及机密的或者专用的信息,用于危害邻居网络的安全或获取更高级别的访问权限。
本次课程设计通过基于Winpcap的网络嗅探器设计与实现,网络嗅探器对网络上传输的数据包的捕获与分析功能的进一步了解,做到知己知彼。通过网络嗅探器对网络上传输的数据包进行捕获和分析,获取所需要的信息,利用对这些信息进行网络安全分析。因此,网络嗅探器的研究具有重要意义。
【网络程序设计】在vsMFC下开发基于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的网络嗅探器的设计与实现
性 与可靠 性 日益 受到人们 的重 视 。网络 嗅探 器 可 以有效完 成对 网络 上 传输 数 据 包 的捕 获 , 而收 从 集 与分析 网络 信息 , 网络 流 量监 控 和 故 障 检测 是
所 必 不 可 少 的 工 具 之 一 , 网 络 管 理 与 网 络 安 全 对 具 有重要 的意义 。
Ab t a t Ai n t h e u t wbe fn t r n g me t t ep p r rp ss an t o k s i e t n c p sr c : mi g a es c r y p lmso ewo k ma a e n , a e o o e ew r nf r h Wi p a t i h p wi
a e e o me tp a om n s a sd v l p n lt r a d Viu lC f a e eo me t o l ip a n iu l .T e fn a n a p i cpe o s d v l p n o n c p a d v s a t W C h d me t r i l f u l n
De i n a d I p e e t to f sg n m lm n a i n o
Newo k S i e s d o i p a t r n f r Ba e n W n c p
C HENG 。 n L n I Fa g
( col f o p t cec , agh Istt o eh o g , agh u e 4 5 0 ) Sh o o m ue S i e Hun sin tue f c nl y Hun si b i 3 0 3 C r n i T o H
随着 I e e 的迅 猛发展 , nr t tn 网络 已 1益成 为 工 3
基于windows平台的网络嗅探器系统的设计与实现
・ 1 7 9 ・
基于 wi n d o ws 平台 的网络嗅探红岩 彭 斌 ( 吉林 建筑大学电气与计算机 学院 , 吉林 长春 1 3 0 0 2 1 ) 摘 要: 网络嗅探和分析技 术是很 多网络 安全软件 实现 的基础 , 也是设计 网络分析软件 的基础 , 现存在的一 些技术如 防火墙 、 协议分 析 等软件 的实现 的前提都是 以数据 包的嗅探捕获 , 所以研 究相 关的数据 包嗅探 和分析技 术对保证 网络 的安全运行是十分必要的。该项 目 实现 了数据 包嗅探 分析 器。程序 中网络监 听的 目标 T C P B P协议 中的 A R P 、 I P 、 T C P 、 U D P四种协议 , 基 于 Wi n d o w s操作 系统 为平 台, 在数 据链路层捕 获原始数据 包, 并从 中提取 出网络通信协议及数据 包的数据。 关键词 : 数据 包; 网络 监 听 ; 嗅探 捕 获 ; 网络 通信 协议 随着计算机技术的迅速发展 , 网络的应用 的迅速普及 , 网络已 日 益 成 为生 活 中必不 可少 的一部 分 。由于计算 机 网络具 有 连接形 式 多样性 、 f o r ( i n t i =0 ; i <m _ P a c k e t Mo n i t o r s . L e n g t h ; i + + 】 { 互联性 、 开放性 、 等特点 , 而且多数都采用了 T C P / I P 协议 , 而T C P / I P在 P a c k e t Mo n i t o r s 0 ]=n e w P a c k e t Mo n i t o r ( h o s t s [ i  ̄ 设计上要求运行效率 , 而且要建立在互相信任 的基础上, 其本身就是造 成网络不安全的主要 因素 ,因此这也是 T C P  ̄ P协议在设计上的缺陷 , ) P a c k e t s=n e w A r r a y L i s t 0 ; 从而导致针对网络系统的攻击事件频繁发生, 当我们在享受网络带来的 } 方便 、 快捷 、 的同时, 也应该认识到网络安全所面临的严峻考验。与此 同 P r i v a t e v o i d P a c k e t Mo n i t o r mF o r m C l o s i n g ( o b j e c t s e n d e r , C a n c e l E v e n t A r g s e ) ( 时, 网络的安全胜与可靠性 日益受到人们越来越高的重视 , 安全 l 生 指的 O n T o o l B a r C l i c k ( t h i s , n e w T o o l B a r B u t t o n C l i e k E v e n t A r g s ( S t o p B u t t o n ) ) ; 1 是网络上的信息不被更改、 泄露、 和破坏。网络数据包捕获、 监听与分析 p u b l i c v o i d On T o o l B a r C l i c k ( o b j e c t s e n d e r , T o o l B a r B u t t o n C l i c k E v e n t A r g s 曲{ 技术是网络安全维护的一个基础技术 , 同时也是网络入侵的核心手段。 i f ( e . B u t t o n= =S t o p B u t t o n ) f / / 停 止监听所有的端 口 f o r ( i n t i=0 ; i<m_ P a e k e t Mo n i t o r s . L e n g t h ;i + + ) { 所 以研究有关数据包捕获和分析技术对保证 网络的健康 、安全运行是 非 常 意义 的 。 e d=f a l s e ; 1技 术背景 S t a t u s B a r . T e x t =” 停止嗅探 ” +s t r i n g . F o r r l f l 卅 数据包总量 1 . 1 嗅探原理。嗅探是一种常用的收集有用数据的方法 , 嗅探器是 f 0 l 字节数 : 利用计算机 的网络接 口截获 目的地为其他计算机 的数据报文的一种工 … 1 b y t e s ” , m_ P a c k e t s . C o u n t , m_ P a c k e t s S i z e ) ; ) e l s e i f ( e B u t t o n= =S t a r t B u t t o n ) { / / 开始监听所有的端口 具。嗅探器的工作原理总共可以分为三大类 : a 基于中间人攻击的嗅探 f o r ( i n t i=0 ; i<m _ P a e k e t Mo n i t o r s . L e n g t h ; i + + 】{ 原理 ; b . 基于A R P欺骗的网络嗅探原理 ; c . 基于网卡混杂模式的嗅探原 r y f 理: 网卡一般可以分为四种接收模式 : 直接方式 : 在这种模式下 , 只有 P a c k e t M o n i t o r s [ i ] . S t a r t 0 ; ) c a t c h( E x c e p t i o n e x ) ( 目的网卡才能接收该数据 ; b . 混杂模式 : 在这种模式下的网卡能够接收 Me s s a g e B o x . S h o w ( t h i s , ” 界面出现—个错误 ”+ 切通过它的数据 . c . 广播方式 : 该模式下的网卡能够接收网络 中的广 Me n t a l i s . o r g P a c k e t M o n i t o r  ̄ i ] . I R T o S t i r n g 0 +” n ’ +e x . Me s s a g e+’ T ’ , ” P a c k e t M o n i t o r ” , M e s s a g e B o x B u t t o n  ̄ O I < , Me s s a g e B o x l c o n . E r r o r ) ; 播信 息; d . 组播方式 : 设置在该模式下的网卡能够接收组播数据。 】 1 . 2 捕获机制。 网络数据包捕获技术是从 网络上捕获特定的或所有 的网络数据包信息, 供其他网络 安全系统使用。 不同的网络有不 同的 J 捕获技术, 不同的操作系统其捕获机理也不尽不同。 操作系统提供的捕 S t a t u s B a r . T e x t :” 检测所有端口 ” ; 获机制主要有以下 三种 : a . S O C K _ P AC K E T类型套接 口; b .数据链路提 1 e l s e i f ( e . B u t t o n= =C l e a r B u t t o n ) ( / / 清除列表 P a c k e t L i s t I t e ms . C l e a r 0 ; 供者接 口( ( D a t a l i n k P r o v i d e r I n t e r f a c e , D L P I ) ) ; c 伯 克利数据包过滤
上机:基于WinPcap的网络嗅探器设计与实现
}
ﻩﻩ
ﻩﻩprintf("Enterthe interface number(1-%d):",i);
ﻩscanf("%d",&inum);
ﻩ
ﻩﻩif (inum <1|| inum>i)
ﻩ{
ﻩprintf("\nInterfacenumber outofrange.\n");
ﻩ{
fprintf(stderr,"Error inpcap_findalldevs_ex: %s\n",errbuf);
ﻩﻩexit(1);
ﻩﻩ}
ﻩ
ﻩ/* Printthe list*/
for(d=alldevs;d;d=d->next)
ﻩ{
printf("%d.%s\n",++i,d->name);
ﻩ/*Free thedevicelist*/
ﻩﻩpcap_freealldevs(alldevs);
ﻩﻩreturn -1;
}
ﻩ
/* Jumptothe selectedadapter*/
ﻩfor(d=alldevs, i=0;i<inum-1 ;d=d->next, i++);
ﻩ/*Opentheadapter */
ﻩﻩﻩreturn-1;
ﻩ}
ﻩ}
else
ﻩ{
ﻩﻩ/*Do notcheck fortheswitchtype ('-s') */
ﻩif((fp=pcap_open_live(argv[2],// name ofthe device
ﻩﻩ65536,ﻩﻩﻩﻩﻩ//portion of the packet tocapture.
基于Winpcap嗅探器技术分析与实现
网 卡是 网 络 中 节 点 主 机 的关 键 硬 件 设 备 。 对 数 据 的
心 数 据 结 构 设 计 ,函 数 及 Wi n p c a p包获 取 流 程 ,并 最后 给 出了 实验 结果 。
关 键 词 :嗅探 器 ; 网络 安 全 ;数 据 结 构 ;动 态链 接 库 ;函数
随着计算 机技术 和 I n t e r n e t 网 络 技 术 在 生 产 和 生 活 是 否 接 收处 理数 据 ,如 果 认 为 应 该 处 理 ,则 网 卡 就 会 产
可 以通 过 嗅探 器 分 析 网络 流 量 ,找 出 网络 阻 塞 的来 源 。
模 式 :只有 匹配 的 目的 网卡 才 能 接 收 数 据 信 息 。 混 杂 模 式 :网 卡能 够 可 以接 收一 切 通 过 它 的数 据 信 息 。
为 实 现 接 收 网 络 中经 过 网卡 的所 有 数 据 ,需 要 把 网
温 乃 宁 ,龚 尚福
( 西 安科 技大 学 计算 机学 院 ,陕西 西安 7 1 0 0 5 4 )
摘 要 :嗅探 器技 术在 网络 安 全技 术 中 处 于 非 常 重 要 的 作 用 ,直 接 关 系到 网络 中数 据 传 输 的安 全 性 和 可 靠 性 。 本 文 分析 了嗅探 器 的概 念 和 工 作 原 理 、Wi n p c a p嗅探 器 的 功 能 和 组 成 , 阐述 了 Wi n p c a p嗅 探 器 的 核
嗅探器的实现
通信网络编程实验嗅探器的实现班级:学号:姓名:一、实验目的掌握基于Winpcap的协议分析器的设计方法二、原理介绍嗅探器程序一般包括内核部分和用户分析部分。
1)内核部分负责从网络中捕获和过滤数据。
2)用户分析部分负责界面、数据转化与处理、格式化、协议分析,如果在内核没有过滤数据包,在这里还要对数据进行过滤。
一个较为完整的基于网络监听和过滤的程序一般包括以下步骤:1)数据包捕获2)数据包过滤与分解3)数据分析数据包捕获常用的方法有两种:1)通过设置硬路由器的监听端口;2)利用以太网络的广播特性。
这种方式必须将网卡设置为混杂(promiscuous)模式。
监听程序工作在网络环境的底三层,可以拦截所有经过该机器的网络上传送的数据,然后将这些数据做相应处理,可以实时分析这些数据的内容,进而分析网络当前状态和整体布局。
基于windows的数据包捕获方案有以下几种:1)使用原始套接字(row socket)机制。
方法简单,但功能有限,只能捕获较高层的数据包;2)直接连接调用NDIS库函数,这种方法功能非常强大,但是比较危险,很可能导致系统崩溃和网络瘫痪;基于windows的数据包捕获方案有以下几种:1)使用或者自行编写中间层驱动程序,这是微软公司推荐使用的一种方法,微软提供的win2000 DDK中也提供了几个这样的驱动程序。
在具体的实现方式上可分为用户级和内核级两类。
其中内核级主要是TDI捕获过滤驱动程序,NDIS中间层捕获过滤驱动程序,NDIS捕获过滤钩子驱动程序等,它们都是利用网络驱动来实现的;而用户级的包括SPI接口,Windows2000包捕获过滤接口等;2)使用或自行编写协议驱动程序;3)使用第三方捕获组件或者库,比如Winpcap。
捕获数据包后要进行的工作是对其进行包过滤与分解,就是在海量的数据里面找我们感兴趣的内容。
一些基础的过滤规则如下:1)站过滤:专门筛选出来自一台主机或者服务器的数据;2)协议过滤:根据不同的协议来筛选数据,例如:选择TCP数据而非UDP数据;3)服务过滤:根据端口号来选择特定数据包;4)通用过滤:通过数据包中某一特定位置开始,选择具有某些共同数据特征的数据包;过滤完成后,必须进行数据分析,这一部分就是对已经捕获的数据包进行各种分析,比如:网络流量分析、数据包中信息、分析敏感信息提取分析等,功能取决于系统要达到的目的。
基于WinPcap 的网络嗅探器设计与实现
基于WinPcap 的网络嗅探器设计与实现作者:赵钢来源:《电脑知识与技术》2013年第15期摘要:针对安全问题在网络管理中的日益突出,基于Winpcap开发平台,使用Visual C + +作为开发工具,设计并开发了一个网络嗅探器。
该文设计了一个GUI程序,实现IP、TCP、UDP数据包捕获和分析。
同时分析了网络嗅探器的基本工作原理,并阐述了应用捕获数据包流,根据Winpcap关键功能给出了其具体实现。
结果表明,该网络嗅探器结构简单,捕获数据快速,对网络安全管理具有重要意义。
关键词:WinPcap;MFC;嗅探器;计算机网络中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)15-3506-031 嗅探协议原理1.1 IP协议IP是英文Internet Protocol(网络互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。
在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。
1.2 TCP协议TCP:Transmission Control Protocol (传输控制协议)TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层通信协议。
在OSI/RM模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。
1.3 UDP协议UDP的全称是用户数据报协议,在网络中该协议用于处理数据包。
它处在OSI模型中的第四层,即传输层,它处在TCP协议的更高一层。
UDP不提供数据报分组、装配,不能将退回的数据包进行排序。
也就是说,在消息发送后,不知道是否它是安全完整无损地运到了。
UDP是用来支持那些需要相互传递数据的计算机网络应用程序。
许多系统,包括网络视频会议系统,客户端/服务器模式的网络应用程序,都需要使用UDP协议。
基于WinPcap的网络嗅探器设计
结课论文题目名称:端口扫描程序的设计和实现院系名称:计算机学院班级:网络124学号:201200824426学生姓名:张继杰授课教师:孙飞显2014 年12月15目录1 引言 (3)1.1 课题的背景及意义 (3)1.2 端口扫描现状 (3)2 系统设计 (3)2.1 系统主要目标 (3)2.2 开发环境及工具 (4)2.3 功能模块与系统结构 (4)3 系统功能程序设计 (5)3.1、TCP端口扫描的工作原理: (5)3.2 TCP端口扫描的关键问题: (6)3.3TCP端口扫描程序代码分析 (7)4 设计步骤与实现 (7)4.1使用vc++6.0创建一个工程 (7)4.2 设计程序对话框 (10)4.3在的初始化对话框函数OnInitDialog()中添加列表控件的初始化: (11)4.4TCP connect() 扫描 (13)4.4UDP扫描: (14)4.41UDP相关代码截图: (15)5运行结果 (16)结论 (18)参考文献 (18)摘要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。
端口扫描技术是发现安全问题的重要手段之一。
本程序是在Windows系统中使用C语言用MFC完成的一个端口扫描程序。
此程序主要完成了TCP connect()扫描和UDP扫描功能。
TCP扫描支持多线程,能对单个指定的主机进行扫描或对指定网段内的主机进行逐个扫描。
能扫描特定的部分端口号或对指定的端口段内的端口进行逐个扫描。
此端口扫描程序能快速地进行TCP扫描,准确地检测出对TCP协议开放的端口。
而对于UDP扫描只支持单线程,速度较慢。
扫描结果以列表的形式直观地展现出来。
关键词:端口扫描、TCP、UDP扫描1引言1.1 课题的背景及意义网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的,有些却是大门紧闭的。
入侵者们是如何找到,并打开它们的城门呢?这些城门究竟通向何处?在网络中,把这些城堡的“城门”称之为计算机的“端口”。
基于winpcap的嗅探器设计及实现
计算机与信息学院《计算机网络系统实践》报告2013 年 9 月 25设计题目:嗅探器的设计与实现 学生姓名:*** 学 号:2010**** 专业班级:信息安全****一、设计要求1.不限平台,可以使用Libpcap、WinPcap 或 Linux的原始套接字;2.实现一个功能比较简单的、具有图形界面的Sniffer,主线程响应用户界面操作,工作线程完成抓包等工作;3.能够解析出IP层和传输层的协议头,能够过滤TCP、UDP等数据包;4.能够输出文本方式传送的数据包的内容;5.能够进行简单的流量统计。
二、开发环境与工具操作系统:windows7开发工具:visual studio开发语言:C++附加库:Winpcap三、设计原理网络嗅探器是一种常用的监听网络的工具。
所谓嗅探器( Sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。
嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式( 如IP 数据包或者以太网包) 封装的信息流。
其中可能携带了重要数据或敏感信息。
可以将这些捕获到的信息包存档,以利用相应工具可以作进一步分析。
计算机网络的设计为嗅探器的使用创造了最基本的条件。
在目前的网络环境中,所有计算机节点都是共享传输介质,任意节点发出或发往任意节点的数据帧必将经过网内每一个节点的网络接口,此时只需对嗅探节点的网络接口( 网卡) 进行适当的设置便可为实现嗅探的做好准备工作。
在计算机网络系统中,网卡是用来接收网络上其他节点发来的数据帧,其内嵌的单片处理程序会检测数据帧来源的MAC 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。
否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。
基于WinCE的网络嗅探器的设计与实现
【 K e y w o r d s 】Wi n C E ; n e wo t r k s n i f e r ; c a p t re u a n d na a l y s i s ; Wi n p c a p ; N D I S
网络嗅探器是利用共享式的网络传输介质 , 能够捕获 所有数据包传递给上层进行处理 。必须将 网卡 置于混 和解析来 自数据链路层、 网络层和传输层等底层 网络数据 杂模式 才能实现网络 嗅探器。
用 性。
【 关键词】Wi n C E ; 网络嗅探器; 捕获和解析; Wi n p c a p ; N D I S 【 中图分类号】T N 9 1 9 . 5 【 文献标志码】A
De s i g n a n d I mpl e me n t a t i on o f Ne t wo r k Sn i fe r Ba s e d o n Wi nCE
W。 D E B A N D N 宽 E T 带 W 网 O R 络 K
【 本文献信息】胡昊南, 张治中. 基于 Wi n C E的网络嗅探器 的设计与实现[ J ] . 电视技术, 2 0 1 3 , 3 7 ( 5 )
篓
基于 Wi n C E的网络嗅探器 的设 计与实现
HU Ha o n a n,Z HANG Zh i z h o n g
( K e y L a b o r a t o r y O n C o m m u n i c a t i o n N e t w o r k s a n d T e s t i n g T e c h n o l o g y , C h o n g q i n g U n i v e m i @o f P o s t s a n d T e l e c o m m u n i c a t i o n s , C h o gq n i g4 n 0 0 0 6 5 , C h i n a )
基于Winpcap的网络嗅探程序设计
究。网络嗅探可获得 网络上传输的数据包 , 它是建立
在数据包捕获的基础 上的。 目前, 大多数 U i平 台 n x 都有支持捕获数据包的内核模块 , Wi o 平台除 而 nw ds 20 O0带有 一 个 非 常简 单 的 I 滤 器 外 , 它 系统 都 P过 其
庄春兴 . 彭奇志
( 江南太学青山湾校 区信 息工程学院 ,- 无锡 24 3 ) /苏 y 106
摘要 :数据 包捕 获与嚏撂技 术是设计 网络分析软件 的基础 , Wi c 而 na p  ̄是在 Wi oe系统 中实现 的一个优 秀的包捕 获槊 n' d, , s 构, 本文对该软件 包的结构与功能进行 了详细 的分析 , 绍 了应 用 Wi cp设计嗅探 程序 的方法。 介 n a p 关键词 :包捕获 ; 哺络 嚏探 ;P ; P ; 岷 B FN F 中国分类号 :T 330 P 9 .7 文献 标识码 :A
p c e t u e ac i c rs T f a e 吐r I e h t cu e a df t n o te s  ̄a r a k ta d p e et h a k t 2 tr rht t e . rsp p ri o l ste s u tr n i i s f h ct ae p c e n r s steme o fsl e ep eu i dc r me o - t d o i i r h l ds r e i .
一
ai r 等人提出并实现 的。它 的主要思想来源于 U i m n x
系统 中最著 名 的 BD包捕 获 架 构 , ncp的基 本结 S Wi a p 构 如图 1 示 。 所 Wipa nep由三 个 模 块组 成 , 一个 是 工作 在 内核级 的 N F包 过 滤 器 ; 外 两个 在 用 户 级 , 用 户 级 的 P 另 即 w cpdl 块 以及 一个动 态连 接库 pce.l pa ,l模 aktd 。 l
开发基于winPcap的嗅探器
网络安全课程设计报告(2015-2016 第一学期)题目开发基于winPcap的嗅探器专业学号姓名指导教师日期评分分细评分项优秀良好中等差遵守机房规章制度实验原理分析与设计课题功能实现情况设计验收与答辩课程设计报告书写简短评语教师签名:年月日评分等级备注开发基于winPcap的嗅探器一、实验目的开发一个winpcap的嗅探器,用它来捕获所有流经网卡的数据包,并进行分析。
二、实验环境操作系统:Windows 2000/XP编程环境:Visual c++6.0附加库:Winpcap三、实验内容和要求内容:所开发的程序可以输出本机所有网卡的信息和捕获流经网卡的数据包并能够过滤出IP、TCP、UDP、ICM P等数据包要求:掌握基于WinPcap的网络编程模式。
理解并能应用WinPcap设计并实现网络数据包的捕获与解析。
四、实验原理和步骤原理:我们所要做的嗅探器是一种常用的网络数据收集软件,它是在广播式网络环境下利用计算机网络接口截获目的地为其它计算机的数据报文的一种工具。
在以太网中,信息是以明文的形式在网络上传输 ,当将网络适配器设置为混杂模式时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。
IEEE802.3标准的以太网采用的是持续CSMA的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。
运用这一原理使信息捕获系统能够拦截我们所要的信息,这是捕获数据包的物理基础。
首先,抓包系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包,这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。
这个部分是系统依赖的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF(Netgroup PacketFilter)。
Winpcap提供了两个不同的库:Packet.dll和Wpcap.dll。
基于Winpcap的网络嗅探器的设计与实现
收稿日期:2008-11-053基金项目:黄石理工学院2008年科研项目(08yjz18B )作者简介:成俊(1980— ),男,湖北大冶人,助教,本科。
文章编号:1008-8245(2008)06-0022-04基于W inpcap 的网络嗅探器的设计与实现3成 俊 李 芳(黄石理工学院计算机学院,湖北黄石435003)摘 要:针对网络管理中的安全问题,以W inpcap 为开发平台,使用V isual C ++为开发工具,设计了一个网络嗅探器。
分析了网络嗅探器的基本工作原理,描述了W inpcap 捕获数据包的程序流程,最后给出具体实现的关键函数。
结果表明,这种网络嗅探器结构简单,捕获数据快,对网络的安全管理具有重要意义。
关键词:数据包捕获;嗅探;W inpcap 中图分类号:TP393.09 文献标识码:ADesi gn and I mple ment ati on ofNetwork Sn i ffer Based on W i n pcapCHENG Jun L I Fang(School of Computer Science,Huangshi I nstitute of Technol ogy,Huangshi Hubei 435003)Abstract:A i m ing at the security p r oble m s of net w ork management,the paper p r oposes a net w ork sniffer with W inpcap as devel opment p latfor m and V isual C++as devel opment t oolW inpcap and visual C++.The funda mental p rinci p le ofthe net w ork sniffer is analyzed and the p r ocedure during which W inpcap cap tures the packet is intr oduced .The key functi on is finally given.The results show that the net w ork sniffer has such advantages as si m p le structure and fast data cap ture,which is signifant t o the net w ork security and manage ment .Key words:packet cap ture;sniffer;W inpcap 随着I nternet 的迅猛发展,网络已日益成为工作和生活中不可或缺的工具。
基于WinPcap的网络嗅探器设计与实现
基于WinPcap的网络嗅探器设计与实现赵钢【期刊名称】《电脑知识与技术》【年(卷),期】2013(000)015【摘要】@@@@Security problem in network management becomes increasinglyserious, a network sniffer was designed and devel oped based on Winpcap development platform, with Visual C + + as a development tool to solve the problem. This paper introduces the design of a GUI program which uses IP, TCP, UDP to capture and analyze data packets At the sametime, we analyze the basic working principle of network sniffer, and expound the application of capture data packet flow, according to theWin pcap key function give the concrete realization. The results show that, the network structure is simple and the speed of cap ture of data is quick. Hence it is of the vital significance to the network security management.%针对安全问题在网络管理中的日益突出,基于Winpcap开发平台,使用Visual C ++作为开发工具,设计并开发了一个网络嗅探器.该文设计了一个GUI程序,实现IP、TCP、UDP数据包捕获和分析.同时分析了网络嗅探器的基本工作原理,并阐述了应用捕获数据包流,根据Winpcap关键功能给出了其具体实现.结果表明,该网络嗅探器结构简单,捕获数据快速,对网络安全管理具有重要意义.【总页数】3页(P3506-3508)【作者】赵钢【作者单位】西安航空职业技术学院,陕西西安 710089【正文语种】中文【中图分类】TP393【相关文献】1.基于Winpcap的网络嗅探器软件设计 [J], 陆进华;2.基于WinPcap库的网络封包嗅探器实现 [J], 康晓东;裴昌幸3.基于Winpcap的网络嗅探器的设计与实现 [J], 成俊;李芳4.基于共享网络下的网络嗅探器的设计与实现 [J], 张腾;叶晨5.基于windows平台的网络嗅探器系统的设计与实现 [J], 于鹏飞;孙春静;薄红岩;彭斌因版权原因,仅展示原文概要,查看原文内容请购买。
基于Winpcap的网络嗅探器的设计与实现
基于Winpcap的网络嗅探器的设计与实现
成俊;李芳
【期刊名称】《湖北理工学院学报》
【年(卷),期】2008(024)006
【摘要】针对网络管理中的安全问题,以Winpcap为开发平台,使用VisualC++为开发工具,设计了一个网络嗅探器.分析了网络嗅探器的基本工作原理,描述了Winpeap捕获数据包的程序流程,最后给出具体实现的关键函数.结果表明,这种网络嗅探器结构简单,捕获数据快,对网络的安全管理具有重要意义.
【总页数】4页(P22-25)
【作者】成俊;李芳
【作者单位】黄石理工学院计算机学院,湖北,黄石,435003;黄石理工学院计算机学院,湖北,黄石,435003
【正文语种】中文
【中图分类】TP393.09
【相关文献】
1.基于Winpcap的网络嗅探器软件设计 [J], 陆进华;
2.基于WinPcap库的网络封包嗅探器实现 [J], 康晓东;裴昌幸
3.基于WinPcap的网络嗅探器设计与实现 [J], 赵钢
4.基于共享网络下的网络嗅探器的设计与实现 [J], 张腾;叶晨
5.基于windows平台的网络嗅探器系统的设计与实现 [J], 于鹏飞;孙春静;薄红岩;彭斌
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。
否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。
网卡是网络中节点主机的关键硬件设备。
对数据的接收一般有四种设置模式: 广播模式: 接收在网络中进行广播数据信息。
组播模式: 接收组播数据信息。
单播模式: 只有匹配的目的网卡才能接收数据信息。
混杂模式: 网卡能够可以接收一切通过它的数据信息。
四、系统功能描述及软件模块划分系统功能设计本系统的基本功能为实现网络数据包的捕获, 并将其数据内容解析显示。
网络数据包捕获功能主要负责从网络中捕获和过滤数据,这可以通过调用winPcap提供的丰富的API函数来实现; 数据解析及显示部分主要负责界面数据转化、解析、处理、格式化、协议分析等, 这一部分主要通过MFC 来设计一个单文档图形用户界面GUI,解析结果将通过MFC的类库显示到GUI中系统总系结构网络嗅探器的整体设计由三个模块组成, 自底向上分别是嗅探器设置模块, 数据包捕获模块, 解析和显示模块。
嗅探器设置模块主要调用w inP c aP 提供的API,分为获取网络设备信息,设置并编译过滤器,打开网络设备三个步骤。
数据包捕获模块创建了新的线程,利用了winPcap的非回调函数Pcap_ next_ex()函数从winPcap底层驱动的数据缓冲区中读取数据包,并将数据包存储在系统临时文件中, 以便之后的分析。
用Pcap_open_offline()函数从离线文件中读取包。
读取到的任意一个符合捕获条件数据包, 将其内容解析, 并显示本数据包。
捕获完成后, 进人解析和显示模块。
(嗅探器总体结构如图1 )图1.嗅探器总体结构五、设计步骤嗅探器的设置模块a .获取已连接的网络设备列表, winPcap提供了pcap_findalldevs_ex()函数, 这个函数返回一个PcaP-if结构的链表, 每个这样的结构都包含了一个适配器的详细信息。
b.打开网络设备,winPcap提供了pcap_open()函数,该函数第一参数制定要捕获数据包的哪些部分, 第二参数用来制定适配器是否为混杂模式, 第三参数为读取数据的超时时间, 当适配器被打开后, 就可以进行捕获工作了;c.设置过滤器, winPcap中用来过滤数据包的函数是pcap_compile()和pcap_setfilter()。
pcap_compile()它将一个高层的布尔过滤表达式编译成一个能够被过滤引擎所解释的低层的字节码。
pcap_setfilter()将一个过滤器与内核捕获会话相关联。
当pcap_set_filter()被调用时, 这个过滤器将被应用到来自网络的所有数据包, 并且, 所有的符合要求的数据包(即那些经过过滤器以后, 布尔表达式为真的包), 将会立即复制给应用程序。
数据包的捕获模块该部分创建了一个用于捕获数据包的线程, 在该线程中调用winPcap提供的pcap_next_ex()函数从底层驱动数据缓冲区中读取数据包, 该函数接受已打开的网络设备句柄, 返回捕获数据包的实体,并用pcap_dump函数将每一个数据包写人临时文件中。
解析与显示模块该部分在接收到用户发出的捕获完成消息后, 将数据包从离线文件中逐条取出并进行解析和显示。
将解析完毕数据包中的各项内容填人已经预先声明的协议的数据结构中, 包括(序号,捕获时间,以太帧长度,传输层协议,源IP 地址,目的IP地址,源MAC地址,目的MAC地址),然后将数据结构添加到列表视图中WinPcap是一个在Windows操作系统下的免费、公开的用于直接访问网络的开发工具包(编程API)。
大多数Windows网络应用程序都是通过Winsock API (Windows套接口)这类高级编程接口访问网络的。
这种方法允许在网络上进行简单的数据传送,因为操作系统的TCP/IP协议栈实现软件会处理底层细节(协议操作、流程重组等等),并提供一个类似于读写文件的函数接口。
然而,有时候“简便方法”并不能满足实际需要。
有些程序希望绕过TCP/IP 协议栈,直接处理底层网络中的通信数据,它们需要对网络进行底层进行直接访问,即在没有类似协议栈(TCP/IP协议栈)的实体介入条件下对网络进行原始访问。
络程序实际上是绕开操作系统的TCP/IP协议栈直接通过底层网络发送数据,因此,网络程序可以实现一些更低级、更灵活的功能。
开发WinPcap的目的是为Win32应用程序提供一种直接访问底层网络的能力。
通过WinPcap,网络应用程序可以实现如下功能:1) 捕获原始数据包,包括发送到本主机以及在共享网络上的数据包。
2) 数据过滤。
在将数据包发送给应用程序之前按照用户的规定对捕获的数据包进行过滤。
3) 发送原始数据包。
向网络发送原始数据包。
4) 数据包统计。
对网络通信进行统计。
3、基于WinPcap可以开发的网络应用程序基于WinPcap可以开发很多网络应用程序,典型的包括:1) 网络和协议分析软件2) 网络监听软件3) 网络通信量记录软件4) 网络数据生成软件5) 用户机网桥和路由器6) 网络入侵探测系统7) 网络扫描软件8) 网络安全工具二、WinPcap的体系结构分析1、WinPcap的组成与结构如图2.1,WinPcap由一个数据包监听设备驱动程序(NPF)、一个底层的动态连接库(packet.dll)和一个高层的不依赖于操作系统的静态库(wpcap.dll)共三个部分构成。
这里,NPF在操作系统的内核级,packet.dll、wpcap.dll在用户级。
4向9x系统的概念和NT系统的非常相似,只是在某些实现上有点差异,比如说9x只支持ANSI编码,而NT系统则提倡使用Unicode编码。
简单来讲,WinPcap典型的开发和运行环境是windows NT/2000/XP。
当然,早期的WinPcap也支持windows 95/98/Me,但是,我们不推荐在windows 95/98/Me下开发和运行基于WinPcap的网络应用。
二、WinPcap的体系结构分析如图2.1,WinPcap由一个数据包监听设备驱动程序(NPF)、一个底层的动态连接库(packet.dll)和一个高层的不依赖于操作系统的静态库(wpcap.dll)共三个部分构成。
这里,NPF在操作系统的内核级,packet.dll、wpcap.dll在用户级。
1)数据包监听设备驱动程序技术实现上,为了实现抓包,系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包(raw packet)。
这就要求WinPcap的一部分运行在操作系统核心内部,直接与网络接口驱动交互。
由于这个部分是系统依赖(system dependent)的,在Winpcap的解决方案中它被视为是一个设备驱动,称作NPF(Netgroup Packet Filter)。
Winpcap 开发小组针对Windows95,Windows98,WindowsME,Windows NT 4,Windows2000和WindowsXP提供了不同版本的驱动(在Windows95/98/ME中是VXD文件,在WindowsNT/2000中是SYS文件)。
这些驱动不仅提供了基本的特性(例如抓包、发送原始数据包——注入数据包),还有更高级的特性(例如可编程的过滤器系统和监视引擎)。
前者可以被用来约束一个抓包会话只针对网络通信中的一个子集概括地讲,数据包监听设备驱动程序直接从数据链路层抓取网络数据包并过滤,将数据包不加修改地传递给运行在用户层的应用程序。
它在不同的WINDOWS 系统下是不同。
数据包监听设备驱动程序支持BPF过滤机制,可以灵活地设置过滤规则。
2)底层的动态连接库(packet.dll)和高层静态库(wpcap.dll)为了方便编程,WinPcap必须提供一个编程接口(API),这就是WinPcap的底层的动态连接库(packet.dll)和高层静态库(wpcap.dll)。
这里,packet.dll提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;wpcap.dll导出了一组更强大的与libpcap一致的高层抓包函数库(capture primitives),这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行底层动态链接库运行在用户层,它将应用程序和数据包监听设备驱动程序隔离开来,使得应用程序可以不加修改地在不同的WINDOWS系统上运行。
高级的静态链接库和应用程序编译在一起,它使用低级动态链接库提供的服务,向应用程序提供完善的监听接口。
概括来讲,WinPcap包含了一个最优化的内核模式驱动——称作Netgroup Packet Filter(NPF),和一套与libpcap兼容的用户级函数库。