リージョン検索
概要
指定された検索条件に合致する、プロセスメモリ上のメモリエリア(リージョン)を検索します。リージョンの検索条件として、サイズ、タイプ、保護属性および、先頭から任意の位置にある特定データを指定可能です。また、検索結果の特定リージョンに対し、ファイルへのダンプや、保護属性の変更も簡単にできるようにしています。 この機能により、対象プロセスがプロセスメモリ上に確保する特定用途のリージョンを、起動毎のアドレス変動にかかわらず簡単に捕捉することが可能になります。例として、PCゲームの各種パラメータ格納用リージョンなどが挙げられます。 他の用途としては、マルウェアが対象プロセスにDLLを注入し、さらにPEB経由でモジュールリストを改ざんして、API関数を用いた一般的なモジュール列挙では同DLLモジュールを検出不能にしたケースでの、モジュール検出にも使用可能です。 この機能は、VirtualAlloc関数などで確保された0x1000単位のリージョンを検索します。そのため、HeapAlloc関数などで確保された任意のバイト数のメモリブロックは検索対象にはなりません。 Windows 9x/Meでは、アプリケーションがVirtualAlloc関数で確保したリージョンなど、一部のリージョンのみ取得します。 |
●画面説明![]() ●画面サイズ変更 ■< R > ダイアログ画面のサイズを、縮小⇔標準モードに切り替えます。 ●リージョン検索条件(複数指定可) ■サイズ 検索対象リージョンのサイズを16進数で指定します。Windowsの仕様により、このサイズは0x1000単位となります。 ■タイプ 検索対象リージョンのタイプを指定します。指定は「PRIVATE」、「IMAGE」および「MAPPED」の3つから選択します。基本的に、実行ファイルが読み込まれているリージョンなら「IMAGE」、それ以外なら「PRIVATE」という指定で事足ります。 ■保護属性 検索対象リージョンのアクセスに関連する保護属性を指定します。ここでいう「保護属性」とは、「プログラムが当該リージョンにアクセスする目的として可能な組み合わせ」を意味します。指定内容の文字列のうち、「E」は実行可能、「R」は読み込み可能、「W」は書き込み可能、そして「C」は書き込みコピーという属性を意味します。たとえばプログラムコードが格納されたリージョンなら一般的に「ER--」となり、プログラムが使用する読み書き可能なデータが格納されたリージョンは一般的に「-RW-」となります。詳細については「メモリエリアのアクセス属性」を参照してください。 ■特定データ 検索対象リージョンの特定位置に格納された特定データを検索条件に指定します。特定データの位置は16進数で指定します(リージョン先頭なら+00h)。特定データの形式には各種数値、文字列、バイナリデータが指定可能です。特定データは下部エディットボックスに入力します。入力方法については「検索・書き込み・置換での特殊なデータ入力」を参照してください。 検索条件にバイト列を指定した場合、以下のように上位4ビット、下位4ビット、あるいは1バイトのワイルドカードを指定可能です。"?"で指定された4ビットは検索時にプロセスメモリ上のバイナリデータとの比較を行いません。 (ワイルドカード指定例) ?1?2?3?4??????1?2?3?4?5? (上記検索該当例) 718293A4ABCDEF1A2B3C4D5F A1A2A3A40000001B2B3B4B5B 検索条件にビット列を指定した場合は、1バイト単位のバイナリデータに変換した上で検索を行います。 入力されたビット列文字列のうち、"1"と"0"以外の文字は無視します。 また、1バイト分に満たない8文字未満のビット列文字列は無視されます。 (ビット列入力例) 11110000_1111-1010 ●検索実行 ■検索実行 指定された条件(複数設定可)を使って該当するリージョンを検索します。検索結果として、指定された条件全てを満たすリージョンをリストアップします。 ●選択リージョンの操作 ■相対アドレス設定 検索結果のリスト中で選択されたリージョンの先頭アドレスを使って、ダンプ表示ウィンドウ上での相対アドレス指定を行います。相対アドレス設定の基準アドレスに、再度この設定を行うと、相対アドレス設定を解除します。 ■ファイルにダンプ 検索結果のリスト中で選択されたリージョンをファイルにダンプします。 ■保護属性を変更 検索結果のリスト中で選択されたリージョンの、保護属性を変更するためのダイアログを表示します。この機能では、初期設定で変更対象範囲のサイズを0x1000に設定しているため、必要に応じてこの対象範囲サイズを再指定してください。 |