随笔分类 - WinPcap
摘要:http://www.cnblogs.com/TianFang/archive/2007/11/27/973707.htmlWinPcap编程4——捕获数据包winpcap程序中,捕获数据包主要分为如下几步: 获取网络适配器列表 打开网络适配器 捕获数据 获取网络适配器列表在前文中已经讲述,这里就不再累述了。 打开设备的函数是pcap_open()。下面是参数 snaplen, flags 和 to_ms 的解释说明 snaplen 制定要捕获数据包中的哪些部分。 在一些操作系统中 (比如 xBSD 和 Win32), 驱动可以被配置成只捕获数据包的初始化部分: 这样可以减少应用程序间复制数据
阅读全文
摘要:http://www.cnblogs.com/TianFang/archive/2007/11/27/973673.htmlWinPcap编程3——获取网络适配器列表WinPcap应用程序的第一件事情就是获得已连接的网络适配器列表。 WinPcap提供了pcap_findalldevs_ex() 函数来实现该功能: 它返回一个pcap_if结构的链表,每个这样的结构都包含了一个适配器的详细信息。 下列代码能获取适配器列表,并在屏幕上打印出其名称和描述信息,如果没有找到适配器,将打印错误信息。 #include "pcap.h" main(){ pcap_if_t *alld
阅读全文
摘要:http://www.cnblogs.com/TianFang/archive/2007/11/26/972738.htmlWinPcap编程2——环境搭建搭建WinPcap编程环境可以分为如下几步:1.下载winpcap及开发包。winpcap下载地址:http://www.winpcap.org/install/default.htm winpcap开发包: http://www.winpcap.org/devel.htm2. 安装winpcap3. 解压winpcap开发包,将得到一个WpdPack目录,该目录中包含了5个子目录:docs、Examples-pcap、Examples-r
阅读全文
摘要:http://www.cnblogs.com/TianFang/archive/2007/11/26/972681.htmlWinPcap编程1——简介什么是WinPcapWinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. 大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。 这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。 然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络中的数据包。也就是说,那些应
阅读全文
摘要:http://blog.csdn.net/superhacker110/archive/2004/11/30/198560.aspx 手把手教你玩转ARP包(完)【数据包的游戏系列之一】 收藏 手把手教你玩转ARP包(完)【数据包的游戏系列之一】 作者: CSDN VC/MFC 网络编程 PiggyXP ^_^本篇目录: 四。ARP包的游戏 1. 小伎俩 2. ARP欺骗的实现 3. 基于ARP欺骗的监听原理四.ARP包的游戏既然我们可以自己来填充数据包,那么来玩些ARP的“小游戏”欺骗就是易如反掌了,当然,是在没有安全防护的网络里 ,比如只有hub或者交换机把你们相连,而没有路由分段……^_
阅读全文
摘要:http://blog.csdn.net/piggyxp/archive/2004/05/31/19608.aspx作者:CSDN VC/MFC 网络编程 PiggyXP ^_^ 目录: 二。发送数据包的编程实现 1. 填充数据包 2. 发送数据包三。一些附加步骤及说明 1. 如果在VC中使用winpcap 2. 获得网卡信息列表 3. 获得系统ARP信息列表................紧接上文................1. 填充数据包下面我举个填充包头的例子,我首先定义个了一个转换字符的函数,如下/******************************************
阅读全文
摘要:http://blog.csdn.net/piggyxp/archive/2004/05/31/19607.aspx作者: CSDN VC/MFC 网络编程 PiggyXP ^_^ 目录: 一. 关于ARP协议的基础知识 3. ARP包的填充二。发送数据包的编程实现 1.填充数据包.........................紧接上文............................3.ARP包的填充1) 请求包的填充:比如我们的电脑MAC地址为 aa-aa-aa-aa-aa-aa,IP为 192.168.0.1我们想要查询 192.168.0.99的MAC地址,应该怎么来做呢?首先
阅读全文
摘要:http://blog.csdn.net/piggyxp/archive/2004/05/31/19606.aspx前 言 首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料以及帮助^_^经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,所以就想写一系列的文章来详细深入的探讨关于数据包的知识,,我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带有详细注释的源码(为了照顾大多数朋友,我提供的都是MFC的源码)。不过由于也是初学者,疏漏之处还望不吝指正。本文凝
阅读全文
摘要:http://blog.csdn.net/piggyxp/archive/2004/06/23/24449.aspxB. 打开相应网卡并设置为混杂模式: 在此之前肯定要有一段让用户选择网卡、并获得用户选择的网卡的名字的代码,既然上面已经可以获得所有网卡的名字了,这段代码就暂且略过了。 我们主要是要用到 pcap_open_live 函数,不过这个函数winpcap的开发小组已经建议用pcap_open 函数来代替,不过因为我的代码里面用的就是pcap_open_live,所以也不便于修改了,不过pcap_open_live使用起来也是没有任何问题的,下面是pcap_open_live的函数声明
阅读全文
摘要:http://blog.csdn.net/piggyxp/archive/2004/06/23/24444.aspx前 言 经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,也写过很多的sniffer,所以就想写一系列的文章来详细深入的探讨关于数据包的知识。我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带有详细注释的源码(为了照顾大多数朋友,我提供的都是MFC的源码)。不过由于也是初学者,疏漏之处还望不吝指正。本文凝聚着笔者心血,如要转载,请指明原作者及出处,谢谢!^_^OK,.
阅读全文
摘要:在本讲中,我们将学习如何处理捕获到文件中的数据包。 WinPcap提供了很多函数来将网络数据流保存到文件并读取它们 -- 本讲将教你如何使用这些函数。我们还将看到如何使用WinPcap内核堆特性来获取一个高性能的堆。(请注意:此时,由于一些有关新内核缓冲的问题,这些特性将无法使用) 堆文件的格式是libpcap的一种。这种格式中,包含了被捕捉到的包的二进制数据,并且,这种格式是许多网络工具所使用的...
阅读全文
摘要:现在,我们可以捕捉并过滤网络流量了,那就让我们学以致用,来做一个简单使用的程序吧。 在本讲中,我们将会利用上一讲的一些代码,来建立一个更实用的程序。 本程序的主要目标是展示如何解析所捕获的数据包的协议首部。这个程序可以称为UDPdump,打印一些网络上传输的UDP数据的信息。 我们选择分析和现实UDP协议而不是TCP等其它协议,是因为它比其它的协议更简单,作为一个入门程序范例,是很不错的选择。让我...
阅读全文
摘要:WinPcap和Libpcap的最强大的特性之一,是拥有过滤数据包的引擎。 它提供了有效的方法去获取网络中的某些数据包,这也是WinPcap捕获机制中的一个组成部分。 用来过滤数据包的函数是 pcap_compile() 和 pcap_setfilter() 。 pcap_compile() 它将一个高层的布尔过滤表达式编译成一个能够被过滤引擎所解释的低层的字节码。有关布尔过滤表达式的语法可以参见...
阅读全文
摘要:本讲的范例程序所实现的功能和效果和上一讲的非常相似 (打开适配器并捕获数据包), 但本讲将用 pcap_next_ex() 函数代替上一讲的 pcap_loop()函数。 pcap_loop()函数是基于回调的原理来进行数据捕获,这是一种精妙的方法,并且在某些场合中,它是一种很好的选择。 然而,处理回调有时候并不实用 -- 它会增加程序的复杂度,特别是在拥有多线程的C++程序中。 可以通过直接调用...
阅读全文
摘要:现在,我们已经知道如何获取适配器的信息了,那我们就开始一项更具意义的工作,打开适配器并捕获数据包。在这讲中,我们会编写一个程序,将每一个通过适配器的数据包打印出来。 打开设备的函数是 pcap_open()。下面是参数 snaplen, flags 和 to_ms 的解释说明 :snaplen :制定要捕获数据包中的哪些部分。 在一些操作系统中 (比如 xBSD 和 Win32), 驱动可以被配置...
阅读全文
摘要:在第1课中, (获取设备列表) 我们展示了如何获取适配器的基本信息 (如设备的名称和描述)。 事实上,WinPcap提供了其他更高级的信息。 特别需要指出的是, 由 pcap_findalldevs_ex() 返回的每一个 pcap_if 结构体,都包含一个 pcap_addr 结构体,这个结构体由如下元素组成: 一个地址列表 一个掩码列表 (each of which corresponds t...
阅读全文
摘要:通常,编写基于WinPcap应用程序的第一件事情,就是获得已连接的网络适配器列表。libpcap和WinPcap都提供了 pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个 pcap_if 结构的链表, 每个这样的结构都包含了一个适配器的详细信息。值得注意的是,数据域 name 和 description 表示一个适配器名称和一个可以让人们理解的描述。 下列代码能获...
阅读全文

浙公网安备 33010602011771号