我不知道确切的术语。我有一个连接到客户端的 USB 设备。我想查看两个设备之间的流量。USB 流量分析仪价格昂贵。所以我想也许我可以将 USB 设备连接到我的计算机,然后用另一根 USB 电缆连接到客户端。然后计算机可以位于中间,将流量从设备传递到客户端,反之亦然,并记录流量。这可能吗?
答案1
原则上是的。USB 是不对称的,有主机端和设备端。
您没有说明您的设备是什么,所以我们假设它们都是黑匣子,您无法看到里面。(如果您可以看到里面,那就容易多了)。这意味着设备 A 充当 USB 主机,设备 B 充当 USB 设备(不确定这与您对“设备”和“客户端”的描述如何对应)。
因此,要拦截流量,您需要一台计算机,它既可以在一个端口上充当 USB 主机(以允许设备 B 连接),又可以在另一个端口上充当 USB 设备(以允许设备 A 连接)。
普通 PC 通常不会这样做,但嵌入式设备或其他计算机可以。这些设备通常具有 USB OTG(“on the go”)端口,可以同时充当主机和设备。
找到合适的计算机后,就可以轻松配置 Linux 等设备,在两者之间转发流量,然后通过 进行监听usbmon
。我相信使用其他操作系统也可以做到这一点。
甚至还有像 USBProxy 这样的现成软件,可以完成所有繁重的工作,例如在 Beagle Bone Black 上。
编辑
我不知道具有两种 USB 端口的计算机的通用名称,我会在 Google 上搜索“USB 主机”或“USB OTG”以及其他关键字。单板计算机是最有可能同时具有这两种类型的计算机。上述比格犬骨黑色约为 60 欧元,其他的价格也差不多。像 RaspberryPi 这样只有一个 USB 端口(或连接到内部集线器的单个端口)的计算机无法工作,即使支持 USB OTG。
您可以阅读有关 USB OTG 的维基百科,文章给出了很好的概述。
答案2
您可以看看 Incentives Pro 的“USB 重定向器”。
它们允许您在另一台计算机上模拟 USB 设备,并通过 TCP/IP 在两者之间传递流量。您可能能够使用 WireShark 来捕获 IP 流量。
祝你好运!