Microsoft Message AnalyzerでUSB解析

2015年4月15日水曜日

Windows

t f B! P L
Microsoft Message Analyzer(MMA)は、Windows用の無償ネットワーク解析ツールですが、USBデバイスの解析にも利用できます。例えば、あるUSBデバイスをWindowsに接続した時のエニュメレーションプロセスの詳細が知りたい場合などにMMAが利用できます。久しぶりに使ってみると、微妙にキャプチャ方法が変わっていて戸惑ったので、手順をまとめておきます。USBデバイスの解析は、次の4ステップで行えます。 1. MMAのインストール
2. MMAの起動
3. キャプチャ設定
4. USBデバイスの解析
(Microsoft Message Analyzerの配布は終了したようです。[Microsoft Message Analyzer – Retirement Notice ])

1. MMAのインストール

"windows message analyzer"で検索すると、Microsoft社のダウンロードページが見つかります。そこからMessageAnalyzer.msiまたはMessageAnalyzer64.msiをダウンロードしてWindowsにインストールします。サポートされているOSはWindows7とWindows8/8.1です。

2. MMAの起動

MMAを管理者として実行する

 MMAを管理者として実行します。管理者として実行しないとUSBデバイスのキャプチャでエラーになります。

MMA起動直後

3. キャプチャ設定

File->New Session->Live Traceを選択します。
新しいSessionの作成
 New Sessionウィンドウが立ち上がるので、Trace Scenario:Select a trace scenarioのプルダウンメニューからUSB2またはUSB3を選択します(プルダウンメニューの内容表示に少し時間がかかる場合もあるようです)。ここではUSB2を選択しています。USB3はWindows8.xのみサポートされているようです。

Trace Scenarioの選択
USB2を選択したらStartボタンを押します。
キャプチャ開始
キャプチャが始まりますが、画面の表示をわかりやすく設定したいので、Stopボタンでキャプチャを停止します。

ストップボタンで停止
  Add Columnsを押してField Chooserを表示します。

Field Chooserの表示
Field ChooserのGlobal PropertiesからUsbDeviceを見つけて、右クリックで表示されるAdd As Columnを選択します。

Field ChooserでUsbDeviceを追加
UsbDeviceというカラムが追加されるので、カラムの"UsbDevice"という部分を右クリックして表示されるGroupを選択します。

UsbDeviceのGroup表示
これでトレースがUSBデバイス単位で表示されるようになり、解析が楽になります。
USBデバイス単位の表示

4. USBデバイスの解析

Restartボタンを押すとキャプチャが始まります。あるデバイスのエニュメレーションプロセスを観測したい場合は、最初にRestartボタンを押して、その後でUSBデバイスをWindowsに接続します。 例えば、一般的なUSBフラッシュメモリを接続すると、次のように表示されます。USBフラッシュメモリのVIDやPIDの対応は、デバイスマネージャーなどで事前に調べておく必要があります。
USBフラッシュメモリのエニュメレーション

このように、
  • USBアドレスは6に設定された
  • GET_DESCRIPTOR(Device)が実行された
  • GET_DESCRIPTOR(Configuration)が実行された
ことなどが、時系列で確認できます。データの詳細が知りたい場合は、その行を選択するとDetails部分に表示されます。例えばGet Full Device Descriptorを選択すると、実際にUSBデバイスから取得したデスクリプタの値がDetails部分に表示されます。
GET_DESCRIPTOR(Device)の詳細

このブログを検索

QooQ