usbmonにフォルダ内の単一のバスに複数の/sys/kernel/debug/usb/usbmon/
ノード(2s、2u、2tなど)があるのはなぜですか?
私のデバイスにUSBトラフィックをスニッフィングしようとすると、一部のUSBフレームが失われたようです。 (私のアプリケーションはU2F-HiDを使用してデバイスと通信し、一部のパケットは128バイトを超えています。)
すべてのトラフィックをスニッフィングして利用可能な形式に解析する正しい方法は何ですか? (すべてのチュートリアルが非常に役に立つでしょう。)今私はファイルcat
にリダイレクトを使用します。
答え1
Documentation/usb/usbmon.txt
カーネルソースコードから:
現在、2つの形式、つまり生または「1t」形式と「1u」形式がサポートされています。 「1t」形式はカーネル2.6.21では廃止されました。 「1u」形式は、ISOフレーム記述子、間隔などのいくつかのフィールドを追加します。少し長い線を生成しますが、それ以外は「1t」形式の完全な親セットです。
次に、これらのフィールドの意味を説明します。などのノードは1s
いくつかの状態(例:nreaders
=読者数= usbmonイベントコンシューマ)を提供しますが、詳細を知らずに使用したことはありません。
wireshark
あなたは、または同じものを使用することができます仮想アナライザトラフィックをより簡単に分析します。キャプチャtcpdump
およびポスト分析でも可能です。wireshark
sudo tcpdump -i usbmon1 -w usbmon.pcap &
編集する
usbmon.pcap
tcpdumpまたは他の手段を介して取得した他のpcapファイルと同様に、このファイルをwiresharkにロードできます。
IIRC、usbhid-dump
HIDの読み込みとダンプ記述子 カーネルから獲得(したがって、メッセージ交換で情報を取得できません)、一部のカーネルAPIの変更がある場合、またはHIDにアクセスするにはUSBデバイスのバインドを解除する必要がありますが、詳細を忘れていました。
生またはカーネルチェックマウントを介してHID記述子に直接アクセスできます。debugfs
mount -t debugfs none /sys/kernel/debug
それから見てください/sys/kernel/debug/hid/<dev>/rdesc
。hid-rd
生のHID記述子を解析することもできます。
HIDをお探しの場合レポート、適切なhidraw
機器を使用してください。