之前我的很多USB分析都是直接使用USB逻辑分析仪完成的,优点是:可靠性高,全部信息都可以抓取到;缺点是价格昂贵(20万人民币,个人基本上不可能购买。国产的我看到过8千的,但是貌似只有USB Full Speed),架设配置复杂。在Windows上还有一些纯软件的抓包分析工具,比如:BusHound【参考1】,可以抓取USB、SCSI & ATAPI、IDE & SATA、FireWire、1394等等总线的底层数据。从原理上说,是通过安装一个过滤驱动来实现的。
最近发现了一款专门用来抓取 USB 数据的工具软件:USBlyzer。因为他是专门设计用来抓取USB数据的,所以和 Bus Hound 相比,对USB数据能够进行详细的解析。
这个软件可以免费试用30天,对于一般的用户来说已经足够。
软件界面如下:
使用非常简单,首先在 Device Tree 上选中需要监视的USB设备
然后使用 Start Capture 即可开始抓包,使用Stop Capture 停止抓包后,可以在Capture List 中看到抓到的包。
下面是一个实际操作的例子,比如,我要分析微软 InteilMouse optical1.1A 这款鼠标的数据
首先选中设备:
在 USB Properties可以看到设备属性,对于标准支持的属性都有详细分析。因为鼠标是标准的HID协议,所以在协议分析中除了常见的描述符还能看到HID的描述符。
点击 Start Capture开始抓包,移动鼠标会有很多数据,使用 Stop Capture 后停止
点击抓到的数据,可以在 Data Analysis 中直接看到解析后的数据,这个解析是根据 HID描述符进行的。
从可以看到通过这个软件可以方便进行鼠标数据的分析,并且能够看到驱动级别的消息,对于编写驱动会有莫大的帮助。
参考:
1. http://perisoft.net/bushound/index.htm
2. http://www.usblyzer.com
哈哈,有点意思
FYI:
The USBlyzer website seems to have been hijacked.
26 June 2022
You can write an email to support@usblyzer.com