USB软件抓包分析工具之三:Wireshark-华山派华山剑法

描述

本文转自公众号,欢迎关注

USB软件抓包分析工具之三:Wireshark-华山派华山剑法 (qq.com)

介绍

Wireshark是世界上最流行的网络协议分析软件,并且是一个免费的、开源的工具。相信做过网络开发的一定用过这个工具进行过抓包分析。

借助USBPcap还可以进行USB的抓包和分析,USBPcap参考:https://desowin.org/usbpcap/

USBPcap从I/O请求包(IRP)中携带的USB请求块(URBs)中捕获数据。Wireshark将报文以帧的形式呈现。USBPcap的数据包与USB规范的数据包不完全相同,Wireshark的帧与USB帧也不同。

由于USBPcap捕获的是功能设备对象(FDO)和物理设备对象(PDO)之间传递的URBs,如下图

usb

以下信息USBPcap可以抓取:

- 控制传输:

SETUP阶段只能抓取DATA,不能抓取SETUP和ACK

DATA阶段:USBPcap包包含来自事务的DATA包的组合数据。

STATUS阶段:与STATUS阶段相关的USBPcap包不包含任何数据。

- 同步传输:

单个IRP通常携带多个等时数据包。每个同步数据包都包含来自data数据包的数据。对于每个IRP都有两个USBPcap包。第一个包含IRP从FDO到PDO时捕获的数据,第二个包含从FDO到PDO的数据。在OUT传输的情况下,第一个USBPcap包包含完整的数据,第二个包包含有关事务完成状态的信息。在In传输的情况下,第一个USBPcap包仅包含有关用于接收数据的分配缓冲区的信息,第二个包包含接收到的数据。

- 中断传输:只能抓取DATA包,不能抓取IN,OUT和ACK。

- 批量传输:每次批量传输都会产生一个USBPcap数据包,包含来自属于给定传输的所有事务的所有数据包的组合数据。

- 大容量存储设备:每次与USB大容量存储设备的数据交换都会产生三个USBPcap数据包,其中第一个包含命令,第二个包含数据,最后一个包含状态。

以下一些信息不能通过USBPcap抓取:

- 总线状态 (Suspended, Power ON, Power OFF, Reset, High Speed Detection Handshake)

- 包ID (PID)

- 拆分事务 (CSPLIT, SSPLIT)

- 总线状态的持续时间和用于在线路上传输数据包的时间

- 传输速度 (Low Speed, Full Speed, High Speed)

另外也不能够抓取完整的USB枚举过程,只能看到USB控制传输发送到设备后,设备已分配其地址。

官网

https://www.wireshark.org/

安装

从官网下载最新版

usb

我这里下载的是Wireshark-win64-4.0.5.exe,直接双击打开,安装

usb

 

usb

 

usb

我们可以把所有选项都勾选

usb

勾选安装桌面图标和快速启动图标

usb

指定安装路径

usb

 

usb

注意这里勾选安装USBPcap

usb

 

usb

 

usb

 

usb

 

usb

安装USBPcap

usb

 

usb

 

usb

 

usb

 

usb

 

usb

注意保存数据重启

usb

使用

打开wireshark程序

一个USB根集线器会对应一个USBPcap设备,如果没有可能是安装完后没有重启或者没有安装USBPcap。

usb

可以进去安装路径D:Program FilesWiresharkextcap下命令行输入.USBPcapCMD.exe查看每个根集线器挂载的设备

usb

设备过滤

我这里接入了一个UVC设备,可以看到对应的是USBPcap2的端口2

usb

我们双击USBPcap2可以看到抓到了数据

其中2.6.3正好对应的是我们这个设备其中2对应PORT2 6对应USB设备地址为6,3对应端点3

usb

我们也可以使用usb.addr==2.6.3进行过滤

点击包可以显示解析的信息和原始数据如下

usb

文档

USBPcap没有完整的文档,只能去官网看一些相关的信息https://desowin.org/usbpcap/tour.html。Wireshark有完善的文档可以参考https://www.wireshark.org/docs/

https://www.wireshark.org/docs/wsdg_html_chunked/ChapterDissection.html

总结

Wireshark使用USBPcap抓包相对于Bus Hound的优点是有更详细的协议解析,缺点是不能进行数据发送调试。

Wireshark虽然以以太网抓包闻名于江湖,尤其是其包分析能力,借助USBPcap其也在USB抓包领域也占有一席之地。好比“以气为体、以剑为用”,以气御剑,气就是Wireshark强大的包解析能力,USBPcap就是剑,以USBPcap为剑即能抓取解析USBPcap,以NPcap,WinPcap为剑即能抓取分析以太网包。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_1137202360 2023-05-02
0 回复 举报
审核完怎么格式全变了,麻烦官方确认下。 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分