USB 协议分析仪(USB Sniffer)

本页包含USB 协议分析仪的介绍,注意事项,使用流程等一些资料

模块主图:

一、功能介绍:

本USB 协议分析仪适用于 USB 通信协议分析、数据抓取,方便开发者调试和研究 USB 设备通信。(支持USB2 .0及以下版本协议)

本 USB 分析仪基于开源设计 USB Sniffer 进行二次硬件调整,原开源设计链接:https://github.com/ataradov/usb-sniffer (也感谢原作者提供的开源设计 USB Sniffer,为像我们这样的USB开发者们带来了那么好的工具,也为USB协议的调试带来了极大的便利和启发。)

  • 在原有设计的基础上,对设计进行了以下优化:
    • 全新 PCB 设计:重新绘制主板,将原先的二层板升级为四层板,提高信号稳定性和抗干扰能力。
    • 保留外部触发接口:兼容原设计的外部触发引脚,方便扩展应用。
    • 更小的尺寸(5.5 x 3.5 cm):在保证性能不变的前提下,调整了器件封装,优化布局,尽可能缩小主板尺寸,使其更便携。
    • 所有器件均采购于立创云汉之类的电子商城,芯片保证全新正品(无任何拆机翻新件)


主板接口:一路USB A口接通讯device, 一路TYPE C口接通讯主机host , 一路TYPE C口负责USB抓包。

资料下载:

因为大部分人无法直接访问github网站,这里也将github的工程文件(包含原作者的硬件原理图,PCB,可执行的固件等)下载下来上传到网盘了,方便大家下载研究(包含Wireshark软件):https://pan.baidu.com/s/1VyImNMzXhXVNgC44E0y4tw 提取码: ipbi

二、Wireshark软件安装:

1)下载Wireshark软件

直接在wireshark软件官网下载 https://www.wireshark.org/download.html 直接下载最新版本的即可。(这里对windows的系统要求是x64的)

2) 安装 Wireshark软件

双击打开刚才下载的Wireshark软件, 一路默认点Next和Noted进行安装(安装路径请保留默认路径),备注:如果需要保留软件抓取USB的功能,这里可以按下图勾选USBPcap(因为我们已经有硬件USB抓包功能了,所有USBPCAP可选也可以不选)

之后点击Install 进行软件的安装。安装完成后会弹出完成界面,点finish 结束即可。

三、对Wireshark软件进行设置

1) 复制usb_sniffer_win.exe文件(usb_sniffer_win.exe文件存在于压缩包usb-sniffer-main.zip中的路径/bin 下)到Wireshark安装目录的excap文件夹下( C:\Program Files\Wireshark\extcap 目录下),如果该路径不存在,需要自行创建一下。

备注:如果之前装了360之类的杀毒或者安全软件,会提示文件存在风险,这里一定要添加白名单,否则文件会被强制删除(如果被强制删除了,可以在杀毒软件的隔离区中将文件找回,找回的时候一定要添加白名单)

这里看清楚文件,选中刚才被安全软件删除的usb_sniffer_win.exe(可别选错把其他的病毒给放出来了,可以对下时间,路径,和文件名)

恢复原先所在目录,并添加白名单

2)打开Wireshark软件, 点击选中USB Sniffer, 并点击USB Sniffer 左侧的设置符号

在弹出的窗口中,Capture Speed 速度中选择High -Speed ,然后点击下方的保存。

四、对USB数据进行抓包

连接示意图如下,其中C<–>B 之间相当于原先的数据流。 C和B之间通讯的抓包数据将通过A上传给装有Wireshark软件的PC电脑。

1) 按上图先连接好A (USB CAP)和 B(To HOST)两个type C端口,暂时不接C(TO TARGET)接口,这样才能抓到DEVICE 和PC通讯的枚举过程。

2)双击刚才的USB Sniffer,进入USB抓包捕获界面

正常进入后,系统会自动进入抓包状态,如果系统不在抓包状态,那么手动点击开始按钮开始抓包,待抓包进行中时再将设备(该处以U 盘为例子)插上主板的Device 接口(TYPE A口,对应之前的图编号C)

如果正常的话,系统将抓下完整的通讯过程,如果系统一直在刷新最新的数据,可以按下开始边上的停止捕获按键。

从下图我们可以看到抓到的一些数据包(这些包中包含SE0,J,K等状态)

我们也可以通过屏蔽关键字来让软件只显示我们感兴趣的信息,如我们右键Protocol中的USB,然后选择作为过滤器应用->选中

经过这样过滤后,观察界面就只剩下协议是USB的部分(包含获取设备描述符之类的),更方便我们对数据进行分析。

当然关键词也是可以随意组合的,选准备作为过滤器,将多个协议或者地址之类的关键字通过”且”,”或”进行组合,最后按下Apply display Filter按键即可。

五、刷固件(非必要,不建议新手操作)

如果您有重新刷固件的需求,github的原作者有详细的过程介绍,这里不再展开,感兴趣的可以自行翻看https://github.com/ataradov/usb-sniffer,因为刷机失败会导致原有硬件不能正常工作,所以建议有一定操作能力的人再研究操作。

这里推荐一篇USB协议的文章,写的挺好的,大家第一次接触USB协议的可以看看这篇大神写的博文,转自CSDN: USB通信协议深入理解

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注