はじめに
USB(ユニバーサル・シリアル・バス)は、PCやスマホの業界標準のインタフェースとして
普及しています。弊社のWebカメラ製品(Webex Desk Camera)も、USB インタフェースを
介してPCと接続して使用します。
本ドキュメントでは、USBインタフェースの通信をキャプチャする方法について
ついて説明します。
1.USBPcapについて
Wiresharkは主にネットワークのパケットキャプチャに利用されますが、
USBPcapを同時にインストールすることで、USBインタフェース通信の
データキャプチャのツールとしても利用できます。
![CAP1.jpg CAP1.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125959i85B6D1B5DB75804D/image-size/large?v=v2&px=999)
USB 通信のキャプチャは、pcap形式でファイルに保存でき、Wiresharkで
内容を解析することができます。
USBPcapは単体でインストールし、コマンドラインインタフェースで
使用することも可能です。
![CAP2.jpg CAP2.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125960i85E2BF523C5C2350/image-size/large?v=v2&px=999)
2.Wiresharkでの利用例
Wiresharkを起動し、キャプチャの対象としてUSBインタフェースを選択します。
![CAP3.jpg CAP3.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125961i0C459D89E0BAC721/image-size/large?v=v2&px=999)
USBデバイスがUSBハブに接続されている場合、キャプチャファイルには
多くの機器の通信が混在します。
Cisco Webex Desk Cameraの通信内容を調べたい場合、
usb.bString == “Cisco Webex Desk Camera” 等のフィルタで
デバイスのアドレスを見つけることができます。
![CAP4.jpg CAP4.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125962iB424DCEE98301BC5/image-size/large?v=v2&px=999)
下図は、Cisco Webex Desk Camera のUSB通信のサンプルです。
PCがUSBデバイスから、Device Descriptor、Configuration Descriptor
等の情報を取得しているのが分かります。
![CAP5.jpg CAP5.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125963iF73D72C49C75F9F6/image-size/large?v=v2&px=999)
Cisco Webex Desk Camera は、UVC(USB Video Class)に準拠した製品で
UVCに関連した情報もパケットキャプチャ上で確認できます。
![CAP6.jpg CAP6.jpg](https://community.cisco.com/t5/image/serverpage/image-id/125964i0FAD342E14469165/image-size/large?v=v2&px=999)
まとめ
Wiresharkはネットワークのパケットキャプチャだけでなく、
USBインタフェース通信のデータキャプチャのツールとしても
利用できます。
USBデバイスの動作を把握するツールとして活用できます。
参考ドキュメント:
USBインタフェース関連の Document Library (USB.org)
SharkFest’20 Virtual
USB Analysis 101 by Tomasz Moń