winpcap
文章平均质量分 81
swartz_lubel
这个作者很懒,什么都没留下…
展开
-
c++ winpcap开发(1)
获取设备列表通常,基于WinPcap的应用程序的第一件事是获取附加网络适配器的列表。libpcap和WinPcap都为此提供了pcap_findalldevs_ex()函数:该函数返回一个pcap_if结构的链表,每个结构都包含有关连接的适配器的综合信息。特别地,字段名称和描述分别包含对应设备的名称和人类可读描述。以下代码检索适配器列表,并在屏幕上显示,如果没有找到适配器,则打印错原创 2017-07-20 19:27:06 · 1348 阅读 · 0 评论 -
libpcap使用
libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。今天我们利用它来完成一个我们自己的网络嗅探器(sniffer)首先先介绍一下本次实验的环境:Ubuntu 11.04,IP:192.168.1.1,广播地址:192.168.1.255,子网掩码:255.255.255.0可以使用下面的命令设置:sudo ifconfig eth0 192.1...转载 2018-02-28 19:03:05 · 408 阅读 · 0 评论 -
pcap_open 和 pcap_open_live
pcap_t* pcap_open ( const char * source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth * auth, char * errbuf ) 打开一个通用源,以便捕获/发送(仅限WinPcap)流量。该pcap_open()替换所有pcap_open_x原创 2017-07-21 19:44:44 · 21578 阅读 · 0 评论 -
c++ winpcap开发(10)
过滤表达式语法wpcap过滤器基于声明性谓词语法。过滤器是包含过滤表达式的ASCII字符串。pcap_compile()接受表达式并将其转换为内核级包过滤器的程序。该表达式选择要转储的数据包。如果没有给出表达式,则网络上的所有数据包将被内核级过滤引擎接受。否则,只接受表达式为“true”的数据包。该表达式由一个或多个 基元组成。 原语通常由 一个或多个限定符前面的id(名称或数字)原创 2017-07-21 18:48:10 · 582 阅读 · 0 评论 -
c++ winpcap开发(9)
收集网络流量统计本课程展示了WinPcap的另一个高级功能:收集网络流量统计信息的能力。统计引擎利用内核级包过滤器对传入的数据包进行有效的分类。如果您想了解更多详细信息,可以参考NPF驱动程序内部手册。为了使用此功能,程序员必须打开适配器并将其置于统计 模式。这可以用pcap_setmode()完成。特别地,MODE_STAT必须用作该函数的模式参数。通过统计模式,监控TCP流原创 2017-07-20 22:53:39 · 1012 阅读 · 0 评论 -
c++ winpcap开发(3)
打开适配器并捕获数据包现在我们已经看到如何获得适配器来玩,让我们开始真正的工作,打开适配器并捕获一些流量。我们将编写一个程序,其中打印出一些关于流经适配器的数据包的信息。打开捕获设备的功能是pcap_open()。参数,snaplen,标志和to_ms值得一些解释。snaplen指定要捕获的数据包的部分。在某些操作系统(如xBSD和Win32)上,数据包驱动程序可以配置原创 2017-07-20 21:55:58 · 2281 阅读 · 0 评论 -
c++ winpcap开发(8)
发送数据包虽然名称WinPcap清楚地表明图书馆的目的是分组捕获,但还提供了其他有用的原始网络功能。其中,用户可以找到一组完整的功能来发送数据包。请注意,原来的libpcap库目前没有提供任何方式发送数据包,因此这里显示的所有功能都是WinPcap扩展,在Unix下不起作用。用pcap_sendpacket()发送单个数据包发送数据包的最简单方式如下面的代码段所示。打开适配原创 2017-07-20 22:52:04 · 609 阅读 · 0 评论 -
c++ winpcap开发(7)
处理离线转储文件在这个课程中,我们将学习如何处理数据包捕获到一个文件(转储到文件)。WinPcap提供广泛的功能来将文件的网络流量保存到文件并读取转储的内容 - 本课将介绍如何使用所有这些功能。我们还将了解如何使用WinPcap的内核转储功能来获取高性能转储(注意:由于新内核缓冲区存在一些问题,此功能已禁用)。转储文件的格式是libpcap格式。该格式包含二进制形式的捕获数据包的数原创 2017-07-20 22:50:41 · 717 阅读 · 0 评论 -
c++ winpcap开发(6)
既然我们能够捕获和过滤网络流量,我们希望把我们的知识与一个简单的“现实世界”应用程序一起使用。在本课中,我们将从以前的课程中获取代码,并使用这些代码构建更有用的程序。当前程序的主要目的是显示如何解析和解释捕获的数据包的协议头。生成的应用程序UDPdump打印了我们网络上UDP流量的摘要。我们选择解析和显示UDP协议,因为它比其他协议(如TCP)更易于访问,因此是一个很好的初始示例。我们来看原创 2017-07-20 22:31:07 · 703 阅读 · 0 评论 -
c++ winpcap开发(5)
过滤引擎是WinPcap(和libpcap)提供的最强大的功能之一。它提供了一种非常有效的方式来接收网络流量的子集,并且(通常)与WinPcap提供的捕获机制集成。用于过滤数据包的功能是pcap_compile()和pcap_setfilter()。pcap_compile()接收一个包含高级布尔(filter)表达式的字符串,并产生一个低级字节代码,可以在包驱动程序中由fil原创 2017-07-20 22:25:40 · 595 阅读 · 0 评论 -
c++ winpcap开发(4)
捕获数据包而没有回调本课程中的示例程序与以前的程序(打开适配器和捕获数据包)完全相同,但它使用pcap_next_ex()而不是pcap_loop()。pcap_loop()的基于回调的捕获机制是优雅的,在某些情况下可能是一个很好的选择。但是,处理回调有时是不实际的 - 通常会使程序更加复杂,特别是在多线程应用程序或C ++类的情况下。在这些情况下,pcap_next_ex()使用原创 2017-07-20 22:09:06 · 542 阅读 · 0 评论 -
c++ winpcap开发(2)
获取有关可用适配器的基本信息(即设备名称和描述)。实际上WinPcap还提供其他高级信息。特别地,pcap_findalldevs_ex()返回的每个pcap_if结构还包含pcap_addr结构的列表,其中包含:该接口的地址列表。网络掩码列表(每个都对应于地址列表中的一个条目)。广播地址的列表(每个地址对应于地址列表中的条目)。目的地址列表(每个目的地址对应于地址列表中的条目)。此外原创 2017-07-20 20:06:04 · 598 阅读 · 0 评论 -
libpcap 定期生成一个pcap文件
#include <iostream>#include <pcap.h> #include <time.h>#include <unistd.h> void getPacket(u_char * arg, const struct pcap_pkthdr * pkthdr, const u_char * packet) { ...原创 2018-03-01 11:30:04 · 1802 阅读 · 0 评论