用語集
Cheat Engine・フォーラム・Wiki でよく出る用語の説明です。スキャンガイド、ポインタガイド、FAQも参照してください。
アドレス(Address)
対象プロセスのメモリ上の位置。通常は 0x00401234 のような16進で表示されます。値を発見すると CE はその値を格納しているアドレスを表示します。アドレスはゲーム再起動で変わるため、ポインタが使われます。
ポインタ(Pointer)
別のアドレスを指す値。ポインタチェーンは、最終アドレスへ至る一連のポインタ(ベース+オフセット)です。ポインタスキャンでこれらを見つけると、ゲーム再起動後もチートが有効になります。
AOB(Array of Bytes)
ゲームのコード内の一意なバイト列(例:「8B 45 FC 89 10」)。スクリプトは AOB でコード注入位置を特定するため、その部分が変わらなければアップデート後も動くことがあります。
初回スキャン / 次のスキャン(First Scan / Next Scan)
初回スキャンは入力した値でプロセスメモリを検索します。次のスキャンは、ゲーム内で値を変えたあと(体力減少、ゴールド消費など)の新しい値で結果を絞り込みます。
フリーズ(Freeze)
アドレスをフリーズすると、CE が同じ値を繰り返し書き込むため、ゲームが値を変更できなくなります(例:体力をフリーズして減らなくする)。
チートテーブル(.CT)
アドレス・スクリプト・説明を保存するファイル。作業を .CT として保存・共有できます。.CT は XML で Lua スクリプトを含めるため、信頼できるソースのテーブルのみ開いてください。
トレーナー(Trainer)
CE を開かずにゲームにチートを適用する単体プログラム(多くは .exe)。CE はチートテーブルからトレーナーを生成できます。
値の型(Value Type)
スキャンする値のデータ型:4 Bytes、8 Bytes、Float、Double、String など。型を間違えると結果が多すぎるかゼロになります。
不明な初期値(Unknown Initial Value)
正確な数が分からないときのスキャンオプション。「不明な初期値」を選び、ゲーム内で値を変えたあと「増加した値」「減少した値」「変更された値」で絞り込みます。
Auto Assembler
CE のアセンブリコード注入用スクリプト。命令の変更(例:比較を常に真にする)や新規コードの注入に使います。AOB と組み合わせて注入位置を特定することが多いです。
Lua
CE に組み込まれたスクリプト言語。Lua で自動化・カスタムフォーム・プロセスへの自動アタッチなどができます。フォーラムの多くの拡張は Lua で書かれています。
Mono / .NET
Unity などが使うマネージドコードのランタイム。CE の Mono 機能でゲーム内のクラス・フィールドを調べ、オブジェクト(プレイヤー体力、インベントリなど)を探せます。
Speedhack
対象プロセスの時間を速く/遅くする CE の標準機能(例:2倍速)。時間関連 API をフックして動作します。すべてのゲームで使われているわけではないため、効かない場合があります。
アタッチ / プロセスを開く(Attach / Open Process)
CE でゲーム(または他のプログラム)を選び、そのメモリをスキャン・変更できるようにすること。ファイル → プロセスを開く で正しい .exe を選びます。
Dissect Mono
Mono ゲーム用の CE メニュー。読み込まれたアセンブリ・クラス・フィールドを一覧表示し、プレイヤーデータを持つクラスを探してメモリ上のインスタンスを特定できます。
コード注入(Code Injection)
対象プロセスにコードを書き込む/置き換えること。Auto Assembler では数バイトの変更(例:チェックを NOP で潰す)や、コードケーブに独自の命令を注入することが多いです。
オフセット(Offset)
ベースアドレスに足して別のアドレスを得る数値。ポインタ経路では「base+0x10」や「+1C」のように表示され、それらがオフセットです。
デバッガー(Debugger)
CE 内蔵のデバッガでブレークポイント設定・ステップ実行・レジスタ確認ができます。リバースエンジニアリングや値の読み書き箇所の特定に使います。
逆アセンブラ(Disassembler)
対象プロセスの機械語をアセンブリ命令として表示します。ゲームの動作を理解し、コードの注入・変更箇所を決めるために使います。
ブレークポイント(Breakpoint)
CPU がそこに到達したときに実行を一時停止する地点。「このアドレスに書き込む命令を検索」「このアドレスにアクセスする命令を検索」で、どの命令がアドレスに触れたかを確認できます。
NOP
No Operation(何もしないアセンブリ命令)。命令を NOP に置き換えるとその効果がなくなります(例:体力を減らす減算をスキップする)。
コードケーブ(Code Cave)
プロセスメモリ内の未使用領域に独自のコードを注入できる場所。Auto Assembler ではコードケーブにコードを書き、元のコードへジャンプバックすることが多いです。
モジュール / ベースアドレス(Module / Base Address)
読み込まれた実行ファイルや DLL。ベースアドレスはメモリに読み込まれた位置です。ポインタ経路はモジュールベース+オフセットから始まることが多く、再起動後も有効な場合があります(ASLR 下でも設定次第)。
ポインタスキャン(Pointer Scan)
指定したアドレスへ至るポインタチェーンを検索する CE の機能。値を発見したあとに実行すると経路の一覧が得られます。ゲーム再起動後に「ポインタリストを再スキャン」で、まだ有効なポインタだけ残します。
このアドレスに書き込む命令を検索 / アクセスする命令を検索(Find what writes / Find what accesses)
デバッグ用。「このアドレスに書き込む命令を検索」は書き込み時に停止、「このアドレスにアクセスする命令を検索」は読み書きどちらでも停止します。ゲーム内のどの命令が値を更新・参照しているかを確認するために使います。
.PTR ファイル
ポインタスキャンの結果を保存するファイル。後で読み込み、再度プロセスにアタッチしたあと「ポインタリストを再スキャン」で、まだ解決するポインタを確認できます。
IL2CPP
Unity のビルドオプションの一つで、.NET コードを C++ にコンパイルします。IL2CPP を使うゲームでは Mono ではないため「Dissect Mono」は使えません。別のツールや手法が必要です。