ポインタガイド
再起動後にアドレスが効かなくなる理由と、ポインタで対処する方法です。まず値を見つけるにはスキャンガイドと値の型を参照してください。
なぜアドレスは変わるのか
スキャンで 0x12345678 のようなアドレスを見つけても、その値が「今回の実行」でそこにあるだけです。ゲームを終了して再度起動すると、Windows が別のベースアドレスで読み込んだり(ASLR)、ゲームがデータを別の形で確保したりするため、0x12345678 にはもう体力がなく、未使用や別の値になっていることがあります。毎回同じチートを効かせるには、値へ至る「経路」が有効なままのポインタチェーンが必要です。
ポインタとは
ポインタは「別のアドレスを指すアドレス」です。ゲームは「体力」を、ベース(例:モジュール+オフセット)と 1 段以上のポインタから計算したアドレスに格納していることがあります。CE の「ポインタスキャン」はその経路(ベース+オフセット → 次のアドレス+オフセット → … → 値が入っている最終アドレス)を検索します。その経路は再起動後も有効なことが多いです。
ポインタスキャンのやり方
通常のスキャンで値のアドレスを見つけ、リストに追加します。そのアドレスを右クリック →「このアドレスのポインタをスキャン」。オプション(最大レベル、最大オフセット;まずは既定値)を設定し、求められたら .PTR ファイルを保存。スキャンが終わるとポインタ経路の一覧が出ます。ゲームを再起動して再度アタッチし、「ポインタリストを再スキャン」(または .PTR を読み込んで再スキャン)で、まだ正しいアドレスを指しているポインタを残します。有効なものをテーブルにポインタとして追加します。
テーブルにポインタを追加する
スキャンで有効なポインタが得られたら、「アドレスを手動で追加」→「ポインタ」にチェックを入れて経路を入力するか、ポインタスキャン画面からアドレスリストに追加します。テーブルにはポインタと、それが解決する現在のアドレスが表示されます。次にテーブルを読み込んでプロセスにアタッチすると、CE が再度ポインタを解決するため、同じチートが再起動後も動きます。
ヒント
ポインタスキャンは大きなファイルになり、時間もかかります。適度な最大レベル(例:4~5)と最大オフセットにしましょう。ベースがメイン .exe や主要 DLL のポインタのほうが、変更されにくいです。ポインタスキャンが失敗したり再スキャンで残るポインタがなかったりする場合はヒントとトラブルシュートを参照してください。