usb通过wireshark抓包,并分析各描述符

本文详细介绍了如何安装抓包工具Wireshark并使用它来分析USB设备问题。通过抓包发现,设备的PID和VID设置导致Windows驱动对mass_storage功能的限制,最终解释了设备U盘功能未出现的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装抓包工具

安装很简单,在安装wireshark的时候,选中usbpcap就行了

抓包 

抓包也很简单,打开wireshark后,双击USBPcap1就可以像抓网络包一样去抓了

案例分析 

目前有这么个情况,usb使能adb,rndis,mass_storage三个功能 ,实际上只出来了adb跟rndis两个接口,U盘功能没出来,日志看不出什么就只有抓包了,看下面分析抓到的包

设备描述符

我们可以看到,一些主要信息,包括vid,pid,实际问题原因就是pid跟vid造成的,后面再说,最后面可以看到,有一个配置描述符

配置描述符 

可以看到这个配置描述符,有三个接口描述符

 接口描述符

分别看下第一个接口描述符0.0,对应的端点描述符

第二个接口描述符1.0,对应的端点描述符

第三个接口描述符2.0,对应的端点描述符,这是我们关注的重点

 异常点

枚举时的mass_storage接口的批量传输端点84

和端点03 

被URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL之后,变成了中断端点83;从而mass_storage就没弹出来了

这个动作是设备连接的host,也就是windows电脑发起的,所以window的驱动为什么会发出这样的动作呢?最后发现:<adb,rndis,mass_storage>这个config的pid跟vid ;跟<adb ,rndis>这个config的pid和vid一样,导致设备的windows驱动不允许,所以下发了一个 URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL的动作,把端点描述符给清除了,自然功能也就不能用了,当然有些平台的windows驱动是允许不同功能组合用相同的pid,vid,比如高通;但还是建议区分开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值