範囲検索(64Bit Mode)
画面説明
範囲検索の使用にあたり、まず範囲検索ダイアログの各コントロール(ボタン等の子ウィンドウ)の役割を理解してください。
グループボックスやエディットボックス等のコントロールに関しては、 ユーザーインターフェイス 名称説明を参照してください。 |
●画面 |
●画面説明 ■オプション 「検索時対象プロセス停止」は、対象プロセスのスレッドのアクセス権限等によっては不具合を招く可能性があります。その場合はこのオプションをオフにしてください。 検索対象メモリエリアのアクセス属性の指定については概要と注意点を参照してください。 ■全設定保存 通常検索や変動検索の検索・比較単位や検索・比較範囲および検索結果表示数等の設定を保存し、次回の検索機能呼び出し時に設定を自動的に反映させます。保存した設定が、次回以降の検索状況によっては不適切な設定になってしまうケースに注意してください。 ■検索範囲を最大化 通常検索や変動検索の検索範囲を、プロセス有効アドレス全体にまで最大化して指定します。最大化時には、その時点までの検索範囲の指定内容を記憶し、チェックボックスをオフにした際に元の指定内容を復元します。このチェックボックスの操作は一時的な検索範囲の変更であり、検索範囲の指定内容の保存は行いません。 ■検索・比較単位(グループボックス) 通常検索の検索条件や、変動検索の比較に用いる、数値の単位サイズを指定します。また、通常検索や変動検索での比較用に符号の有無も指定可能です。たとえば増減幅を「-100」といった負の数値で指定する場合には、必ず「符合あり」を有効にしておく必要があります。数値の単位サイズの詳細は数値表現を参照してください。 検索・比較単位については、以下のパターンが選択可能です。 Byte(1バイトで表示可能な整数) Word(2バイトで表示可能な整数) DWord(4バイトで表示可能な整数) QWord(8バイトで表示可能な整数) Float(4バイトで表示する浮動小数点数) Double(8バイトで表示する浮動小数点数) このうち、Byte、Word、DWordについては、符号なしで取り扱い可能です。 このうち、通常検索および変動検索で検索値や増減幅として指定するByte、Word、DWord、QWordについては、数字の前に「0x」をつけることで16進入力も可能です。 ■通常検索(リスト出力後は絞り込みモード、開始と範囲は16進)(グループボックス) 通常検索を行う検索条件と、メモリエリアの開始アドレスと範囲サイズをエディットボックスに入力して通常検索を実行します。必要に応じて、[検索範囲を最大化]チェックボックスを使うなどして、範囲サイズの指定を「40000000」から「7FFE0000」などに変更し、32ビットアプリケーション有効アドレスの終端近くまでカバーできるようにしてください。効率的な検索のため、入力された開始アドレスと範囲サイズの0x1000未満の値は切り捨てます。検索条件には数値や文字列に加え、"11223344AABBCC"のようなプロセスメモリ上のデータをそのままバイト列として指定することも可能です。また、文字列を検索する場合は、入力文字列をデフォルトのASCII文字列としてだけではなく、UNICODEに変換して検索することも可能です。検索実行された数値等の検索条件は、検索履歴としてコンボボックスに記録され、後で再利用可能です。 通常検索については、以下の検索パターンが選択可能です。 数値:[==](検索対象値と検索条件入力値は同じ) 数値:[!=](検索対象値と検索条件入力値は異なる) 数値:[>=](検索対象値は検索条件入力値以上) 数値:[<=](検索対象値は検索条件入力値以下) 数値範囲:[<=,<=](検索対象値を検索条件入力値で範囲指定:例「50,100」) バイト列(「001122AABB」といった検索対象バイナリデータを16進数でそのまま指定) 文字:Windows ANSI(検索条件入力文字列をそのまま検索) 文字:UNICODE(LE)(検索条件入力文字列をリトルエンディアン型のUNICODEに変換して検索) 文字:UNICODE(BE)(検索条件入力文字列をビッグエンディアン型のUNICODEに変換して検索) 文字:UTF-8(検索条件入力文字列を文字コードUTF-8に変換して検索、入力は半角42文字まで) ビット列(「00111100」といった検索対象ビット列を2進数でそのまま指定) このうち、「数値:[==]」では、数値をスペースで区切って入力すると、それらの数値がプロセスメモリ上で連続して格納されているもの(シーケンス)として検索します。例えば、入力した検索条件が「10 20 30」で検索単位がWordならば、バイナリデータ「0A0014001E00」を検索します。 検索条件にバイト列を指定した場合、以下のように上位4ビット、下位4ビット、あるいは1バイトのワイルドカードを指定可能です。"?"で指定された4ビットは検索時にプロセスメモリ上のバイナリデータとの比較を行いません。 (ワイルドカード指定例) ?1?2?3?4??????1?2?3?4?5? (上記検索該当例) 718293A4ABCDEF1A2B3C4D5F A1A2A3A40000001B2B3B4B5B 検索条件にビット列を指定した場合は、1バイト単位のバイナリデータに変換した上で検索を行います。 入力されたビット列文字列のうち、"1"と"0"以外の文字は無視します。 また、1バイト分に満たない8文字未満のビット列文字列は無視されます。 (ビット列入力例) 11110000_1111-1010 ■変動検索(リスト出力後は絞り込みモード、開始と範囲は16進)(グループボックス) 変動検索を行うメモリエリアの開始アドレスと範囲サイズをエディットボックスに入力して、そのメモリエリアのバイナリデータを、確保上限設定値(MB)まで確保した比較用バッファに記録を行った上で変動検索を実行します。必要に応じて、[検索範囲を最大化]チェックボックスを使うなどして、範囲サイズの指定を「40000000」から「7FFE0000」などに変更し、32ビットアプリケーション有効アドレスの終端近くまでカバーできるようにしてください。効率的な検索のため、入力された開始アドレスと範囲サイズの0x1000未満の値は切り捨てます。また、変動検索を行う際の数値比較を、Word/DWord/QWord境界ベースで行うか1バイトごとにずらしながら行うかも設定可能です。確保した比較用バッファの解放は、[解放]ボタンで行うこともできますが、範囲検索ダイアログを閉じることでも解放されます。 変動検索は、変動/不動/増加/減少/増減幅(整数値やパーセント)指定といった、数値変動の内容を指定して検索を行います。[増減幅指定]で増減値をエディットボックスに入力する際には、減少はマイナス符号(-)で指定します。増加にプラス符号(+)を使用する必要はありません。 変動検索については、以下の検索パターンが選択可能です。 変動(比較用メモリ記録後か検索後に値が変動した箇所) 不動(比較用メモリ記録後か検索後に値が変動していない箇所) 増加(比較用メモリ記録後か検索後に値が増加した箇所) 減少(比較用メモリ記録後か検索後に値が減少した箇所) 増減幅指定(比較用メモリ記録後か検索後に値が変動した増減幅を指定) [==](値の増減幅は入力された増減幅と同じ) [!=](値の増減幅は入力された増減幅と異なる) [>=](値の増減幅は入力された増減幅以上) [<=](値の増減幅は入力された増減幅以下) [<=,<=](値の増減幅は入力された増減幅範囲内。例:「50,100」) [% ==](値の増減幅はその値の入力されたパーセンテージと同じ) [% !=](値の増減幅はその値の入力されたパーセンテージと異なる) [% >=](値の増減幅はその値の入力されたパーセンテージ以上) [% <=](値の増減幅はその値の入力されたパーセンテージ以下) [% <=,% <=](値の増減幅はその値の入力されたパーセンテージ範囲内) 増減幅のパーセンテージ指定は、検索対象となる値が負の場合に注意して下さい。値が -100 から -200 に減少した場合は、増減幅-100のパーセンテージは100(%)で、[% >=]なら101(%)(-100×101%=-101)で、[% <=]なら99(%)(-100×99%=-99)で検索にヒットします。この場合範囲指定はできません。 ■表示 検索の結果となる、検索該当アドレスの表示数の上限を指定します。Windowsの仕様により、上限数を数千や数万といった大きな数値に指定すると、検索結果の表示に多大な時間を要することになります。そのため、この表示数上限は1000件程度に指定されることをお勧めします。 ■クリア 出力された検索該当アドレスのリストをクリアします。一度クリアすると、元に戻すことはできません。 ■元に戻す 出力された検索該当アドレスのリストを、1回前の検索・比較時の状態に戻します。 ■検索結果(リストビュー) 検索該当アドレスのリストを表示します。リスト上のアドレスを選択して右クリックで表示されるポップアップメニューから、選択アドレスに対する各種操作が可能です。 |