gpt4 book ai didi

c++ - 从 USBPcap 库读取原始数据

转载 作者:行者123 更新时间:2023-11-28 04:05:22 26 4
gpt4 key购买 nike

我正在使用 USBPcap捕获 USB 设备驱动器和操作系统之间传输的数据,但它会将数据保存在 .pcap 文件中,该文件只能由 Wireshark 自身读取。我进入了 USBPcap 源代码,但是因为我对 Windows API 一无所知,所以我无法理解源代码,只是在调试时发现了这个文件:

https://github.com/desowin/usbpcap/blob/master/USBPcapCMD/thread.c#L177

我需要的是原始数据,不是.pcap编码文件。我怎样才能得到它?

最佳答案

.pcap 文件格式很简单,最简单的解决方案是自己解析或使用现有库:https://wiki.wireshark.org/Development/LibpcapFileFormat

USBPcap 使用上面的格式:https://github.com/desowin/usbpcap/blob/37a8e3cf12234df96a7e101eec336085dbb3e4c7/USBPcapDriver/include/USBPcap.h#L63

文件头是:

typedef struct pcap_hdr_s {
UINT32 magic_number; /* magic number */
UINT16 version_major; /* major version number */
UINT16 version_minor; /* minor version number */
INT32 thiszone; /* GMT to local correction */
UINT32 sigfigs; /* accuracy of timestamps */
UINT32 snaplen; /* max length of captured packets, in octets */
UINT32 network; /* data link type */
} pcap_hdr_t;

每个数据包的格式是:

typedef struct pcaprec_hdr_s {
UINT32 ts_sec; /* timestamp seconds */
UINT32 ts_usec; /* timestamp microseconds */
UINT32 incl_len; /* number of octets of packet saved in file */
UINT32 orig_len; /* actual length of packet */
} pcaprec_hdr_t;

关于c++ - 从 USBPcap 库读取原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com