当前位置: 首页 > news >正文

基于wireshark的USB 全速硬件抓包工具USB Sniffer Lite的使用

1、前言

随着MCU的发展和需求的增多,USB已成为主流MCU的标配外设,但很多还是全速或低速IP,因此往往用不上高速抓包设备。

2、安装wireshark和拷贝抓包插件

将抓包插件拷贝到wireshark的extcap目录里,可参考基于wireshark的USB 高速硬件抓包工具USB Sniffer的使用-CSDN博客

抓包插件下载链接  【免费】USBSnifferLite全速版Wireshark抓包插件中文版资源-CSDN下载

3、抓包工具选购链接

有需要的朋友可支持一下,小巧实惠,且满足常见MCU的USB软件开发工作,支持自动速度识别,支持硬件包过滤、端点过滤,支持硬件时间戳及包序号

  淘宝链接

4、线路连接

USB Sniffer Lite 的Type A公头接装有wireshark的Monitor(监控)电脑,接入后红灯闪烁,Type C接测试主机(Host),可以和Monitor是同一台,也可以是不同的,Type A 母座接被测试设备(Device),如下示意图

接入后红灯闪烁

5、抓包设置

5.1 打开wireshark,点击USB Sniffer Lite前的选项按钮

5.2 Device页内容如下:

5.2.1 设备选择:当有多个Sniffer时选择用哪个Sniffer进行捕获

5.2.2 序号类型:

a) 包间隔时间,数据包出现时的时间戳,精度为微秒,在捕获页面显示时可设置为

   捕获后的效果如下:

b)  捕获时包序号,数据包被捕获时的顺序号,第一包为0,第二包为1,以此类推,这样可以知道是否有丢包,只是显示格式目前还没研究清楚,如何让它显示整数

c)  过滤后包序号,数据包经过滤后的顺序号,过滤掉的就不计入,比如设置为不捕获SOF,不勾选IN的NAK(也就是不捕获未应答的IN数据包),这样上传上来的序号就是连续的

5.2 SOF页,用于设置是否捕获SOF包,当您不需要SOF包时,可以选择不捕获,从而减少包数

5.3 SETUP页,用于设置是否捕获SETUP包

       可以是不捕获,可以是捕获所有端点的,可以是捕获指定端点的,也可以是捕获与指定端点不相等的,指定的端点在端点列表里给出。比如只想捕获端点1的控制传输,则选择相等的,端点列表填1

       SETUP令牌包后只能使用DATA0数据包,且只能发送到设备的控制端点,而且设备必须接收,所以NAK其实是没有必要,这里只是保留着。

       一般来说SETUP包都不是很多,所以可捕获所有端点的。

5.4 IN 页,用于设置如何捕获输入数据包

和SETUP类似,不同在于,当勾选NAK时,Device否认(NAK)包也会被捕获,这是可能会产生大量的无效数据包;当不勾选时,只捕获Device应答(ACK)的数据。

如下是勾选的情况,可以看出有大量的NAK的IN包

如下是不勾选的情况,可以看出只有被Device ACK的包被捕获下来

5.5  OUT页,用于设置如何捕获输出数据包

功能和IN 页类似,如勾选NAK,有大量的未应答包别捕获进来

如下是不勾选,只有被ACK的包被捕获进来了

设置好后,进行保存

6、开始抓包

双击 USB Sniffer Lite,即可启动抓包

这时Sniffer的绿灯亮起,然后插入USB 全速或低速Device,绿灯开始闪烁

如下是捕获的数据

5、结语

USB协议比较复杂,不对的地方欢迎大家批评指正

http://www.lryc.cn/news/621398.html

相关文章:

  • 打靶日常-CSRF
  • pytorch学习笔记-加载现有的网络模型(VGG16)、增加/修改其中的网络层(修改为10分类)
  • 分布式锁—Redisson的公平锁
  • 如何更好地使用AI编程?
  • MySQL窗口函数与PyMySQL以及SQL注入
  • C#笔记啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
  • JavaScript 解构赋值语法详解
  • 开源卫星软件平台LibreCube技术深度解析
  • DAY 42 Grad-CAM与Hook函数
  • 一文讲透Go语言并发模型
  • PHP现代化全栈开发:实时应用与WebSockets实践
  • PIDGenRc函数中lpstrRpc的由来和InitializePidVariables函数的关系
  • 技术速递|通过 GitHub Models 在 Actions 中实现项目自动化
  • 状态管理、网络句柄、功能组和功能组状态的逻辑关系
  • 提升工作效率的利器:GitHub Actions Checkout V5
  • 【力扣56】合并区间
  • Linux软件编程(四)多任务与多进程管理
  • CMake进阶: externalproject_add用于在构建阶段下载、配置、构建和安装外部项目
  • Google Gemini 的深度研究终于进入 API 阶段
  • 入门概述(面试常问)
  • CodeTop 复习
  • C#WPF实战出真汁01--项目介绍
  • C++入门自学Day11-- List类型的自实现
  • Claude Code频繁出错怎么办?深入架构层面的故障排除指南
  • 力扣-5.最长回文子串
  • Python3 详解:从基础到进阶的完整指南
  • RS232串行线是什么?
  • 机器学习-支持向量机器(SVM)
  • 机器学习——TF-IDF算法
  • 2025天府杯数学建模A题分析