WinPcap
文章平均质量分 66
WinPcap学习教程
贝勒里恩
用生命写代码,用灵魂做界面!
展开
-
Qt--配置WinPcap
一、WinPcap介绍winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程,有如下几个功能:捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据;在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;在网络上发送原始的数据包;收集网络通信过程中的统计信息。如果想详细了解可以去原创 2021-04-22 16:16:20 · 3846 阅读 · 5 评论 -
WinPcap获取设备列表
一、前言基于WinPcap应用程序的第一件事,就是获取已连接的网络适配器列表。libpcap和WinPcap都提供了pcap_findalldevs_ex()函数来实现这个功能:这个函数返回一个pcap_if结构的链表,每个这样的结构都包含了一个适配器的详细信息,pcap_if的数据域name和description表示一个适配器名称和一个可以让人们理解的描述:struct pcap_if{ char* name; char* description; pacp_if* next;}二原创 2021-04-27 10:50:04 · 424 阅读 · 0 评论 -
WinPcap获取已安装设备的高级信息
一、前言在WinPcap获取设备列表一文中我们展示了如果获取适配器的基本信息(设备的名称和描述)。事实上,WinPcap提供了其他更高级的信息。特别需要指出的是,有pcap_findalldevs_ex()返回的每一个pcap_if结构体,都包含一个pcap_addr结构体:struct pcap_if{ char* name; char* description; pcap_if* next; struct pcap_addr { sockaddr* addr; //一个地址列原创 2021-04-29 09:53:22 · 330 阅读 · 0 评论 -
WinPcap打开适配器捕获数据
一、前言打开适配器的函数是:pcap_open(),定义如下:pcap_t* pcap_open( const char* source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth auth, char* errbuf)source: 需要打开的适配器名,适配器名不能为空,且必须包含前缀格式,例如//格式file://原创 2021-04-29 11:03:31 · 569 阅读 · 0 评论 -
WinPcap不用回调方法捕获数据包
一、前言在WinPcap打开适配器捕获数据一文中,已经讲解了如何打开适配器并捕获数据包,但是是使用pcap_loop()函数,通过回调方法进行捕获的。本文将用pcap_next_ex()函数代替pcap_loop()函数,pcap_loop()函数是基于回调的原理来进行数据捕获,这是一种精妙的方法,并且在某些场合,它是一种很好的旋转。然而,处理回调的时候并不实用(它会增加程序的复杂度,特别是在拥有多线程的C++程序中)。可以通过直接调用pcap_next_ex()函数来获得一个数据包(只有当编程人员使原创 2021-04-30 10:04:43 · 370 阅读 · 0 评论 -
WinPcap分析数据包
一、前言通过前面的学习,我们已经知道了如何打开设备捕获数据了,接下来就可以捕获并过滤网络流量了。本教程主要的目标是展示如何解析数据包的协议首部,选中分析和实现UDP协议,因为UDP协议相对于其它协议来说更简单,用于入门。二、代码详解#include "mainwindow.h"#include <QApplication>#include <QDebug>#define HAVE_REMOTE#include "pcap.h"#ifndef WIN32原创 2021-05-06 15:09:37 · 1301 阅读 · 0 评论 -
WinPcap处理脱机的堆文件
一、前言通过以前的学习我们已经熟悉了从网卡上捕获数据包,现在我们将学习如何处理数据包。WinPcap为我们提供了很多API来将流经网络的数据包保存到一个堆文件并读取堆的内容。这种文件的格式很简单,但包含了所捕获数据报的二进制内容,这种文件格式也是很多网络工具的标准,如WinDump、Ethereal、Snort等。二、代码详解将数据包保存到文件:以LIBPCAP的格式写数据包,从指定的接口上捕获数据包并将它们存储到一个指定的文件。#include "mainwindow.h"#include &原创 2022-02-22 11:26:15 · 485 阅读 · 0 评论 -
WinPcap发送数据包
一、前言尽管WinPcap从名字上来看表明他的主要目的是捕获数据包,但是他还为原始网络提供了一些其他的功能,其中之一就是用户可以发送数据包,这也就是本节的主要内容。需要指出的是原来的libpcap并不提供数据包的发送功能,这里所说的功能都是WinPcap的扩展功能,所以并不能够工作在UNIX下。二、代码详解用pcap_sendpacket()来发送一个数据包,这个函数需要参数:一个装有要发送数据的缓冲区;要发送的长度;一个适配器;注意缓冲区中的数据将不被内核协议处理,只是作为最原始的数原创 2022-02-22 11:49:19 · 4802 阅读 · 0 评论