概要

 システムの概要

USBSpyはUSBデバイスのI/Oリクエストを記録および監視するために設計されています。下記のタイプのリクエストがサポートされています。

  • URB(USBリクエスト ブロック)

  • ハブとHID

  • PNP(プラグ アンド プレイ)

  • 電源

  • USB内部I/Oコントロール

  • イベントの削除

各リクエスト タイプに対して詳細な情報が表示され、転送バッファ(TransferBuffer) (URBのみ)、MDL、システムバッファ(SystemBuffer)、ユーザバッファ(UserBuffer)のメモリバッファ(有効な場合)が記録されます。

USBSpyは様々なタイプのお客様にご利用いただけます。デバイスドライバの開発者にはデバッギングのために、ハードウェア開発者には、ファームウェアのデバッグとハードウェアの問題発見のためにご使用いただけます。管理者は、機器のトラブルの発見に使用でき、ドライバの書き方を学んでいる人は、呼び出しの構成、パケット、ロジックと配列を理解することができます。


 USBSpyとは?

USBSpyは専門家の使用を目的に設計され、パケットを徹底的に分析します。フィルタやコール オプションなどの機能は、USBトラフィックの監視、分析、アクセスを簡単にします。USBSpyは、USBデバイスとホスト システム間の通信の評価や最適化のための強力なプラットフォームです。

データを徹底的に分析したり、データ転送やプロトコルについての詳細な情報を直接得ることができます。USBデバイスの開発や評価のために必要な詳細機能を提供します。データ交換のバイナリ コードその他の情報が記録されます。

USBSpyでUSBトラフィックを監視、分析することで、バスで行われているプロセスへの理解力を高めます。

USBSpyは、USBテクノロジの分野における複合情報システムです。応用範囲の例は以下のとおりです。

デバイス ドライバの開発とデバッギング
USBデバイス用にドライバを開発するとき、I/Oリクエストの分析が不可欠です。
USB周辺機器のデバッギング
URB (USB Request Block)構造のサポート、トラフィックの記録、正確なタイミングは、USBデバイスと作動するアプリケーションの効果的な開発を可能にします。
ファームウェアのデバッギング
ファームウェアのデバッグと性能の評価に使用することができます。
互換性の問題を解決
USBSpyは、USBソリューションの互換性を確認する際に必要なテスト環境を提供します。
USB通信の調査
USBデバイスとホスト間の通信を調査することができます。
プロトコルの分析とデバッギング
USBSpyは、USBデバイスとそのドライバ間の転送されたプロセスとデータをプロトコル レベルで分析することができます。
セッション ログの収集
USBデバイスとホストの間のログを記録して、後で分析やデバッグのために使用することができます。
通信内容とイベントの追跡
USBSpyは各イベントのログをタイムスタンプつきで収集します。

USBSpyはUSB ラフィックを理解するための強力なツールで、分析やデバッグを可能にします。

使用範囲

USBSpyは、USBデバイスとアプリケーションの間のデータ転送のキャプチャ、USBハードウェアの開発、USBデバイス用ドライバの開発、USB関連ソフトウェアとハードウェアのデバッグに使用することができます。

USBSpyはソフトウェアおよびハードウェアの開発者、IT専門家、試験者、システム インテグレータ、コンサルタントの方にご使用いただけます。


機能

 主な機能

USBSpyはシンプルでカスタマイズ可能なインタフェースを持つ、便利なモニタリング ツールです。

  • USBSpyの主要なメリットとして、追加フィルタや追加デバイス(これらはシステム内のドライバ構成を害するおそれがあります)などを作りません。不要データに邪魔されることなく、透過性のある監視が可能です。
  • 拡張検索とフィルタリング オプション
  • パケット タイプ、デバイス リクエスト、完了ステータス、エラーなどに対するトリガー
  • USDデバイスとそのホスト間の全ての I/Oリクエストとイベントを遮断
  • ホットプラグ デバイスの自動キャプチャ
  • システム ブートでの遮断
  • トラフィック ログをXMLへエクスポート
  • 直感的なインタフェース


 USBSpyの動作

Windowsは、デバイスに接続するとIRPパケットを使用してコマンドとデータを送信します。入/出力リクエスト オブジェクト、つまりI/Oリクエスト パケット(IRP)がカーネル モードのドライバの制御のために使用されます。

IRPを使用したデータ交換とドライバの制御は、おおよそ次のように行われます。ユーザ アプリケーションがデータを送信、または、デバイスからデータを取得しようとすると、入/出力マネージャがIRPを作成し、このデバイスを受け持つドライバに送信します。ドライバ オブジェクトがこのIRPを受信しデバイス オブジェクトの1つに転送します。デバイス オブジェクトはパケットを受取ると、直ちに処理を開始するかこのパケットを後で処理するためにキューに入れます。

デバイス オブジェクトの動作は、IRPの種類、デバイス オブジェクトの状態、デバイス自身の状態などに依存します。パケットの処理が終わると、デバイス オブジェクトは、操作の結果についての情報と共に入/出力マネージャにIRPを送ります。

USBSpyを使用しないパケットの処理

USBSpyはUSBで接続されたデバイス オブジェクトが受取ったIRPをモニタします。IRPとUSBが関連付けられ、キャプチャリングが有効な場合、IRPがスタックの最下位に送信されたときとIRPの終了時に、ログが作成されます。IRPの両イベントも記録されます。

USBSpyを使用した監視

USBSpyフック ルーチン

この方式の主要なメリットとして、追加フィルタや追加デバイスが作成されないことです。不要なデータに邪魔されることなく、透過性のある監視が可能です。


 USBSpyの購入方法

USBSpyのライセンスは、クレジットカードまた銀行振り込みにてご購入いただけます。

Enterprize License
本製品を企業、非営利団体、国有機関、行政、その他のいかなる形態においても、団体において使用する場合、または、個人が営利目的で本製品を購入する場合(例えば、個人又は家族経営の場合)にはEnterprize Licenseを取得しなければなりません。これに従わない場合は使用許諾契約違反とみなされます。
Home License
非営利的な家庭用の使用のためのライセンスです。それ以外の環境下ではEnterprize Licenseをご使用ください。

ライセンスは1PC、1ユーザごとに付与されます。 本ソフトウェアをインストールした複数のPCを所有している場合は、適切な数のライセンスをご購入いただく必要があります。複数ライセンス割引をご利用いただけます。

登録ユーザの特典

  • 試用版の制限事項(機能制限および時間制限)がすべてなくなります。

  • 迅速かつ丁寧なテクニカル サポートを無料で受けられます。

  • 1年間無料でアップグレードできます。それ以降のアップグレードでも割引が適用されます。

ご注文はこちらから http://www.shareEDGE.com/

本製品ご購入に関するご質問は、こちらを参照してください。


 インタフェース

USBSpyの画面は、モニタリング結果をリスト表示するメイン パネルと数種類のカスタマイズ可能なパネルで構成されています。パネルは、表示/非表示、固定/自動的に隠す設定、別の場所に配置することができます。詳細は「プログラム表示のカスタマイズ」を参照してください。

下記のパネルが用意されています。

  • デバイスとスタックの表示 - リクエストをモニタするデバイスを選択します。

  • 詳細 - デバイスの詳細な情報を表示します。

  • バイナリデータ パケット バッファの中の1つの内容を表示します。

  • 検索、フィルタ、トリガー - リクエストの検索とフィルタリングを行います。

アプリケーション メニューの全リストは「メニュー」を、アイコンのリストは「ツールバー」をご覧ください。


 メニュー

ファイル メニュー

  • [新規] - 新規セッションを作成します。

  • [開く] - 保存したファイルを開きます。

  • [閉じる] - 開いているファイルを閉じます。

  • [保存] - 記録されたセッションをファイルに保存します。

  • [名前をつけて保存] - 記録されたセッションをファイルに保存します。

  • [XMLにエクスポート] - ログをXMLフォーマットに出力します。詳細については「XMLレポートのエクスポート」を参照してください。

  • [最近使ったファイル] - 最近開いたファイルの一覧が表示されます。

  • [終了] - アプリケーションを終了します。

編集メニュー

  • [検索] - [検索]パネルを表示します。

  • [フィルタ] - [フィルタ]パネルを表示します。

  • [トリガー] - [トリガー]パネルを表示します。

  • [表示をクリア] - 現在のログ データを消去します。

表示メニュー

  • [表示/非表示] - 選択したパネルの表示/非表示を切り替えます。

  • [リフレッシュ] - [デバイス]パネルのデバイスの一覧をリフレッシュします。

  • [表示スタイル] - USBSpyのインタフェースのスタイルを変更することができます。

キャプチャ メニュー

  • [キャプチャの開始] - リクエストを記録するセッションを開始します。
    注意: 開始する前に、[デバイス]パネルでデバイスを選択してください。詳細な説明は「デバイスの選択」を参照してください。

  • [キャプチャの停止] - リクエストを記録するセッションを停止します。

  • [システム スタートアップ時にキャプチャを有効] - オペレーティング システムの次のロードの間のパケットをキャプチャします。詳細な説明は「起動時から記録」を参照してください。

オプション メニュー

  • [ホットプラグ デバイスを自動キャプチャ] - ホットプラグ デバイス(フラッシュメモリなど)の自動キャプチャを有効にします。

  • [最後のイベントに自動スクロール] - スクロールせずにリストの最後のパケットまでジャンプします。

  • [バックグランド キャプチャ処理] - 記録セッションの終了後に全ての要求を一覧表示します。

ヘルプ メニュー

  • [コンテンツ] - USBSpyヘルプを起動します。

  • [アクティべーション] - USBSpy購入時の登録を行います。詳細については「USBSpyの購入方法」を参照してください。

  • [今すぐ購入] - shareEDGE.comのWebサイトに接続します。

  • [USBSpyバージョン情報] - USBSpyバージョン情報、提供元およびサポートのリンクを表示します。

関連項目

ツールバー


 ツールバー

ツールバーには次のアイコンが表示されています。

- 新規セッションを作成します。

- 保存したファイルを開きます。

- 記録したセッションをファイルに保存します。

- リクエストを記録するセッションを開始します。
注意: 開始する前に、[デバイス]パネルでデバイスを選択してください。詳細な説明は「デバイスの選択」を参照してください。

- リクエストを記録するセッションを停止します。

- 現在のログ データを削除します。

- スクロールせずにリストの最後のパケットまでジャンプします。

- [フィルタ]パネルを表示します。詳細な説明は「リクエストのフィルタリング」を参照してください。

- [検索]パネルを表示します。詳細な説明は「リクエストの検索」を参照してください。

- [デバイス]パネルのデバイス一覧をリフレッシュします。

- USBSpyのヘルプを起動します。

関連項目

メニュー


 リクエストの記録

USBSpyを開くと、初期設定により新しい記録セッションが開きます。随時、新規セッションを作成したり既存のセッションを開くことができます。

  • 新規セッションを作成する場合は、[ファイル]メニューから[新規]をクリック、または、ツールバーのボタンをクリックします。何らかのデータが記録されていると、「現在のセッションを保存しますか？」のメッセージが表示されます。「保存とエクスポート」を参照してください。

  • 前に保存したセッションを開く場合は、[ファイル]メニューから[開く]をクリック、または、ツールバーのボタンをクリックします。[ファイル]メニューから[最近使ったファイル]を使用して最近記録したセッションを開くこともできます。

リクエスト ログの記録は次のように行います。

  • リクエストを記録したいデバイスを選択します。詳細については「デバイスの選択」を参照してください。

  • 記録セッションを開始するには、ツールバーの [image] をクリック、または、[キャプチャ]メニューから[キャプチャの開始]をクリックします。

記録を停止するには、 [image] をクリック、または、[キャプチャ]メニューから[キャプチャの停止]をクリックします。

関連項目

デバイスの選択


 デバイスの選択

セッションの記録を開始する前に、リクエストを記録するデバイスを選択する必要があります。[デバイス]パネル、または、[スタック ビュー]パネルのタブでデバイスを選択できます。両タブの情報は共有されており、片方のタブでチェックボックスをチェックすると他方のタブのチェックボックスにもチェックが入ります。

[デバイス]パネル

[デバイス]パネルは3種類のタブで構成されており、各タブにチェック可能な項目があり選択することができます。

  • [デバイス]タブ

このタブではUSBデバイス(ホスト コントローラ、ハブ、付属の USBデバイス) がツリー表示されます。

ツリーの要素の詳細情報を表示するには、対象の要素をクリックして[詳細]パネルで情報を表示します。情報のコンテンツは要素の種類によって異なります。

デバイス リストをリフレッシュするには、[表示]メニューから[リフレッシュ]をクリック、または、ツールバーのボタンをクリックします。

  • [PnP]タブ

このタブには、USBデバイスと接続された論理デバイス(マザーボードなど、システムのメインとなるボードに追加するデバイス)のリストが含まれます。接続されたデバイスを選択することはできません。USBデバイスのチェックボックスのみがチェック可能です。

  • [ドライバ]タブ

作成されたデバイス オブジェクトとドライバが表示されます。各デバイス オブジェクトを選択して記録を参照することができます。

[スタック ビュー]パネル

このパネルには、[デバイス]タブで選択したデバイスやデバイス オブジェクトに対するPnPオブジェクト スタックが含まれます。すべての項目に選択するためのチェックボックスがあります。

次のデータが表示されます。

  • デバイス名

  • デバイス オブジェクト

  • サービス - ドライバの名前


リクエスト

 リクエストの監視

選択したデバイスに対する全てのリクエストは、メイン結果ウィンドウの[キャプチャ結果]タブにリストで表示されます。この表には次の項目が含まれます。

  • タイプ - リクエストのタイプURB/HID/PNP/電源/IRP

  • 番号 - リクエストの数(0から開始)

  • イン/アウト - 入/出力パケットのタイプ

  • 経過秒 - 時間(秒)

  • デバイス オブジェクト - デバイス オブジェクト名

  • IRPリクエスト - IRPパッケージのアドレス

  • IRPステータス - IRPパッケージのステータス

  • プロセス名 - 現在のプロセスの名前

完了したリクエストはダーク グレーの背景色でハイライトされ、未完了のリクエストは白色の背景で表示されています。

デバイスの詳細な情報を表示するには、[デバイス]パネルで該当のデバイスを選択して、[詳細]を表示してください。

パッケージ バッファの内容を表示する場合は、[バイナリ データ]パネルを起動してください。

関連項目

プログラム表示のカスタマイズ


検索

 リクエストの検索

デバイスのリクエストが記録されると、記録されたパケット内を検索することができます。検索は次のキーで実行できます。

  • リクエスト パラメータ

  • リクエストのタイプ

  • リクエスト バッファのコンテンツ

検索は下記の手順で行います。

  • [検索]パネルを開くには、ツールバーの [image] をクリック、または、[編集]メニューから[検索]をクリックします。

    • 注意: [検索]パネルを固定していない場合、結果パネルの[検索]タブ上にマウスをポイントすると[検索]パネルがポップアップします。詳細については「プログラム表示のカスタマイズ」を参照してください。

  • 必要に応じてチェックボックスをオンにして検索パラメータを設定します。[テキスト検索]フィールドにテキストを入力することもできます。
    詳細については「パラメータの検索とフィルタリング」を参照してください。

  • [今すぐ検索]ボタンをクリックします。

見つかった項目は、[検索結果]タブに表示されます。


フィルタ

 リクエストをフィルタリング

全てのリクエストは(記録されたか否かにかかわらず)リクエスト タイプと下記のパラメータでフィルタリングすることができます。

  • 開始中/完了

  • 成功/エラー

  • 入力転送/出力転送

[フィルタ]パネルを開いてフィルタを作成するには、ツールバーの [image] アイコンをクリック、または、 [編集]メニューから[フィルタ]をクリックします。

注意: [フィルタ]パネルを固定していない場合、[結果]パネルの[フィルタ]タブ上にマウスをポイントすると、[フィルタ]パネルがポップアップします。詳細については、「プログラム表示のカスタマイズ」を参照してください。

新規のフィルタを作成するには、ツールバー上の [image] をクリックします。[フィルタ名の入力]ダイアログボックスが開きます。新規フィルタ名を入力して[OK]をクリックします。フィルタを削除する場合は、削除したいフィルタを選択して [image] をクリックします。

フィルタのセットアップは次の手順で行います。

  • セットアップを行うフィルタを選択します。

  • 必要なチェックボックスにチェックを入れてフィルタのパラメータを調整します。
    詳細については、「パラメータの検索とフィルタリング」を参照してください。

  • [有効/無効]ボタンをクリックして、フィルタを有効/無効にします。


トリガー

 トリガーの管理

リクエストをフィルタリングする別の方法として、トリガーを設定して必要のない情報を排除する方法があります。トリガーは一連のリクエストパラメータです。トリガーがオンになりすべてのトリガー条件に合うリクエストが現れると、リクエストの記録は停止します。これは、パケットを追加するスピードが速く、監視をすぐに止められない場合等に役立ちます。

[トリガー]パネルを開いてトリガーを作成するには、[編集]メニューから[トリガー]をクリックします。

注意: [トリガー]パネルが固定していない場合、[結果]パネルの[トリガー]タブ上にマウスを移動するると[トリガー]パネルがポップアップします。詳細については「プログラム表示のカスタマイズ」を参照してください。

新規のトリガーを作成する場合は、ツールバー上の [image] をクリックします。[トリガー名入力]ダイアログボックスが開きます。新規トリガー名を入力して[OK]をクリックします。トリガーを削除する場合は、削除したいトリガーを選択して [image] をクリックします。

トリガーのセットアップは次の手順で行います。

  • セットアップを行うトリガーを選択します。

  • 必要なチェックボックスにチェックを入れてトリガーのパラメータを調整します。
    詳細については、「パラメータの検索とフィルタリング」を参照してください。

  • [有効/無効]ボタンをクリックして、トリガーを有効/無効にします。


 プログラム表示のカスタマイズ

USBSpyにはカスタマイズ可能なインタフェースが装備されています。監視結果を表示するメインパネルと数種類のカスタマイズ可能なパネルです。パネルは、表示/非表示、固定/自動的に隠す、別の場所に配置することができます。

  • パネルの表示/非表示の切替は、[表示]メニューを選択して、チェックボックスを選択/解除します。

  • パネルを画面上に固定/自動的に隠すには、ピン ボタンを使用してください。
    - ウィンドウがポップアップ(または表示)します。
    - ウィンドウが固定されます。

  • 固定されているパネルは、別の場所に移動することができます。マウスでパネルを選択し、プログラムウィンドウ上を移動してください。パネルを別のパネルとドッキングさせる場合は、上下、左右の矢印 [image] を使用してください。

関連項目

インタフェース


オプション

 設定オプション

次のオプションを設定できます。

  • [オプション]メニューから[ホットプラグ デバイスを自動キャプチャ]を選択すると、ホットプラグ デバイス(フラッシュ メモリなど)の自動キャプチャを有効にします。

  • [オプション]メニューから[最後のイベントに自動スクロール]を選択すると、スクロールせずにリストの最後のパケットまでジャンプします。

  • [オプション]メニューから[バックグランド キャプチャ処理]を選択すると、記録セッションの終了後に全てのリクエストを一覧表示します。

  • [キャプチャ]メニューから[システム スタートアップ時にキャプチャを有効]を選択すると、オペレーティングシステムを再起動している間のパケットをキャプチャします。


保存

 結果の保存

セッションの監視結果を保存することができます。

[ファイル]メニューから[保存]または[ファイル]を選択し、[名前を付けて保存]をクリックして監視結果を.datファイルに保存します。後でこのファイルを開くには、ツールバーの[開く]ボタンをクリック、または、[ファイル]メニューから[開く]をクリックします。

関連項目

XMLレポートのエクスポート

キャプチャしたログのエクスポート


 XMLレポートのエクスポート

[ファイル]メニューから[XMLにエクスポート]をクリックすると、セッションログを.xmlファイルとして保存します。このファイルはXMLフォーマットで動作する外部プログラムからも参照することができます。

[ファイル]メニューから[XMLにエクスポート]を使うと、キャプチャされたデータの任意のログのレポートを作成することができます。ダイアログボックスでレポートの保存場所を選択します。

.xslファイルがXMLファイルと共に保存されます。レポートはユーザがブラウザで使いやすい形で表示できるようにする必要があります。

各レポートは2つの部分に分かれています。最初の部分にはすべてのUSBデバイスに関する情報が収められています。システム情報とすべての記述子はここに表示されます。この情報は、[詳細]パネルの情報と同一です。

2番目の部分にはログに関するデータが含まれています。キャプチャされたバッファを含む、ログをとることができるすべての情報がXMLファイルに保存されます。
注意(!) ブラウザでは、簡単な情報([キャプチャ結果]表の情報と同一)のみが表形式で表示されます。

関連項目

キャプチャしたログのエクスポート

結果の保存


 USBポートの監視

開発者は、USBSpyを、USBポートおよび一緒に動いているアプリケーションを監視する目的で使用することができます。USBSpyはUSBデバイスに送信されるデータを監視することができます。

このようにUSBポートを監視することで、USBデバイス用に開発されたソフトウェアのデバッグ、USBデバイス用ドライバの開発、USBデバイスの開発やUSBデバイスとソフトウェアの効果的なコーディング、テストおよび最適化のためにUSBSpyを使用することができます。

USBデバイス用ファームウェアや既存のUSBデバイス用ドライバの開発者は、USBポートを監視する必要があります。また、リバース エンジニアリングの目的でもUSBポートの監視は役立ちます。たとえば、特定のデバイスとのデータ交換プロトコルの検出のために使用できます。

USBポートを監視するには新規セッションを作成します。[ファイル]メニューから[新規]をクリック、または、ツールバーの [image] をクリックします。詳細な説明は「リクエストの記録」を参照してください。

監視するUSBデバイスを選択します。[キャプチャ]メニューから[ キャプチャの開始]をクリック、または、ツールバーの [image] をクリックすると監視処理が開始します。

USBデバイスのキャプチャされた全リクエストは、メイン画面の[キャプチャ結果]タブに表示されます。

関連項目

リクエストの記録

USBの分析


 USBの分析

USBデバイスとアプリケーション間で転送されるデータは何千ものパケットで構成されており、これらのパケットを分析する必要があります。

USBSpyを使用するとUSBポートやUSBデバイスの分析ができます。USBSpyは、USBデバイス - ドライバ間で転送されたデータをプロトコルレベルで徹底的に分析することができます。

データの分析とログ ファイルの解析には下記の情報が役立ちます。

USBポートやUSBデバイスの分析中に表示されるリクエストの主要なタイプには次のようなものがあります。

URB - USBデバイスとホスト コントローラ間で送信される情報は全てURBパケット(USBリクエスト ブロック)として送信されます。URB構成についての詳細な説明はDDKマニュアルを参照してください。
USB内部I/Oコントロール - カーネルにより USBデバイス(通常ホストコントローラ)に送信されるIRP_MJ_INTERNAL_DEVICE_CONTROLコードを持つリクエスト。
HIDリクエスト - MajorFunction = IRP_MJ_DEVICE_CONTROLとIoControlCode = IOCTL_HID_...を持つリクエスト。
ハブリクエスト HIDリクエストと同様だが、IoControlCode = IOCTL_USB_...のリクエスト。
HCDリクエスト - 特定コードのリクエストのグループ。ホスト コントローラのドライバに送信される。
電源 - IRP_MJ_POWER(パワーマネジメント)のIRP。
PnP - IRP_MJ_PNP(プラグアンドプレイサポート)のIRP。

USBポートとUSBデバイスを分析する際に必要なすべてのリクエストは、プログラム メインテーブルに表示され、下記のフィールドが含まれます。

タイプ - パケット タイプ(URB、PNP、電源、ハブ、HID、USB内部)。

番号 - USBポートの分析のためのログ内のパケット番号。

リクエスト タイプ - このパケット タイプのサブタイプ名。

イン/アウト - 入力/出力パケット タイプ。転送リクエスト サブグループのURBパケットのみに意味を持ちます。

経過秒 - USBポート分析のログが開始してからの時間(秒）。

デバイス オブジェクト - パケットがキャプチャされたデバイス オブジェクト名 (アドレスを含む)。

IRPリクエスト - キャプチャされたIRPのアドレス。

IRPステータス - このIRPを処理した後、ドライバから返されるステータス。

プロセス名 - このパケットが処理されているとき進行中のプロセス名。

USBポートとUSBデバイスの分析には、[詳細]パネルからの情報を利用してください。

下記のタブが使用可能です(パケットによって使用可能なタブが変わります)。

  • URBパケット - URB、Irp、IoStackLocation
  • その他すべてのパケット - Irp、IoStackLocation

これらのタブには対応する構成(URB、Irp、IoStackLocation)が、DDKでの記述にしたがって表示されます。


 USBのキャプチャ

USBポートとUSBデバイスをキャプチャすると、選択した USBデバイスとコンピュータ間のデータ交換に関するすべての情報 (パケット パラメータだけでなく全ての転送されたデータを含む) を得ることができます。また、USBデバイスを診断して、ファームウェアやデバイス ドライバのバグを迅速に修正することができます。USBポートやUSBデバイスをキャプチャすることによって全データ交換を入手できるので、開発者は出入りする情報を確認することができます。

USBポートやUSBデバイスをキャプチャするには、新しくセッションを作成する必要があります。[ファイル]メニューから[新規]をクリック、または、ツールバーの [image] をクリックします。詳細な説明はリクエストの記録を参照してください。

また、USBトラフィックをキャプチャしたいUSBデバイスを選択します。詳細な説明は「デバイスの選択」を参照してください。[キャプチャ]メニューから[キャプチャの開始]をクリック、または、ツールバーの [image] をクリックするとキャプチャ処理が開始されます。

USBデバイスのキャプチャされた全リクエストは、メイン画面の[キャプチャ結果]タブに表示されます。

関連項目

リクエストの記録

USBの分析


 キャプチャしたログのエクスポート

USBSpyは、デバイス - ホスト間のUSBトラフィックをキャプチャするだけでなく、ログを保存して、後で、デバッグや分析に使用することもできます。詳細にキャプチャされたログからはUSBトラフィックをキャプチャして得られた各リクエストについての完全で詳細な情報が得られます。

キャプチャしたログをプログラムの形式で保存することができます。この場合、キャプチャしたログを再びプログラムにロードしてUSBトラフィックの分析とデバッグやパケットの検索をすることができます。

キャプチャしたデータをXMLフォーマットにエクスポートすることもできます。このフォーマットのデータは、便利な形式でブラウザで表示したり他のソフトウェアで処理することができます。

USBトラフィックのキャプチャ結果をプログラムの形式で保存するには、[ファイル]メニューから[保存]または[名前をつけて保存]をクリックして.datファイルに保存します。キャプチャしたUSBトラフィックを保存したファイルを開くには、[ファイル]メニューから[開く]を選択、または、ツールバーの [image] (開く)をクリックして開きたいファイルを選びます。

キャプチャしたUSBトラフィックをXMLフォーマットで保存するには、[ファイル]メニューから[XMLにエクスポート]をクリックして、エクスポート先を選びファイル名を指定します。

注意: キャプチャしたUSBトラフィックのエクスポートは製品版でのみ使用できます。

関連項目

XMLレポートのエクスポート

結果の保存


 表示モード

プログラムの形式に保存したファイルを開くと、USBSpyは表示モードに切り替わります。ログ ファイルが書き込まれたときに存在したデバイスが[デバイス]パネルに表示されます。[開始]ボタンは使用できなくなります。

パケットとそのコンテンツを表示、検索、フィルタすることはできます。このモードを終了するには、[ファイル]メニューから[閉じる]または[編集]を選択し、[表示のクリア]をクリックします(ツールバーの [image] でも操作できます)。


 起動時から記録

この機能では、送受信されたパケットをコンピュータ起動時から記録することができます。このオプションを有効にして、コンピュータを再起動した後USBSpyを開始してください。メイン ウィンドウにコンピュータが起動されたときに送受信された全てのパケットが表示されます。

注意: このオプションはコンピュータを再起動すると無効になります。コンピュータ起動時のパケットが必要な場合はその都度このオプションを有効にしてください。


 検索

検索パネルの下部に検索テキスト入力用フィールドがあります。プログラムによってキャプチャされたパケット ダンプ内で入力したテキストの検索が行われます(列内のテキスト検索ではありません)。

注意: 検索は、UnicodeとANSIの2つのモードで同時に行われます。大文字と小文字は区別されません。


 詳細パネル

このパネルにはメイン ウィンドウで選択されているパケットのデータが表示されます。パケットにデータのあるバッファが含まれていると、[データ]バーに表示されます。バッファは、転送バッファ(TransferBuffer)、MDL、システム バッファ(SystemBuffer)、ユーザ バッファ(UserBuffer)の優先順位で表示されます。

つまり、最初のバッファが空の場合2番目のバッファがチェックされ、2番目のバッファが空の場合3番目のバッファがチェックされます。バッファ名は、[データ]バーのタイトルに表示されます。すべてのバッファが空の場合は[データなし]が表示されます。

パケットが複数のデータのあるバッファを持つこともあります。それらを表示するには、[詳細]パネルで必要なバッファを選び (ここでは、[IRP詳細]->[AssociatedIRP]->[SystemBuffer]と選択してシステム バッファ(SystemBuffer)が例示されています)、青色の下線のついたアドレスをクリックします。


 USBSpyのパネル

プログラムのパネルは任意の場所に移動することができます。例えば、[検索]、[トリガー]、[フィルタ]パネルの自動的に隠すプロパティを解除して、[検索]と[トリガー]パネルを[フィルタ]パネルに移動することができます。3 つのパネルはタブとして配置されます。

パネルは上部のタイトルの部分でドラッグすることができます。パネルをドラッグすると、画面に矢印のついた四角いマークが現れます。ここにマウス ポインタを移動すると、パネルを移動できる位置を確認できます。


 ドライバを使用しない起動

予期せぬ事態が生じた場合、起動時に[F8]を押すことによって[セーフ モード]でコンピュータを起動することができます。この場合、ドライバはデータをキャプチャしません。


 FAQ
キャプチャすることによって、パケットについてのどのようが情報を入手することができますか？
IRPの全ての内容、dlAddress、ユーザ バッファ(UserBuffer)、システム バッファ(SystemBuffer)により特定されたメモリの全ての内容、IO_STACK_LOCATION の現在のスタック、URBパケットの全ての内容です。また、処理のためにパケットがドライバに受け入れられた相対的時間が監視されます。インタフェースの数、コンフィギュレーションとエンド ポイント、入/出力方向、URBファンクションの名称もURBパケットに表示されます。デバイス オブジェクト名、IRPアドレス、完全性ステータスが表示されます。
このデータに基づいてどのような結論と決定を導けますか？
このデータに基づいて様々な結論が導き出されます。ユーザがこのプログラムを使用して解決しようとしている問題によります。このデータはハードウェア ドライバやハードウェア自体のデバッグに使用できます。ドライバやUSBデバイス全体が、どの程度正確に動作しているか確認することができます。
この製品でどんな問題を解決できますか？
診断とデバッグがキーワードです。まず、本製品はデバイス メーカやUSBデバイス用ドライバの開発者にとって関心の高いものです。このプログラムを使うと、デバイスやドライバの個々のバグを検出して、完全にデバッグすることができます。開発者は、キー デバイスに送信されたすべてのパケットを監視することにより、ハードウェアやデバイスがどの程度正しく働いているかを診断することができます。
そのほかにはどのような機能がありますか？
パケットのキャプチャに加え、次のような機能があります。
  • 詳細情報を含むハードウェアやデバイスの構成とキャプチャされたパケットすべての完全な内容を保存し、このログを後で開くこともできます。
  • ログをXML形式にエクスポートできます。
  • キャプチャ中でもキャプチャ終了後でも、各フィールド(完了ステータス、パケット タイプ、IRP 関数、デバイス オブジェクト、等)でキャプチャされたパケットをフィルタリングすることができます。
  • これらのフィールドで検索を行うことができます。
  • ホットプラグ デバイスのパケットをキャプチャできます。
  • 再起動時にログオン(システムロード時のデータをキャプチャ)できます。


USBSpy のアンインストール

 USBSpyのアンインストール

USBSpyはシステムからプログラムを削除するための自動アンインストーラを備えています。

USBSpyをアンインストール方法

  1. USBSpyを閉じる
  2. USBSpyを完全にアンインストールするには、コントロール パネルの[Windowsプログラムの追加と削除]ツールを使用します。
  3. パスワードで保護されている場合は、パスワードを入力します。


 USBSpy 使用許諾契約書

USBSpy をご利用になる前に、本使用許諾契約書をよくお読みください。

  1. 本使用許諾契約書(以下、「本契約」)は、エンドユーザ(以下、「お客様」)とソフトウェアの開発元(以下、「作者」)との間で交わされる法的契約です。本ソフトウェア(USBSpy)をご使用になるか、お客様のコンピュータ(またはその他メディア)に保存することで、本契約のすべての条項に同意したものと見なされます。
  2. USBSpyは「現状のまま」で配布されています。明示的にも黙示的にもいかなる種類の保証も行っておりません。お客様ご自身の責任下において本ソフトウェアをご使用ください。Everstrike Softwareは、本ソフトウェアの使用または使用結果に関して、正確性および信用性に対するいかなる保証も放棄するものとします。Everstrike Softwareは、本ソフトウェアの使用方法が正しいか否かに関わらず、またEverstrike Softwareによって損害の可能性が示唆されていた場合であっても、利益の損失、ビジネスの中断、および情報の喪失に限らず、いかなる偶発的、必然的、直接的、間接的損害に対する責任も負いません。本ソフトウェアをインストールすることで、お客様は本免責事項をお読みになり、理解し、すべての条項に同意したものと見なされます。また、本免責事項は当事者間における完全に排他的な了解事項であり、免責事項に関する過去の書面・口頭(またはその他連絡方法)による提案または同意書に優先します。
  3. 本ソフトウェアに関するすべての著作権は作者であるEverstrike Softwareが有します。
  4. お客様は15日間に限り本ソフトウェアの試用版を試用することが出来ます。この期間中、お客様はご自分のシステム上で本ソフトウェアを試用することが出来ます。15日間の評価期間が過ぎると、試用版のサービスは停止になり、継続して使用する場合はライセンスを購入する必要があります。オンライン サービス、掲示板、またはその他の方法で本ソフトウェアを自由に配布できるのは評価版に限られます。
  5. Everstrike Softwareは、本ソフトウェアを購入されたお客様に対して、本ソフトウェアを1台のコンピュータで使用するための権利と、保管用として1部のコピーを作成するための権利を許諾します。ここでいう使用とは、ソフトウェアをRAMにロードしたり、ハード ディスクなどの記憶装置にインストールすることを意味します。お客様が本契約に同意している限りは、本ソフトウェアを継続して使用することができます。ただし、ネットワーク サーバにインストールする場合、または1度に複数のユーザで使用する場合は、事前にマルチユーザ ライセンスの手配が必要になります。すなわち、保管用としてバックアップ コピーを1部作成することが認められている以外、複製、販売、譲渡、贈呈など商用目的でのソフトウェアの利用や、サブライセンス、貸与などは一切認められていません。Everstrike Softwareに対して書面による文書を提出した場合にのみ、他者への譲渡が認められる場合があります。
  6. 本ソフトウェアおよび付属資料は、本契約において許諾されていない限り、いかなる手段においても、模倣、複製、貸与、リース、販売、譲渡、仕様変更、逆コンパイル、逆アセンブリ、リバース エンジニアリング、メッセージやウィンドウの変更や削除を行うことは禁止されています。不正使用を発見した場合は、ライセンスが自動的に即時終了するものとし、厳しい刑事上、民事上の訴追に帰着することがあります。
  7. Everstrike Softwareの事前の承諾なしに、いかなる形態においてもUSBSpyを、支払またはライセンス使用料を受取るために使用される、商業的に配布される製品の一部に含めることは出来ません。USBSpyには2種類のライセンスがあります。
    • Home License: Home Licenseは、非営利的な家庭用の使用のためのライセンスです。それ以外の環境下ではEnterprise Licenseをご使用下さい。
    • Enterprise License: 本製品を企業、非営利団体、国有機関、行政、その他のいかなる形態においても、団体において使用する場合、または、個人が営利目的で本製品を購入する場合(例えば、個人又は家族経営の場合)にはEnterprise Licenseを取得しなければなりません。これに従わない場合は使用許諾契約違反とみなされます。
  8. アップグレードにより前のバージョンは置き換えられます。この場合追加のライセンスは提供されません。その際は、前のバージョンの使用を取り止め、他の誰も使用していないことを確認してください。
  9. 本契約に明示されていないすべての権利は作者に留保されます。
  10. 本契約の内容、および本ソフトウェアのインターフェイス デザイン、ドキュメント、コーディングは、将来のリリースにおいて予告なしに変更される場合があります。
  11. 本ソフトウェアをインストールし、使用するには、本契約のすべての条項に同意する必要があります。同意されない場合は、本ソフトウェアをただちに破棄し、使用を中止してください。


 試用版と製品版の違い

USBSpyは、試してから購入(Try Before You Buy)することができるシェアウェアです。特定の試用期間内であれば無料で利用することができますが、その期間を過ぎると、購入するか、利用を停止する必要があります。なお、USBSpyには、15日間の試用期間が設けられています。

USBSpyでは、試用版でも製品版とまったく同じ機能を使用できます。これは、お客様にソフトウェアの必要性を適切に判断してもらうことを目的としているためです。

しかしながら、試用版では次のような制限があります。試用版の場合、起動時に試用版であることを示す通知ウィンドウが表示される、メイン ウィンドウのタイトル バーに試用モードで実行していることを示すメッセージが表示される、終了時にフィードバックの送信を求めるウィンドウが表示される、などです。

ご購入後は、上記の制限事項が解除され、テクニカル サポートを受けることができます。

また、「ソフトウェア ライセンス」の項で、使用許諾契約書をお読み下さい。


 お問合せ先
お問合せ先と販売について
ご質問、ご意見、ご感想、バグのご報告は弊社Webサイトhttp://www.shareEDGE.com/cs/ のお問い合わせフォームをご利用くださいますようお願いいたします。


 著作権

Copyright © 2006 Everstrike Software.All rights reserved.

本ドキュメントは、USBSpyソフトウェアと併せて使用することだけを目的として、Everstrike Softwareによって発行されています。本ドキュメントの印刷版および電子版は、すべてのライセンス所有者が利用できます。Everstrike Softwareの書面による事前の許可なしに、本ドキュメントの一部またはすべてを複写、複製、再製造、または翻訳すること、電子的または機械的に読み取り可能な形式に変換すること、およびWebサイトに掲載することは禁じられています。

商標

USBSpyおよびEverstrike SoftwareはEverstrike Softwareの商標です。Microsoft、Windows、Windows NT、Word、およびExcelはMicrosoft Corporationの登録商標です。Adobe、Acrobat、およびAcrobat ReaderはAdobe Systems Incorporatedの登録商標です。その他の会社名、製品名は、各社の商標または登録商標です。


バッファ

 バイナリ データ

[バイナリ データ]画面には1つのパケット バッファの内容が表示されます(メモリ バッファがキャプチャされた場合)。

複数のバッファがキャプチャされた場合は、下記の手順で表示を切り替えることができます。

  • 転送バッファの内容を表示する場合は、[URB詳細]タブの転送バッファ(TransferBuffer)をクリックします。

  • MDL、システム バッファ(SystemBuffer )、ユーザ バッファ(UserBuffer)を表示する場合は、[IRP詳細]タブで表示したいフィールドをクリックします。


 詳細

このパネルには選択されたデバイスまたは選択されたリクエスト パケットについての追加情報が表示されます。

各リクエストごとに次の情報を表示するタブが用意されています。

  • URB詳細(URBのみ)

  • IRP詳細

  • IoStackLocation詳細

関連項目

インタフェース


 検索とフィルタリングのパラメータ

リクエストの検索やフィルタリングを行う場合、次のパラメータを設定することができます。

  • Irp包含基準

    • 開始中または完了 - チェックすると、完了していないリクエストまたは完了したリクエストを選択します。

    • 成功またはエラー ステータス - チェックすると、STATUS SUCCESS または STATUS ERROR のリクエストを選択します。

    • 入力または出力転送 - CONTROL_TRANSFER、BULK_OR_INTERRUPT_TRANSFER、ISOCH_TRANSFER のタイプのURBパケットに対してのみ利用できます。

  • HCD I/Oコントロール - ホスト コントローラ デバイスへの I/Oコントロール リクエスト

  • HID I/Oコントロール - ヒューマン インタフェース デバイスへの I/Oコントロール リクエスト

  • ハブI/Oコントロール - ハブへのI/Oコントロール リクエスト

  • PnPリクエスト

  • 電源リクエスト

  • USB内部I/Oコントロール - USBデバイスに対するカーネル レベルのリクエスト

  • URBリクエスト

  • その他パケット - 上記のどのクラス(HCD、HID、ハブ、PNP、電源、USB内部、URB)にも割り当てられないすべてのパケット。