windows平台下捕获USB数据包并实时处理

本文介绍了在Windows环境下,为了解决BusHound在处理大量USB3.0设备数据时存在的问题,采用USBPcap进行USB数据包捕获的解决方案。USBPcap包含驱动和命令行工具,能将数据实时输出到stdout,方便通过Python程序处理。参考代码已提供,数据格式遵循usbpcap和pcap标准。
摘要由CSDN通过智能技术生成

背景

最近工作需要,要在windows平台下抓取分析一个USB设备的数据包,原本使用的是BusHound,但他有两个缺点:

  • 只能抓取数据保存到文件,不能调用其他程序实时分析处理;
  • 该设备数据量非常大(图像数据,使用的USB3.0),BusHound的buffer很快就满了,抓不了几帧数据;

解决方案

最终找到了USBPcap,它是专门为windows平台设计的,他由两部分组成, 滤型驱动命令行工具

  • 驱动捕获USB数据包,暂存在内部buffer中;
  • 命令行工具通过驱动创建的的设备文件来读取捕获的数据包,可以保存到文件或直接从stdout输出;

由于驱动内部的buffer大小和捕获设置是通过ioctl控制,而我的分析处理程序是python写的,不方便直接去操作设备文件,因此,处理程序开了一个进程运行命令行工具,通过命令行参数设置了驱动的buffer大小和捕获参数;处理程序通过读取命令行工具的stdout获取数据;
命令行工具的输出是usbpcap格式是,定义比较简单,参见 pcapusbpcap 文件格式;

参考代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值