ReLipsAIで行えるサーチには、大きく分けて次の2種類があります。
| 値比較 | 数値や文字列などを直接指定して探す方法。探し出す値が具体的に分かっている場合に有効。条件を複数指定する場合、そのうちいずれかに該当すれば良い。 |
| 変遷比較 | 前回調査時と比べて、「どうなっているか」で探す方法。探し出す値が具体的に分からず、減った・増えたなどで絞り込む場合に有効。 |
どちらの比較方式を用いるかは、画面左上、比較パネルのタブを切り替えることで指定します。比較方式によって若干の差がありますが、大まかなサーチ手順は以下の通りです。
| 値比較 | 変遷比較 |
| 1. | | 領域記録(初期化) ※新規サーチの場合のみ |
| 2. | 「サーチ条件ツールボタン( )」で比較する形式を指定する
 | コンピューターで数値を表現する際、上位と下位の桁のどちらを先に置くかの取り決めを「エンディアン」といいます。例えば私たちは、数字の「百」を表現するとき、「100」のように上位の桁を先に書く「ビッグエンディアン」方式を用います。これに対し、「百」を「001」と書くのが「リトルエンディアン」です。このオプションを指定することで、普段通り「百」を「100」と書いてかまいません。適切なエンディアンに自動変換して、サーチします。
現在主流であるWindows/Intel系のコンピューターは、「リトルエンディアン」方式です。ただし、ゲームの中には改造対策として、あえてビッグエンディアンに変換して表現しているものもあります。
|
| リトルエンディアン | ※通常はこちらを使って下さい。 |
| ビッグエンディアン | |
 | 負の値('-'の付く0未満の値)を使わない形式がUnsignedです。Signed形式よりも大きな値を表現できるため、負の値を取らないと分かっている場合(身長や年齢など)によく用いられます。 |
| Unsigned(符号なし) | ※ゲーム中で0未満にならない値には、こちらを使って下さい。 |
| Signed(符号あり) | 負の値を使う形式です。 |
 | 多くのプログラムは、値をバイト単位で管理しています。そのバイト数を指定するのがこのオプションなのですが、符号とバイトサイズによって、それぞれ表現できる数の限度が異なります。ゲーム中でどの程度の値を取っているかを確認し、適切なバイトサイズを指定して下さい。
上から3つのサイズは整数値を扱う場合のモードですが、小数点以下を扱う場合は「浮動小数点」あるいは「固定小数点」という形式を使います。ReLipsAIでは浮動小数点形式に対応しています。画面上で小数点以下が表示されている場合は、浮動小数点形式のバイト指定を利用して下さい。ただし、整数の「105」を画面上で「10.5」と表示したり、浮動小数点数の「12.72」を画面上で「12」と切り捨てて表示しているゲームもありますので、様々な可能性を頭に入れてサーチすると良いでしょう。 |
| 1バイト | Unsignedの場合 | 0 から 255 |
| Signedの場合 | -128 から 127 |
| 2バイト | Unsignedの場合 | 0 から 65,535 |
| Signedの場合 | -32,768 から 32,767 |
| 4バイト | Unsignedの場合 | 0 から 4,294,967,295 |
| Signedの場合 | -2,147,483,648 から 2,147,483,647 |
| 浮動小数点4バイト | Signedのみ | 3.4E +/- 38 (7 桁) |
| 浮動小数点8バイト | Signedのみ | 1.7E +/- 308 (15 桁) |
 | 探したい値は「50」のような数値の場合もあるでしょうし、「藤子」といった文字列の場合もあるでしょう。そういった探す形式を、このオプションで指定します。なお、変遷比較の場合は「数値」に固定となります。 |
| 数値 | 探す値が数値ならこのモードを指定します。 |
| 文字列 | 探す値が文字列ならこのモードを指定します。この場合、サイズや符号オプションは無視されます。 |
| ビット | 探す値がビット単位でON/OFFされるならこのモードを指定します。この場合、符号オプションは無視されます。 |
|
| 3. | 比較する値と条件を指定する
| 文字列単位の場合 |
| 入力値指定で文字列単位を選択した場合、条件には「一致」「不一致」のどちらかを指定します。 |
| 比較する条件を指定する
| 変遷範囲を指定する場合 |
変遷範囲を指定しない場合、「前回比較時(初期化時)と比べて増加した」のように、増加しさえすればいくつ増加しても該当します。しかし「4増加した」や「20%分増加した」という前提があるなら、候補はぐっと絞れるでしょう。その場合に「変遷範囲を指定」するわけです。
変化量が最小〜最大の範囲であると指定する形式ですので、条件が「不動」「変動の場合は効果がありません。仮に条件を「増加」にした場合、最小を5・最大を20とすると、前回比較時より5〜20増加した物だけが候補に挙がります。同じ増加でも、21以上増加した物は除外されます。
以上・以下オプションを指定すると、変化量の範囲を片方向のみ制限します。条件が「増加」で最小が20、以上オプションにチェックありならば、20以上増加した物だけが候補に挙がります。
%オプションにチェックを入れると、変化量を百分率で指定したことになります。条件が「増加」で最小が20、以上オプションと%オプションにチェックありならば、前回比較時より20%以上増えている物だけが候補に挙がります。注意点として、20%(1/5)になったものという意味ではありません。元の値の20%以上増加したもの、です。 |
| ビット単位の場合 |
入力値指定でビット単位を選択した場合、変遷範囲指定は出来ません。
ビットとは、0か1しかないコンピュータ上の最小単位です。「8ビット=1バイト」です。普段は使いませんが、アイテムを持っている・持っていないなどの記録に、ビットを利用しているケースもあります。そういった特殊なケースには、このビット単位での検索が有効です。
「ビットが立つ」とは、0だったビットが1になることです。その対義語として、本ツールでは1が0になるとことを「ビットが座る」と呼んでいます。条件に「ビットが立つ」とした場合、あるビットが立ったとしても、別のビットが座った物は候補から除外されます。なぜなら、そういったものは「変動」で検出すべきだからです。 |
|
| 条件は一つだけ | 条件を複数指定する |
| 複数条件をOFFにする | 複数条件をONにする。 「条件追加」ボタンで指定の条件を登録する。 必要分だけ、ここまでの処理を繰り返す
 |
| 4. | サーチボタンパネルの「新規」ボタンでサーチ開始 |
サーチ中は、補助領域に進行状況が表示されます。サーチを停止したい場合は、補助領域の「Stop」ボタンかサーチボタンパネルの「サーチ停止」ボタンを押して下さい。
サーチが完了し、条件に合う候補が挙がると、右図のように「該当アドレスグリッド」に候補が羅列されます。該当アドレスグリッドは、候補の情報を左から順に以下のように表示します。
- 16進数表示の該当アドレス(候補の場所)
- 1B+:該当アドレスにある値は、1バイト符号無しでは幾つになるか
- 2B+:該当アドレスにある値は、2バイト符号無しでは幾つになるか
- 4B+:該当アドレスにある値は、4バイト符号無しでは幾つになるか
- 1B-:該当アドレスにある値は、1バイト符号有りでは幾つになるか
- 2B-:該当アドレスにある値は、2バイト符号有りでは幾つになるか
- 4B-:該当アドレスにある値は、4バイト符号有りでは幾つになるか
- 4F:該当アドレスにある値は、浮動小数点4バイトでは幾つになるか
- 8F:該当アドレスにある値は、浮動小数点8バイトでは幾つになるか
また、アドレス部分にマウスカーソルを合わせると、その候補の情報をヒント表示します。
サーチを行うに当たっての留意点として、ハードディスク容量に十分注意して下さい。
ReLipsAIは、メモリ内容を比較する際、その情報(メモリ内容)をハードディスク上にファイルとして記録します。現状のメモリ空間は、最大約2ギガバイトものサイズになりますので、記録するだけのハードディスク容量がない場合、サーチに失敗します。もちろん、通常のサーチ範囲ではそこまで大きな容量にはなりませんが、大量のサーチ範囲を対象とする場合は、空き容量が十分かどうか確認してからサーチを行って下さい。
なお、メモリ内容をファイルとして書き出す場所(フォルダ)は、メニューの[ファイル(F)]→[カスタマイズ(C)...]から、「メモリファイル作成フォルダ」を設定することで、変更可能です。
候補が一つも挙がらなかった場合は、検索条件が実際にゲームで使用されている形式と異なっていたか、指定のサーチ範囲には候補がないと考えられます。前者なら検索条件を変えて再度試し、後者なら別のサーチ範囲を対象にすることで良い結果を得られるかもしれません。
首尾良く候補が見つかった場合は、無関係の候補を除外し、より条件に合う候補に絞り込んでいきます。そのために用いるのが「絞り込みサーチ」ですね。新規サーチと同じ方法で検索条件を設定・確認したら、サーチボタンパネルの「絞り込み」ボタンで満足いくまで絞り込んで下さい。(該当数0になっちゃったら失敗ですよ(^^;))
2回目以降のサーチで該当した候補は、右図のように「前回検索時からの値変化」も表示されます(前回の値→今回の値)。絞り込むのが目的ですから、続けて行うのが値比較でも変遷比較でも構いません。最初に値比較で大雑把に羅列し、変遷比較で絞り込むというのが王道でしょうか…このあたりは人それぞれな面がありますので、自分なりのやり方を模索してみて下さい。
1つに絞り込めればベストですが、紛れもありますし該当数が一桁まで下がれば十分でしょう。それくらいなら総当たりで試しても苦にはなりませんから。
さて、絞り込みによって「まずまず間違いない」と思える候補が分かったら、ゴールは目の前です。その候補が本当に目的の物であるか、別の値に書き換えて検証してみましょう。その手順は、次のセクションにて!
|