範囲検索(64Bit Mode)
範囲検索(64Bit Mode) 関連ページ目次
●
概要と注意点
●
画面説明
●基本的な操作の流れ(当ページ)
●
検索のヒント
基本的な操作の流れ
●検索前準備
オプションの「検索時対象プロセス停止」を設定します。対象プロセスの動作に不具合が発生した場合は、このオプションをオフにしてください。
オプションの「検索対象メモリエリアのアクセス属性」を設定します。検索対象メモリエリアのアクセス属性は、パラメータやフラグ等の変動する値の検索では[Commit-ReadWrite]で良いのですが、プログラムが使用するあらかじめ用意された文字列等変動する必要の無いデータを検索する場合は[Commit-All]に設定することをお奨めします。
検索・比較単位を、
1、2、4、8バイトまたはFloat、Double
のいずれかで設定します。この設定は、数値検索の検索結果を出力する際の数値表示単位としても使用されます。
通常検索で数値の大小を比較するモードを符号付きで行う場合や、変動検索を符号付きの値で行う場合は、[符号あり(比較用)]チェックボックスにチェックを入れます。検索対象値が常に正の値ならばこのオプション設定は不要です。
●通常検索
通常検索用の検索範囲開始アドレスと、開始アドレスからの検索範囲サイズを16進数でエディットボックスに入力して指定します。「0x」は不要です。
数値、バイト列、文字列等の検索モードをコンボボックスから選択し、さらに検索対象データを入力します。
検索対象が整数値の場合は数字の前に「0x」をつけることで16進入力も可能です。
「境界ベース」で検索するか否かを、検索対象に応じて設定します。検索対象が数値の場合は「境界ベース」での検索を推奨します。
入力された検索対象の数値、バイト列か文字列といった検索対象データに問題が無いことを確認後、[通常検索実行]ボタンを押します。
●変動検索
変動検索用の比較範囲開始アドレスと、開始アドレスからの比較範囲サイズを16進数でエディットボックスに入力して指定します。「0x」は不要です。
「境界ベース」で検索するか否かを、検索対象に応じて設定します。検索対象が数値の場合は「境界ベース」での検索を推奨します。
「確保上限(MB)」で、比較範囲のバイナリデータを記録するために確保するバッファのサイズ上限を設定します。このサイズ上限はマシンスペックや、検索前の時点でシステムの空きメモリ容量がどれだけあるかを考慮した上で設定してください。
[確保・記録]ボタンを押して、比較用バッファを確保し比較範囲のバイナリデータを記録します。
解析対象アプリケーション上で、ゲームならパラメータ増減等、プロセスメモリ上の検索対象の値が変動するような操作を行います。
検索したい変動内容に応じて、[変動]ボタンや[増加]ボタン等、「変動検索実行」グループボックス内のいずれかのボタンを押して変動検索を実行します。「増減幅指定」で検索対象の増減内容の詳細を指定して検索することもできます。
検索結果出力後は、さらに検索対象の値を変動させてから[変動]ボタンや、検索対象の値が変化していないまま[不動]ボタン等で再度変動検索を行って検索結果を絞り込みます。
●絞り込み検索
通常検索か変動検索で検索結果を出力後、検索条件を再度設定して通常検索か変動検索を実行することで、出力済みの検索結果から絞り込みを行います。ある程度絞り込みができたら、検索結果の「今回検索」「前回検索」の内容などから目的のアドレスを特定します。
検索結果の絞り込みは、[元に戻す]ボタンで1回前の状態に戻して別の検索条件でやり直すことができます。
●目的のアドレス特定後の操作
出力された検索結果のリスト上で、任意のアドレスを選択すると、ダンプ表示ウィンドウの選択アドレスと表示アドレスを、検索結果のリスト上で選択されたアドレスで更新します。
出力された検索結果のリスト上で、任意のアドレスを選択後に右クリックをすると、「選択アドレスをコピー」等のポップアップメニューから各種操作を行うことができます。
目的のアドレスが特定できたら、必要に応じて
ダンプ表示ウィンドウ上での直接入力
や、
その他のプロセスメモリ書き換え機能
を使用して書き換えを行います。単純に現在値を固定したい場合は、メニューの[編集]→[選択範囲を記録バッファとクリップボードにコピー]で固定したいバイナリデータをコピーした上で、[編集]→[1秒毎に自動貼り付け]でバイナリデータの変動を抑制することが可能です。
目的のアドレスでプロセスメモリ書き換え後、ゲームならパラメータを表示更新させる等解析対象アプリケーションを操作して、プロセスメモリ書き換えが反映されることを確認します。目的のアドレスで間違いなければ、改造コードとして検索結果を保存しておきます。ただし、目的のアドレスがモジュールエリア外の場合は、環境依存型変動アドレスである可能性が高いため、このアドレスへの書き込みに対してデバッガでハードウェアブレークポイントを設定してブレークさせ、EIPレジスタの値を元に逆アセンブルコードリスト上で書き込み時のアドレス指定処理を解析した上で、ポインタ型改造コードやデバッガ用改造コードで対処します。
プロセスメモリ書き換えの効果がない場合は、別のアドレスでプロセスメモリ書き換えを再試行します。
Copyright © 2024
Digital Travesia