MacOS 使用WireShark抓包USB

MacOS 使用WireShark抓包USB

本人使用的OS版本是11.4,旧版本OS可能会有所不同。

安装WireShark

首先我们去WireShark官网下载软件https://www.wireshark.org/并且进行安装。

检查是否开启SIP

检查系统是否开启了SIP( System Integrity Protection)系统完整性保护功能,这个功能有什么作用具体可以去百度,如果开启了这个功能那么就无法进行抓包USB端口了。

  1. 打开终端
  2. 输入csrutil status命令并回车
  3. 后面你会看到一下信息中的一个,这个是那你系统的SIP状态
    *已打开 System Integrity Protection status: enabled
    *已关闭 System Integrity Protection status: disabled

假如SIP是开启的那我们就需要去关闭它。

关闭/开启 SIP

关闭SIP

  1. 重启MAC,按住cmd+R直到屏幕上出现苹果的标志和进度条,进入Recovery模式;
  2. 在屏幕最上方的工具栏找到实用工具(左数第3个),打开终端,输入:csrutil disable
  3. 关掉终端,重启mac;
  4. 重启以后可以在终端中查看状态确认。

开启SIP

与关闭的步骤类似,只是在终端中输入csrutil enable即可。

开启USB端口监控

Mac OS 有一个虚拟端口,可用于监控USB 数据流。 要启用端口,我们打开终端窗口并键入 sudo ifconfig XHC20 up就可以开启。
注意:完成USB监控后,可以通过在终端窗口中键入sudo ifconfig XHC20 down来禁用端口。

注意:如果未关闭SIP我们是开启不了的,会提示未发现XHC20。每次开机都需要开启一次,不然也无法开启监控。

获取USB设备位置ID(Location ID)

当我们想要去监控指定usb设备时,就需要用到USB的位置ID。
单击屏幕左上角的 Apple 菜单并选择“关于本机”,会出现如下窗口:
MacOS 使用WireShark抓包USB点击“系统报告”,会出现如下窗口,在左侧选择“USB”,然后查看您感兴趣的 USB 设备:
MacOS 使用WireShark抓包USB记住这个Location ID

WireShark抓包

我们打开WireShark,启动它并选择要捕获的端口 - Mac 上的 XHC20。 您应该立即看到 USB 数据包显示在捕获窗口中。 在捕获窗口上方的显示过滤器空间中输入(将 0x14323000 替换为您设备的Location ID):

 usb.darwin.location_id == 0x14323000

MacOS 使用WireShark抓包USB

这样基本可以了,你可以往usb设备发送数据,窗口中就可以显示抓到的数据了。

参考资料

  1. 开启和关闭SIP–https://www.jianshu.com/p/fe78d2036192
  2. 使用WireShark进行抓包–https://www.umpah.net/how-to-sniff-usb-traffic-reverse-engineer-usb-device-interactions/
上一篇:macOS Big Sur 关闭 SIP 正确方法


下一篇:流媒体协议平台EasyGBS更新SDK,无法正常播放该如何解决?