Wireshark USBトレースの説明
私はusb(HID)デバイスをリバースエンジニアリングしようとしていますが、wireshark(Linuxまたはwindowsでのusbmon + wireshark)に表示されるものがusbプロトコルにどのように関係するのか本当に理解できません。私はwww.usb.orgからのusbプロトコルを見てきました。 Wiresharkは何を示していますか? 1)パケットごとに1行ですか?(トークン、データ、ハンドシェイク) 2)トランザクションごとに1行ですか?(トークン+ [データ] +ハンドシェイク)(私の推測) 3)コントロール転送ごとに1行ですか? トランザクションの方向も非常に奇妙です(フィールドへ/から)。少なくとも、それは私の期待とは一致しません:-) ...そして、列挙、隠しレポートなどのデータ部分は、設定データ(8バイト)で表示されることがあり、時には表示されないようです... URBが本当にわからない...私が見る限り、usbプロトコルではそれについての言及はありません...ワイヤスタック/ usbmonがより高いスタックレベルでトレースし、何になるかを推測しようとしているように見えますその上で... 私が見ることができるものの例を以下に示します、ここで何を見るのですか? a)仕様にbmtype = 0x20(セットアップのフレームNo = 599)も見つかりませんでした。 b)HIDデバイスを持っているので、これはレポート/機能の構成である可能性があると想定しました(列挙はこの段階で渡されます)。だから私は方向に同意することができました(ホスト->デバイス)。しかし、データはどこにありますか?または、ここにデータフェーズはありませんか?では、フレーム600とは何でしょうか。 c)フレーム600とは データ? d)フレーム601とは ステータスACK?...しかし、データとACKは同じソースを持っていますか? No. Time Source Destination Protocol Length Info 599 67.996889 host 2.0 USB 36 URB_CONTROL out Frame 599: 36 bytes on wire (288 bits), 36 bytes captured …