USBにすべてをダンプします。 3-1 USBアドレスのみ購入

USBにすべてをダンプします。 3-1 USBアドレスのみ購入

このポートに接続されている「すべて」をダンプするには、「USBアドレス」(ergo usb 3-1)のみを使用して「すべての」デバイスからデータを取得するにはどうすればよいですか。

他の記述子の反対

「いいえ」「いいえ」 /dev/etc...サードパーティ製のソフトウェアを探すのではなく、一般的なLINUXだけを探しています。短いコマンドラインの回答

ベストアンサー1

ほとんどのUSBデバイスはこのように動作しません。

非常に少数のUSBデバイスタイプ(主にマウス、キーボード、ジョイスティックなどの入力デバイス)のみが、特別な要件なしにUSBバスからデータを送信できます。ほとんどのUSBデバイスは、最初にUSBデバイスに適切な要求を送信しない限り、データを出力しません。

もしそうなら問題がありますUSBエンドポイント。各USBデバイスには複数のエンドポイントがあります。これはTCPポート番号のように考えることができます。特定のデータフローには常に「制御」エンドポイントと他のエンドポイントがあります。一部のエンドポイントは入力専用で、他のエンドポイントは出力専用です。 USBデバイスから意味のあるデータを取得するには、接続するデバイスのエンドポイントを識別する方法が必要です。

または、生のUSBパケットストリームダンプに関する質問の場合、通常はLinux USBドライバ層の後ろに隠されています。生のパケットストリームにアクセスするには、debugfsファイルシステムをマウントしてロードする必要があります。カーネルusbmonモジュール。これでcat /sys/kernel/debug/usb/usbmon/0u、システム上のすべてのUSBトラフィックダンプを取得したり、ゼロではなく別のバス番号を使用して特定のUSBバスへのトラフィックのみを取得したりすることができます。このモジュールは、/dev/usbmon*高度なUSBトラフィック分析ルーチンの機能も提供します。

より便利な USB トラフィックダンプを取得するには:Wiresharkを使用してUSBトラフィックをキャプチャします。WiresharkはさまざまなUSBプロトコル要素を自動的に識別し、異なるUSBエンドポイント間のデータフローを分離するので、USBパケットヘッダーと実際のペイロードデータを互いに分離できます。データを実際に理解するには、USBデバイスタイプの適切な標準文書と特定のデバイスの技術文書がまだ必要ですが、Wiresharkを使用するとプロセスがはるかに簡単になります。

おすすめ記事