グループ検索
概要
プロセスメモリ上で数値や文字列など「主データ」を検索し、さらにその検索結果アドレスから前方後方の指定範囲内で、特定の数値や文字列など「従データ」を検索します。「従データ」は3つまで指定可能です。 この機能は、いくつかの連続しないが関連のあるデータを、グループとして検索するために実装しました。用途として、仕様が不明な構造体などの検索を想定しています。他には、コードセクション内での、近接する複数の特定ニーモニックを処理の固まりとして検索するケースも想定されます。また、1バイトのデータなど、単体での検索ではヒット数が膨大となるが、複数要素のグループで検索すればヒット数を低減させることが可能なケースもあると考えられます。さらに、「A_n_sw_er = 」といった検索回避を意図した文字列の検索にも使用可能です(この場合は「A」「n」「s」といった検索対象文字列に含まれるはずの1文字を各要素に指定し、相対位置範囲は狭く設定する)。 検索可能なデータの種類は、Byte,Word,DWord,QWord,Float,Double,文字列(ANSI/UNICODE/UTF-8),ビット列,バイト列です。また、数値の場合は連続する複数の数値を繋げて、ひとつのデータとして検索する「シーケンス」にも対応しています。なお、検索所要時間の増加や必要性の理由により、バイト列検索でのワイルドカード指定には対応していません。 効率的な検索を行うために、検索範囲の開始アドレスと終端アドレスや、主データの検索結果をアクセス属性でフィルタリングすることも可能です。ただし、アクセス属性の指定が適切ではない場合は、目的のアドレスが全くヒットしなくなりますので注意が必要です。 当ソフトウェアに同梱している、汎用ファイルアナライザ『青い空を見上げればいつもそこに白い猫』(AoZoraSiroNeko.exe)には、32ビットプロセスのプロセスメモリ、あるいは使用される全ての実行可能ファイルに対して、柔軟な文字列・バイト列検索が可能な「YARAルールでスキャン」機能を実装していますので、必要に応じてこの検索機能と使い分けることをお勧めします。 |
●画面説明 ●主データ検索開始アドレス及び終端アドレスを16進数で設定 ■開始アドレス 主データの検索対象範囲の開始アドレスを16進数で指定します。チェックが入っていない無指定時は、アプリケーション有効最小アドレスが自動的に指定されます。 ■EXE先頭 検索対象範囲の開始アドレスにEXEモジュール先頭アドレスを指定します。この機能は主にEXEモジュールのモジュールエリア内での検索を想定しています。このEXEモジュール先頭アドレスよりも前のアドレスに、プログラムの処理で使用されるデータが格納されるケースもありますので注意してください。 ■終端アドレス 主データの検索対象範囲の終端アドレスを16進数で指定します。チェックが入っていない無指定時は、アプリケーション有効最大アドレスが自動的に指定されます。 ●主データ ■データ形式 主となる検索対象データのデータ形式を指定します。 ■アクセス属性 主データの検索対象メモリエリアのアクセスに関連する保護属性を指定します。詳細については「メモリエリアのアクセス属性」を参照してください。チェックが入っていない無指定時は、アクセス属性は無視されます。 ■検索データ 検索する主データを検索条件に指定します。整数の数値は接頭辞「0x」を付けることで16進数での指定も可能です。より効率的な検索のために、主データには、できる限り存在の確実性が高いデータを指定してください。検索データは半角64文字まで入力可能です。 検索条件に数値を指定した場合、以下のように連続する数値をひとつのデータとして検索可能です(シーケンス検索)。この場合は、連続する数値を半角スペースで区切って指定します。 (DWordでのシーケンス指定例) 10 20 0xFFFF 0x12345678 (上記での検索データ) 0A00000014000000FFFF000078563412 ●従データ ■検索データ 従データとして検索するかを指定します。従データ1から3のうち、チェックの入っている従データが検索対象となります。従データは必ず1つ以上を指定してください。データ形式や検索データの指定方式は主データと同様です。たとえば従データ1で、検索条件を満たす従データが複数存在する場合は、主データに最も近いアドレスにある従データを従データ1の検索結果として表示します。 ●従データ検索範囲設定 ■相対位置範囲 主データ該当アドレスを基準として、そのアドレスから前方と後方どれだけの範囲内で従データの検索を行うかを、16進数で指定します。この相対位置範囲は主データの検索開始・終端アドレスには制約されません。検索の効率化のために、この範囲指定値は1000以下といった必要最小限の値を指定してください。この範囲指定値を大きな値にすると、より多くの検索該当アドレスを取得することが可能になりますが、それに伴い検索所要時間が大幅に増加します。 ■従データアドレスを主データからの相対値で表示 検索に伴い検索結果をリスト表示する際に、従データのアドレスを主データからの相対値で表示します。 ●グループ検索実行・オプション ■グループ検索実行 指定された検索条件でグループ検索を実行します。検索時には、その都度新規の検索を行います。必要に応じて該当アドレスへ栞を設定してください。 ■検索件数上限 検索該当件数の上限を指定します。検索該当件数がこの数値を超えると検索を中断します。ここで巨大な数値を指定すると、検索結果リストで表示に遅延が発生する可能性があります(Windowsの仕様)。 ■指定従データがすべて存在したアドレスのみ表示 主データ検索時に、指定された従データがすべて存在した場合にのみ検索結果リストに表示します。これにより、主データ検索該当アドレスの絞り込みが可能になります。 ■検索結果リスト(リストビュー) 検索結果が表示された状態では、検索結果リスト上での以下のクリックにより、該当アドレスでダンプ表示ウィンドウの選択・表示アドレスを変更します。 ・左クリック:主データ ・右クリック:従データ1 ・左ダブルクリック:従データ2 ・右ダブルクリック:従データ3 ●その他 ■縮小(ボタン) 当ダイアログの縮小・通常表示を切り替えます。 ■通常検索(ボタン) 通常検索設定ダイアログを表示します。通常検索により、主データのアドレス近辺で、検索条件に該当する別の従データを確認することなどが可能です。 |