IoSpy と IoAttack

Note

Windows 10 バージョン 1703 以降、WDK では IoSpy と IoAttack を使用できなくなりました。

これらのツールの代替えとして、HLK で使用可能なファジー テストの使用を検討してください。 検討すべきいくつかのオプションを次に示します。

DF - ランダム IOCTL のファジー テスト (信頼性)

DF - サブオープンのファジー テスト (信頼性)

DF - 0 長バッファー FSCTL のファジー テスト (信頼性)

DF - ランダム FSCTL のファジー テスト (信頼性)

DF - Misc API のファジー テスト (信頼性)

ドライバー検証ツールに含まれているカーネル同期遅延ファジーを使用することもできます。

IoSpy と IoAttack は、カーネル モード ドライバー上で IOCTL および WMI ファジー テストを実行するツールです。 これらのツールを使用すると、ドライバーの IOCTL および WMI コードでデータ バッファーとバッファーの長さを正しく検証できます。 これにより、システムが不安定になる可能性があるバッファー オーバーランを回避できます。

ファジー テストでは、ドライバー内の欠陥を特定するために、ファジーと呼ばれるランダムなデータをドライバーに提示します。 IOCTL または WMI インターフェイスでのファジー テストは新しいものではありません。 ただし、ほとんどのテスト スイートは、ドライバーの IOCTL または WMI インターフェイスへの外部アクセスのみを検証する汎用 ブラック ボックス ファジー テストか、ドライバー内の特定の IOCTL パスと WMI パスをテストするように記述されています。

IoSpy と IoAttack では、ファジー テストに対してホワイト ボックス アプローチをより多く使用します。 デバイスでファジー テストが有効になっている場合、IoSpy はデバイスのドライバーに送信された IOCTL 要求と WMI 要求をキャプチャし、これらの要求の属性をデータ ファイル内に記録します。 IoAttack は、このデータ ファイルから属性を読み取り、ドライバーに送信する前に、これらの属性を使用して IOCTL または WMI 要求をさまざまな方法で ファジング、またはランダムに変更します。 これにより、IOCTL または WMI 固有のテストを記述することなく、ドライバーのバッファー検証コードにさらに入力できます。

IoSpy と IoAttack は、Windows オペレーティング システムの Windows Vista 以降のバージョンを実行するシステムでサポートされています。 これらのツールは、デバイスの基礎テストの一部として WDK に含まれています。「侵入テスト (デバイスの基礎)」を参照してください。 これらのテストは、[Basic\Device Fundamentals\Penetration\IoSpy & Attack] フォルダーにある、[ドライバー テストの追加と削除] ダイアログ ボックスから選択できます。

重要 : IoSpy と IoAttack は、カーネル モード デバッグ用に以前に準備したテスト システムで実行する必要があります。

ここでは、次のトピックについて説明します。

IoSpy

IoAttack

IoSpy と IoAttack でファジー テストを実行する方法