アドレス追撃、サーチ補正!
 このページでは、サーチ補正関連の説明を行います。
書き換えるべきアドレスが想定したものと違う場合、そのままの状態で書き換えを行っても、期待通りの結果が得られないことがあります。このようなときに、現在分かっている値や、あらかじめ指定された値などを基準に、書き換えるべき正しいアドレスを探すのが「サーチ補正」の役割です。

アドレス補正
サーチ補正の役割  そもそも、「〜補正」とは何なのでしょうか? 一言で言ってしまえば、それは「アドレス補正」という機能のことです。
 左の図が、アドレス補正を必要とする場合のイメージです。
SpoilerALは、体力を書き換えようとアドレス0x40001へアクセスしますが、実際は無関係の値が入っているため、期待外の結果になります。
そこで実際のメモリ内容に合うよう、アクセス先のアドレスに2を加算すると、アドレス0x40003へアクセスすることになり、期待通りの結果が得られます。
このとき、幾つ加算すればいいかを求めるのが、「サーチ補正」などのアドレス補正機能なのです。

 このように、想定したアドレスと実際のアドレスが食い違うことは、現在のメモリ環境・OS環境では、容易に回避しきれない問題です。このため、アドレス補正、またそのための「サーチ」に関する知識は、最低限必要なものとなりつつあります。

サーチウィンドウ
サーチウィンドウ  サーチ補正を必要とする項目を選んだとき、またはメニューの[表示(V)]→[サーチ補正(S)]で表示されるのが、左のサーチウィンドウです。各部位について、軽く説明します。
対象項目名 現在サーチ対象になっている項目の、項目名が表示されます。なお、サーチ補正指定のない項目を選択しても、この部分は更新されません。
進行状況 サーチ範囲と、現在のサーチ位置が表示される領域です。レイアウト的には
サーチ下端→  ←サーチ上端
現在位置
進行状況のゲージ表示
といった感じになります。ゲージは初期状態で緑色ですが、サーチ済みの部分は濃い青で塗られていきます。
ツールボタン サーチを開始したり、サーチ範囲を変更したりするボタンが並びます。詳細は後述します。
該当済み補正値一覧 想定したアドレスと、実際のアドレスの差を補正値と呼びます。値をサーチした結果、見つかったアドレスとその補正値を順に表示していくのがこの領域です。発見した補正値を適用するには、一覧上でダブルクリックして下さい。なお初期状態でも一覧に登録されているように、指定しない場合の補正値は「0」になります。
ツールボタン

左から順に説明します。
サーチ開始サーチ開始 サーチを開始するボタンです。
サーチ停止サーチ停止 サーチを停止するボタンです。
スキップスキップ サーチ位置をスキップするボタンです。明らかに今サーチしている部分に、目的の値がないであろう時は、このボタンで指定量分サーチ位置を飛ばす事が出来ます。
補正値の直接入力補正値の直接入力 補正値を直接入力するボタンです。入力した補正値は、順次一覧に追加されます。
バイト列の直接変更バイト列の直接変更 サーチに用いるバイト列(値)を、変更するボタンです。SSGの書式(特にバイト列関連)に知識がない場合は、無理に使用しない方が無難です。
値の再入力値の再入力 ダイアログ補正にのみ使用可能なボタンです。ダイアログ補正の場合、サーチに用いる値をユーザーが入力しますが、一旦決定した後で、また変更したいという場合があるかと思います。そんなときは、このボタンで再度入力画面を開く事が出来ます。値もアドレスも頻繁に移動する場合などは、特に有効な機能です。
絞り込みサーチ絞り込みサーチ ダイアログ補正にのみ使用可能なボタンです。「値の再入力」は、サーチに用いる値を変更し、サーチし直す場合に利用しますが、「絞り込みサーチ」ボタンは、補正値の候補が沢山ある場合に、正しいと思われる候補を絞り込むときに使用します。「値の再入力」のときと同様、再度入力画面が開きますので、ゲームを進めて前回とは違う値にしてから、その値を入力してください。絞り込んだ結果は、即反映されます。
サーチ範囲の変更サーチ範囲の変更 サーチに用いる範囲を変更するボタンです。サーチをかけても目的の値が該当しない場合、範囲を広げてみるとうまくいく場合があります。

一般的なサーチ手順
 ほとんど説明するまでもありませんが、
  1. 最初。
    1. サーチ開始ボタン(サーチ開始)を押す。
    2. 該当するアドレスが見つかるまで待つ。(最後まで見つからなかった場合、Cへ。)
    3. 見つかったアドレス(補正値)をダブルクリックして、項目が正常に書き換え可能かを調べる。
    4. 正常に書き換えられたなら、Bへ。期待外の動作なら、他のアドレスが該当するのを待つ(2へ戻る)。
    5. ダイアログ補正の場合:補正値候補が多い場合は、絞り込みサーチボタン(サーチ開始)を押して、再度値を入力し、補正値候補を絞り込む。
  2. 目的のアドレスを発見できた場合。
    1. サーチ停止ボタン(サーチ停止)を押す。
    2. 必要なら、補正値をメモしておく。
    3. あとは通常時と同じように書き換えを行う。
  3. 最後まで目的のアドレスが見つからない場合。
    1. サーチ範囲を広げたり(サーチ範囲の変更)、サーチを行う場面を変えて(ゲームなら、ステータス画面を開くなど)再度Aから試してみる。
    2. 考えられる限りの事を試してみたが見つからない場合は、サポート掲示板などに、「自分の環境(OS)」「対象プロセス(ゲーム等)の正式なタイトルやバージョン」「サーチを試してみた場面」「使用したSSGの、SSG作者名」などを含めて報告してみると、回答が得られるかもしれません。こればっかりはもう他力本願ですが…。(※間違ってもメーカーさん(ソフトハウス等)に問い合わせたりしてはいけません。メモリ書き換えは自己責任で行うため、サポート対象外です。)



次のページ(Q&A)へ
前のページ(その他の機能2)へ