Cheat Engineのポインタースキャンを使おう!アドレスが変わって困っている方におすすめ
Cheat Engineのポインタースキャンの使い方を、チュートリアルを用いて解説します。
チュートリアルはメニューバーのHelpから起動できます。
チュートリアルを起動すると右下にパスワードを入力する箇所があるので、 525927と入力してStep8に飛びましょう。
目次
ポインタースキャンを使うとどうなるの?
マルチレベルポインターとは
Step8はマルチレベルポインターについての説明で、ゲームをチートするうえで非常に大切な知識です。マルチレベルポインターとはポインターのポインターのことで、今回見つけるのは4レベルポインターになっています。
下記のようなイメージで、全部でpointerが4つあるのを確認できますね。
static pointer → pointer → pointer → pointer → address+offset → 目的の値
もう少し詳細に表すと
[static pointer]
→[address+offset]
→[address+offset]
→[address+offset]
→address+offset
→目的の値
になります。
[address+offset]の[ ]はポインターの指す値を得るという意味で次のaddressを指しています。このaddressは再起動すると変わってしまう動的なアドレスなので特に重要ではありません。 重要なのはstatic pointerのアドレスとオフセットで、この二つが分かれば目的の値までたどることが出来ます。ポインタースキャンはそれらを自動で見つけてくれる大変便利な機能で使う頻度も多くなります。
◆ ポインタースキャンの要点
ポインタースキャンの目的は、いつ起動しても使える安定的なポインターを見つけることです。また、現在そのプロセスで使われているすべてのポインターのスナップショットのことをポインターマップと呼びます。
2つのポインターマップを比較しながらスキャンすれば全体の作業時間を大幅に短縮できます。
パソコンを2台用意しそれぞれのパソコンでポインターマップを作り、その2つのマップを使用してポインタースキャンをするとより効果的です。なお、このStep8はCheat Engineの機能「コードファインダー」でもクリアすることができ、そちらもやることでより理解が深まるのでぜひやってみてください。
始める前に
コンピューターのユーザー名が日本語の方は、Cドライブ直下にポインタースキャン用のフォルダを作り、そこで作業するようにしましょう。ファイルパスに日本語が含まれているとスキャン結果が0になります。詳しくはコメント欄をご参照ください。
OK C:\pointerscan\pointer.ptr
NG C:\pointerscan\ポインター.ptr
NG C:\Users\デーモン閣下\Desktop\pointerscan\pointer.ptr
ポインタースキャンでマルチレベルポインターを攻略しよう
今回行う手順は以下の通り
1. 値を見つける(value 1)
2. value 1のポインターマップを作る(マップ1)
3. Chage pointerをクリックし、ポインターを変更する
4. 再度、値を見つける(value 2)
5. value 2のポインターマップを作る(マップ2)
6. マップ1とマップ2を使いポインタースキャンをする
7. スキャンして見つけたポインターの値を5000に固定する
8. Chage pointerをクリックする
それでは始めていきましょう。
まずValue:に現在の値を入力してFirst Scanをクリックします。
Change valueをクリックし、値を変更します。
真ん中のアドレス01921208の値が1912になりました。
これをアドレスリストに追加し、Descriptionを「value 1」に変更します。
value 1の行を右クリックからGenerate pointermapを選択します。
ポインターマップのファイル名を入力します。
ここでは「step8 map1 01921208」にしました。
ポインタースキャン用のフォルダを作り、そこに作成しています。
Change pointerをクリックし、ポインターを変更します。
もう一度value 1の時と同じ手順で値を見つけ、Descriptionを「value 2」にします。
そうするとアドレスリストは下画像のようになっていると思います。
ここからvalue 2の行を右クリックからGenerate pointermapを選択し、2つめのポインターマップを作成します。
2つめのポインターマップ名は「step8 map2 018AD920」にしました。
value 2の行を右クリックからPointer scan for this addressを選択します。
画像赤枠のUse saved pointermapにチェックを入れます。
018AD920に対応するポインターマップは2つ目に作ったポインターマップです。
したがって「step8 map2 018AD920.scandata」を選択し、開くをクリックします。
画像青枠のCompare results with other saved pointermap(s)にチェックを入れ、
赤枠のアイコンをクリックして比較するポインターマップを選択します。
マップ1を選択し、開くをクリックします。
プルダウンメニューから01921208=value 1を選択します。
マップ1に01921208=value 1
マップ2に018AD920=value 2
となっています。
ポインタースキャンをする準備ができたのでOKをクリックします。
その他にも設定項目がありますが、ここではデフォルトのまま行います。
よく使う設定は以下の4つです。
Max different offsets per node
この数字を大きくすることでヒットするポインターの数が増え、スキャン時間も長くなります。 数字を小さくするとスキャン時間は大幅に短くなりますが、その分有効なポインターを取りこぼす可能性があります。
ほとんどの場合デフォルトの3で問題ありませんが、スキャン時間が長い場合は2に変え、どうしても有効なポインターが見つからない場合は1ずつ数字を増やして様子を見てください。
Pointers must end with specific offsets
最終オフセットが分かっている場合に入力することで、検索範囲を絞れます。
Maximum offset value
最大オフセット値を10進数で入力します。
Max level
ポインターパスの深さ、最大レベルを入力します。
仮にこの数字を3以下にすると今回見つける4レベルポインターはヒットしなくなります。
ポインタースキャン結果のファイル名を入力します。
ポインタースキャンが完了しました。
見事に1つだけに絞り込まれています。
ダブルクリックしてアドレスリストに追加しましょう。
pointerscan resultがスキャンで見つけたポインターです。
435のあたりをダブルクリックして値を5000に変更し、
Activeにチェックを入れます。
Change pointerをクリックします。
Nextボタンが押せるようになりました! これでStep8はクリアです。
スキャンして見つけた P->xxxx となっているポインターは、ゲームやパソコンを再起動しても使えます。
Step8 マルチレベルポインターのイメージ図
スキャン結果をソートする
Max levelを5でスキャンした場合、スキャン結果のウインドウで一番右のオフセットが6になっているので、そこをクリックするとポインターの少ない順にソートできます。
実際のゲームではポインターが100~1000以上見つかるはずなので、そのような時にソートして上から順に使えるかテストしていけば効率がよいです。
実際のゲームでやる場合の手順
1. HPのアドレスを見つける(HP1)
2. HP1のポインターマップを作る(マップ1)
3. ゲームを再起動する
4. 再度、HPのアドレスを見つける(HP2)
5. HP2のポインターマップを作る(マップ2)
6. マップ1とマップ2を使いポインタースキャンをする
7. ヒットしたポインターをソートし上から順に3,4つほどアドレスリストに追加
8. ゲームやパソコンを再起動しても使えることを確認すれば成功です
- 関連記事