0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-05-02 21:41 次阅读

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

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,如下图

pYYBAGRREfKAG4D4ACX2w5P37-k481.png

以下信息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/

安装

从官网下载最新版

poYBAGRREfuARP_0ACmpKz86LpA789.png

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

pYYBAGRREgGAcN8HAC2eVZBtihA248.png

poYBAGRREgeAQFe8AC2eVQ_YQjg991.png

poYBAGRREg2AMoyRAC2eVdZEWLI689.png

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

pYYBAGRREhGAMwQkAC2eVaYtR9U158.png

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

pYYBAGRREheAEVvUAC2eVQExeig054.png

指定安装路径

poYBAGRREhuABjCHAC2eVZzMw34042.png

pYYBAGRREiCAdvtlAC2eVb2irRQ466.png

注意这里勾选安装USBPcap

poYBAGRREiSAFhQcAC2eVXWKieE485.png

poYBAGRREiiASEjAAC_7z5vIEnQ444.png

pYYBAGRREiyADMglAC_7zw0vcB0304.png

pYYBAGRREjKATedkAC_7z796DcA809.png

poYBAGRREjWAERWEAC_7z-LOKSg183.png

安装USBPcap

pYYBAGRREjqAF0KTAB5trHv1xyA877.png

poYBAGRREj2AE1scAB5trGuETK8621.png

poYBAGRREkGABBKyAB5trA-V0X0183.png

pYYBAGRREkWAXmHwAB5trENu3Jo081.png

pYYBAGRREkmAUw9TAB5trIUP0aI428.png

poYBAGRREk2AGUkgAC2eVdUrXNg070.png

注意保存数据重启

pYYBAGRRElOAJB30AC2eVdyTAzw634.png

使用

打开wireshark程序

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

poYBAGRREliAGLMdACVVFZFSwx0112.png

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

pYYBAGRRElyAcaGmADdfPL7ybwU672.png

设备过滤

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

poYBAGRREmGAAZVyACg1msoxmxM979.png

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

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

poYBAGRREmaAN76WACkNVPubGiU668.png

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

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

pYYBAGRREmuAd6DgACyi9TDYyEM734.png

文档

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为剑即能抓取分析以太网包。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    7944

    浏览量

    264580
  • 软件
    +关注

    关注

    69

    文章

    4939

    浏览量

    87453
  • Wireshark
    +关注

    关注

    0

    文章

    49

    浏览量

    6514
收藏 人收藏

    评论

    相关推荐

    Wireshark和Tcpdump实例分析

    wireshark是开源软件,可以放心使用。可以运行在Windows和Mac OS上。对应的,linux下的工具是 tcpdump。使用wire
    的头像 发表于 02-01 09:31 3041次阅读

    USB软件分析工具之一:Bus Hound逍遥北冥神功

    本文介绍Bus Hound在USB分析上的应用。
    的头像 发表于 04-27 09:56 2.3w次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>软件</b><b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b><b class='flag-5'>工具</b>之一:Bus Hound逍遥<b class='flag-5'>派</b>北冥神功

    wireshark数据分析问题

    用网络调试助手作为Tcp Server给STM32F429发送数据,每次传输完21845bytes后,就出现问题。用WireShark的数据有些不太理解。上图为用串口调试助手调试后的信息,每次传输到21846bytes就接收
    发表于 04-08 04:35

    如何使用WireShark进行网络

      如何使用WireShark进行网络:准备工作、wireshark 主界面介绍、封包列表介绍
    发表于 04-02 07:05

    如何去使用Wireshark工具

    Wireshark是什么?怎样去安装一种Wireshark工具?如何去使用Wireshark
    发表于 09-17 06:31

    MCU_Wireshark USB的过程是怎样的?

    MCU_Wireshark USB的过程是怎样的?
    发表于 02-11 07:38

    使用wireshark分析TCP及UDP的资料详细说明

    本文档的主要内容详细介绍的是使用wireshark分析TCP及UDP的资料详细说明。
    发表于 05-09 17:36 27次下载
    使用<b class='flag-5'>wireshark</b><b class='flag-5'>抓</b><b class='flag-5'>包</b><b class='flag-5'>分析</b>TCP及UDP的资料详细说明

    Wireshark数据网络协议的分析

    Wireshark 是目前最受欢迎的工具。它可以运行在 Windows、Linux 及 MAC OS X 操作系统中,并提供了友好的图形界面。同时,Wireshark 提供功能强大
    发表于 10-12 08:00 1次下载
    <b class='flag-5'>Wireshark</b>数据<b class='flag-5'>抓</b><b class='flag-5'>包</b>网络协议的<b class='flag-5'>分析</b>

    USB数据软件程序下载

    USB数据软件程序下载
    发表于 09-09 16:01 9次下载

    MCU_Wireshark USB 过滤(特定端口地址)

    启动WiresharkUSB的过程如下,这里点击“开始”就可以进入界面了。不过,Wireshark启动
    发表于 12-08 16:36 14次下载
    MCU_<b class='flag-5'>Wireshark</b> <b class='flag-5'>USB</b> <b class='flag-5'>抓</b><b class='flag-5'>包</b>过滤(<b class='flag-5'>抓</b>特定端口地址)

    Wireshark从入门到精通之网络协议分析必备

    Wireshark从入门到精通之网络协议分析必备
    发表于 01-18 13:53 9次下载

    网络数据分析软件wireshark的基本使用

    Wireshark(前称Ethereal)是一个网络数据分析软件。网络数据分析
    的头像 发表于 09-29 14:48 3033次阅读

    超详细的WireShark使用教程

    Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据,并显示数据详细信息。
    的头像 发表于 06-06 09:22 6448次阅读
    超详细的<b class='flag-5'>WireShark</b><b class='flag-5'>抓</b><b class='flag-5'>包</b>使用教程

    如何利用eNSP进行实验?

    使用Wireshark工具进行ping,并分析报文
    的头像 发表于 09-12 09:32 4257次阅读
    如何利用eNSP进行<b class='flag-5'>抓</b><b class='flag-5'>包</b>实验?

    五大可替代Wireshark工具

    Wireshark是非常流行的网卡软件,具有强大的功能。它可以截取各种网络数据
    的头像 发表于 09-27 09:57 4768次阅读
    五大可替代<b class='flag-5'>Wireshark</b>的<b class='flag-5'>抓</b>包<b class='flag-5'>工具</b>