如何获取 ADB shell 流量?
How to fetch ADB shell traffic?
我的 Mac 上有一个应用程序,它是 运行 我的 android 设备上的一些 adb shell 命令。不幸的是,这个应用程序不是开源的,所以我很难说出它到底在做什么。 有什么方法可以获取发送到我的 adb 设备的 shell 命令吗? 类似于命令历史记录,但适用于所有 adb 服务器实例,而不仅仅是 'current'一个(因为应用程序创建了自己的 adb 服务器,我正在使用另一个实例连接到 shell 并调用命令)。
在通过 USB 将 adb 命令发送到设备之前,它们必须通过 adb 服务器,该服务器通过本地主机接口上的 TCP 端口 5037 接收命令(假设特殊的 ADB 服务器使用相同的 TCP 端口)。
因此,使用 Wireshark 捕获本地主机流量并过滤 TCP 端口 5037 应该会向您显示所有命令,因为 ADB 是一种没有安全性的纯文本协议。
或者您可以尝试捕获 USB 级别的命令,但我不知道 Wireshark USB 捕获后端 USBPcap 在 MacOS 上是否可用。
据我所知,Wireshark 已经包含必要的解析器。在 TCP 级别,您可能需要手动将 adb 解析器分配给网络连接。
我的 Mac 上有一个应用程序,它是 运行 我的 android 设备上的一些 adb shell 命令。不幸的是,这个应用程序不是开源的,所以我很难说出它到底在做什么。 有什么方法可以获取发送到我的 adb 设备的 shell 命令吗? 类似于命令历史记录,但适用于所有 adb 服务器实例,而不仅仅是 'current'一个(因为应用程序创建了自己的 adb 服务器,我正在使用另一个实例连接到 shell 并调用命令)。
在通过 USB 将 adb 命令发送到设备之前,它们必须通过 adb 服务器,该服务器通过本地主机接口上的 TCP 端口 5037 接收命令(假设特殊的 ADB 服务器使用相同的 TCP 端口)。
因此,使用 Wireshark 捕获本地主机流量并过滤 TCP 端口 5037 应该会向您显示所有命令,因为 ADB 是一种没有安全性的纯文本协议。
或者您可以尝试捕获 USB 级别的命令,但我不知道 Wireshark USB 捕获后端 USBPcap 在 MacOS 上是否可用。
据我所知,Wireshark 已经包含必要的解析器。在 TCP 级别,您可能需要手动将 adb 解析器分配给网络连接。