PDF形式でダウンロード
PDF形式でダウンロード
この記事では、Cheat Engineを使用してPCゲームを自在に操る方法を紹介します。Cheat Engineはメモリ走査ツールで、コンピュータのメモリに格納されているデータにアクセスし、そのデータに変更を加えることができます。これで、ゲーム内の情報(体力や弾薬、スコア、ライフ、インベントリ内のアイテム数など)を変更することができるのです。
ステップ
-
Download Cheat Engine (Cheat Engineをダウンロード)をクリックする ページの中央にある大きいボタンのことです。
- このボタンにはCheat Engineの現在のバージョンが記載されています(例: Download Cheat Engine 6.7 )。
- MacでCheat Engineを使用する場合は、 Download Cheat Engine 6.2 For Mac (Mac用Cheat Engine 6.2をダウンロード)というリンクをクリックしましょう。
-
Cheat Engineをインストールする 使用しているコンピュータのOSによって異なります。
- Windows :Cheat Engineのセットアップファイルをダブルクリックするとダイアログボックスが開くので、 Yes (はい)をクリックして Next (次へ)をクリックし、「I agree(同意します)」にチェックを入れて Next (次へ)をクリックしたら、さらに Next (次へ)を3回クリックして「I agree to install McAfee WebAdvisor(マカフィーウェブアドバイザーのインストールに同意します)」のチェックを外し、 Next (次へ)をクリックして Install (インストール)をクリックします。セットアップが完了したら、画面の指示に従って Next (次へ)をクリックし、 Finish (完了)をクリックしましょう。
- Mac :Cheat EngineのDMGファイルをダブルクリックし、必要に応じてインストールの確認を行ったら、Cheat Engineアイコンをクリックしながら「アプリケーション」フォルダーにドラッグし、画面の指示に従います。
-
Cheat Engineを起動する Cheat Engineのインストールが完了したら、スタートメニュー (Windows)またはLaunchpad(Mac)を開き、 Cheat Engine をクリックします。
- Cheat Engineを起動するには、 はい または 開く をクリックする必要があるかもしれません。
広告
-
ゲームを起動する Cheat Engineで使用したいゲームを起動します。
- ただし、オンラインマルチプレイやサーバーベースのゲームを使用することはできません。
-
「プロセス」アイコンをクリックする Cheat Engineウィンドウの左上にあるディスプレイの形をしたアイコンをクリックするとダイアログボックスが開き、コンピュータで動作しているプログラム(プロセス)が表示されます。
-
ゲームプロセスを選択する プロセスリストをスクロールしてゲームを見つけ、ゲームタイトルをクリックします。ブラウザゲームでCheat Engine を使用する場合は、代わりにブラウザ名を選択しましょう。
- ゲームがプロセスリストに表示されていない場合、Cheat Engineで編集することはできません。
- まずウィンドウの上部にある プロセス タブをクリックする必要があるかもしれません。
-
OK をクリックする ウィンドウの下部にあり、クリックするとCheat Engineでゲームプロセスが開きます。広告
-
変更するゲーム要素を決める ゲーム要素を変更するためには、その要素に数値が与えられていなければなりません(弾薬や体力、アイテムの数など)。
- その数値は画面上に表示されていなければなりません。例えば、インベントリ内の特定のアイテム数を変更したい場合は、まずインベントリを開き、そのアイテム数が表示されているページに移動する必要があります。
-
ゲームウィンドウを最小化し、Cheat Engineウィンドウをクリックする ゲームウィンドウを最小化した状態でCheat Engineウィンドウを開く必要があります。
- このとき、ゲームを一時停止してはいけません。
-
新規走査 をクリックする Cheat Engineウィンドウ上部の左パネルの横にあります。新しい値を走査したいときは、 新規走査 をクリックする必要があります。
-
走査種別を選択する 新規走査の走査種別は5種類あります。主に使用するのは「値を入力」と「初期値を未指定」の2つです。「走査種別」ドロップダウンリストから実行したい走査種別を選択しましょう。走査種別は以下の通りです。
- 値を入力: 変更したい正確な数値がわかっている場合は、この走査種別を使用しましょう。例えば、自分のライフや弾薬の正確な数がわかっている場合は、このオプションを選択します。
- 初期値を未指定: ビデオゲームでは、値が数値で表現されていないことがあります。例えば、自分の体力が数値ではなく体力ゲージで表現されている場合があります。その場合、体力の状態を表す正確な数値はありません。また、体力を表す数値はありますが、画面には表示されません。この場合は、 初期値を未指定 を選択します。
- 指定値より大きい...: 検索したい正確な数値はわからないが、最小値がわかっている場合は、このオプションを選択します。
- 指定値より小さい...: 正確な値はわからないが、最大値がわかっている場合は、このオプションを選択します。
- 範囲指定...: このオプションを選択すると、検索する値の範囲を入力することができます。
-
データ型を選択する データ型は、値をメモリにどのように格納しているかを示すものです。どのようなデータ型を選択すればよいのかわかりにくい場合があるので、これには少し推測が必要になるかもしれません。「値種別」ドロップダウンリストからデータ型を選択しましょう。あるデータ型で探している値が見つからない場合は、 新規走査 をクリックし、別のデータ型でもう一度試してみましょう。一般的に使用するデータ型は以下の通りです。
- バイト: 2バイトと4バイトは、最もよく使用するデータ型です。Windowsアプリケーションは4バイトを使用しているものがほとんどなので、まずは4バイトから始めましょう。また、これらの値は2バイトでも求めることができます。1バイトや8バイトでも求めることはできますが、問題が発生するかもしれません。
- Float: 浮動小数点数型は、小数点を含む値を扱うデータ型です(ただし、ゲーム画面では小数点は表示されないかもしれません)。ゲームでは、単純なメモリ走査を防ぐために値を浮動小数点数型で格納することがあります。バイト単位で走査しても目的の値が見つからない場合は、浮動小数点数型で走査してみましょう。
- Double: double型はfloat型と似ていますが、桁数が2倍になります。バイト単位やfloat型で走査しても値が見つからない場合は、double型で走査してみましょう。
- 全て: このオプションは、すべてのデータ型のすべての値を走査するもので、何を検索したらよいのかわからない場合に適したオプションですが、絞り込みが必要な検索結果が多くなってしまいます。
-
変更したい値を入力し、 初期走査 をクリックする 例えば、残弾数が20発の場合は、「値」テキストボックスに 20 と入力しましょう。これで、「20」という数値を含むすべての値が走査されますが、おそらくアドレスリストの中に値の長いリストが生成されてしまうので、少し絞り込む必要があります。
-
ゲームに戻り、値を変化させる どのように変化させるかは、ゲームの内容によって異なります。例えば、自分の体力を増やしたい場合は、わざと自分の体力にダメージを与えて数値を下げましょう。また、弾薬の数を増やしたい場合は、何発か撃って弾薬の数を減らします。
-
Cheat Engineに戻り、更新された数値を走査する もう一度ゲームウィンドウを最小化し、Cheat Engineウィンドウをクリックして戻ります。「値」テキストボックスに新しい数値を入力し、 次を走査 をクリックしましょう。これで、初期走査で得られたすべての値が走査され、アドレスが「値」テキストボックスに入力した値に変更されたものに絞り込まれます。
- 初期値を未指定: 初期走査で「初期値を未指定」を選択した場合は、値(またはゲージ)が増加したか減少したかに応じて「走査種別」で 増加 または 減少 を選択しましょう。これで、正確な数値を走査するのではなく、増加または減少したすべての値を走査します。
-
値が4つ以下になるまで検索を繰り返す Cheat Engineウィンドウの左側に表示されている値が4つ以下になるまで、数値を変更しては更新された数値を走査していきます。
- 最終的には、各値の数値の「前回値」欄には検索した前回の数値が、「値」欄にはその現在の値が表示されるはずです。
-
値をアドレスリストに追加する 値をダブルクリックして下部のアドレスリストに追加するか、アドレスをクリックして選択し、値リストの右下にある赤い斜め矢印をクリックします。これで、その値がウィンドウ下部のアドレスリストに表示されます。
- 複数のアドレスを選択したいときは、Shiftキーを押しながら上のアドレスと下のアドレスをクリックしましょう。
-
数値を任意の値に変更する 値の数値を変更するには、以下の操作を行います。
- Cheat Engineウィンドウ下部のアドレスリストの「値」の下にある数値をダブルクリックします。
- 「値」テキストボックスに新しい値を入力します。
- OK をクリックします。
-
ゲーム内の値が更新されたかどうかを確認する ゲームを再起動すると、編集した値に先ほど入力した数値が反映されているはずです。次のパートでは、NOPコードに置き換えて値を固定する方法を紹介します。
- 値を更新するには、もう一度値を変化させる必要があるかもしれません。
広告
-
固定したい値を走査する このパートでは、コードファインダー(検索支援)機能を使用して変更したいアドレスに書き込んでいる命令を見つけ、それをNOPコードに置き換える方法を紹介します。これで、ゲーム内の値を固定することができます。前のパートのステップで、変更したい値を見つけ、それをウィンドウ下部のアドレスリストに追加しましょう。
-
アドレスを右クリックし、 このアドレスへのアクセス元を検出 をクリックする これで、Cheat Engineのデバッガが起動し、アクセス先のアドレスに書き込んでいる命令が表示されます。
-
はい をクリックする これで、現在のプロセスにCheat Engineのデバッガをアタッチすることが確定し、コードデバッガウィンドウが開きます。ウィンドウを初めて開いた場合は、リストは空白になっています。
-
ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行います。これで、選択したアドレスへのアクセス元となるコード命令がデバッガウィンドウに表示されます。
-
Cheat Engineに戻り、リスト内の命令をクリックする アドレスは複数あるかもしれません。その場合は、同じ基底アドレスに書き込んでいないものを選択します。「[」と「]」の間の値が他のものと異なる命令を探しましょう。
-
閉じる をクリックする これで、NOPコードが実行され、ゲーム内の値が固定されます。
- 元のコードを復元するには、リスト内の項目を選択して 逆アセンブラを表示 をクリックし、「NOP」と表示されている部分を右クリックして 元のコードを復元 をクリックします。このオプションが表示されない場合は、 何もしないコードと置換 をクリックして はい をクリックし、もう一度 NOP を右クリックして 元のコードを復元 を選択しましょう。
広告
-
変更したい値を走査する ゲームを再起動したときやゲームの途中で値によってアドレスが変化することがありますが、ポインタを使用すれば、アドレスへの書き込み元を見つけることができます。変化しない基底レベルの静的アドレスが見つかったら、その値を変更しましょう。
-
アドレスを右クリックし、 このアドレスへの書き込み元を検出 をクリックする これで、デバッガウィンドウが開きます。
- アドレスが複数ある場合は、Cheat Engineで可能なアドレス数だけデバッガウィンドウを開きましょう。
-
ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、変更したい値を変化させるような操作を行います(例:武器を発射する、攻撃を受ける)。これで、そのアドレスへの書き込み元となる命令がデバッガウィンドウに表示されます。
- デバッガウィンドウに何も変化がない場合、それは正しいアドレスではありません。別のものを試してみましょう。
-
Cheat Engineに戻り、リスト内の命令をクリックする デバッガウィンドウに表示されています。アドレスは複数あるかもしれません。その場合は、「[」と「]」の間の文字が他のものと異なる命令を探します。文字が異なるアドレスが1つもない場合は、すべてのアドレスでポインタが同じかどうかを確認しましょう。
- 文字の末尾に+と数字がついている場合は(例:[ESI+14])、それがオフセット値です。それをメモしておきましょう。後で必要になります。
-
拡張情報 をクリックする 「拡張情報」画面には、値が変化したときに実行される命令が表示されます。また、そのアドレスに書き込んでいるポインタも表示されます。
- 括弧内の文字を確認し、その文字の後ろにある数字を確認してアドレスを見つけることもできます。例えば、アドレスの横に「[rdx]」と書かれている場合は、下部にある「RDX=xxxxxxxx」というアドレスを探しましょう。
-
「16進数」チェックボックスにチェックを入れ、ポインタのアドレスの新規走査を実行する 「このアドレスを探す為に必要なポインタの予測値」という文章の中にポインタのアドレスが記載されています。この文章の末尾にあるアドレスを検索するには、以下の操作を行います。
- 新規走査 をクリックします。
- 「値」テキストボックスの横にある「16進数」チェックボックスにチェックを入れます。
- 「値」テキストボックスにポインタのアドレスを入力し、 初期走査 をクリックします。
-
ポインタのアドレスをダブルクリックする Cheat Engineウィンドウ下部のアドレスリストにそのアドレスが追加されます。
- 走査の結果、そのアドレスが緑色で表示された場合、そのアドレスは静的アドレスであり、おそらく探しているポインタであるということです。場合によっては、探しているポインタがポインタであることもあります。これはマルチレベルポインタと呼ばれるものです。この場合、ルートの静的ポインタのアドレスを見つけるためには、探しているポインタごとに上記の操作を繰り返す必要があります。
-
「アドレス」の下にある数値をダブルクリックする アドレス変更ダイアログボックスが開きます。
-
アドレスをテキストボックスにコピーし、 キャンセル をクリックする アドレスをコピーするには、アドレス変更ダイアログボックスの上部にあるテキストボックス内のテキスト全体を選択して右クリックし、 コピー をクリックします。アドレスをコピーしたら、 キャンセル をクリックしてダイアログボックスを閉じましょう。
-
アドレスを手動追加 をクリックする Cheat Engineウィンドウ下部のアドレスリストの上にある左のボタンのことで、クリックするとアドレス変更ダイアログボックスと同じようなダイアログボックスが開きますが、このダイアログボックスではアドレスを追加することができます。
-
「ポインタ」チェックボックスにチェックを入れる ダイアログボックスが展開され、ポインタを入力できる新しいテキストボックスが追加されます。
-
ポインタのアドレスを「ポインタ」の下にあるテキストボックスに貼り付け、 OK をクリックする これで、変更したい値を操作するポインタに新しいアドレスが追加されます。先ほど作成したポインタのアドレスは「P-->xxxxxxxx」のようになります。これは、特定のアドレスを指すポインタであることを示しています。
- オフセット値がある場合は、アドレスを貼り付けたテキストボックスの上にあるテキストボックスに入力しましょう。
- ポインタが複数ある場合は、 オフセット追加 をクリックしましょう。これで、アドレスを貼り付けたテキストボックスの上に、さらにオフセット値を入力するテキストボックスが追加されます。それぞれのテキストボックスに正しいオフセット値を入力しましょう。
-
追加したポインタのアドレスの横にある「凍結」チェックボックスにチェックを入れる ウィンドウ下部のアドレスリストの「凍結」の下にあるチェックボックスのことで、クリックするとポインタが有効になります。
-
先ほど追加したアドレスの値を変更する 先ほど作成したポインタのアドレスの値の数値は、検索した値のアドレスと同じである必要があります。ポインタによる書き込み先が異なる場合、走査した元のアドレスは無効になります。ただし、先ほど作成したポインタのアドレスの値を変更することは可能です。値の書き込み先は関係ありません。先ほど追加したアドレスの「値」の下にある数値をクリックしたら、新しい数値を入力し、 OK をクリックしましょう。広告
-
固定したい値を走査する このパートでは、コードインジェクション機能を使用してコードによる値の書き込み方法を変更する方法を紹介します。例えば、攻撃を受けるたびに体力が減る場合は、攻撃を受けると体力が増えるようにコードを変更することができるのです。
-
アドレスを右クリックし、 このアドレスへのアクセス元を検出 をクリックする Cheat Engineのデバッガが起動します。
-
はい をクリックする これで、現在のプロセスにCheat Engineのデバッガをアタッチすることが確定します。ウィンドウを初めて開いた場合は、リストは空白になっています。
-
ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行うと、選択したアドレスへのアクセス元となるコードがデバッガウィンドウに表示されます。
-
ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行うと、そのアドレスへの書き込み元となる命令がデバッガウィンドウに表示されます。
-
Cheat Engineに戻り、リスト内の命令をクリックする アドレスは複数あるかもしれません。その場合は、値から減算する「sub」という文字を含む命令、または値を加算する「add」または「inc」という文字を含む命令を探しましょう。
-
逆アセンブラを表示 をクリックする 逆アセンブラ画面が開き、そのコードが表示されます。
-
値を減算または加算する命令を選択する これは通常、コードの先頭にある最初の命令のことです。値を減算または加算するコードの先頭には、おそらく「sub」または「add」という文字が付いています。
-
ツール をクリックし、 自動アセンブル をクリックする 自動アセンブラが起動します。
-
テンプレート をクリックし、 完全注入 をクリックする これで、コードを注入(インジェクト)したいアドレスを確認するダイアログボックスが開きます。
-
アドレスが正しいことを確認し、 OK をクリックする テキストボックスに表示されているアドレスがメモリ表示ウィンドウの逆アセンブラ画面で選択したアドレスと同じであることを確認し、 OK をクリックしましょう。新しいテンプレートが表示されます。
-
コードを反対のものに置き換える 「code」という行まで下にスクロールします。その下の行が値を変更するコードです。その行が「sub」で始まる場合は「sub」を「add」に、「add」で始まる場合は「add」を「sub」に変更しましょう。また、行末の値を変更して、どれだけ値を変化させたいかを変更することも可能です。
-
実行 をクリックし、 はい を2回クリックする 「実行」ボタンはコードインジェクションウィンドウの一番下にあります。コードを注入するかどうかを確認するダイアログボックスが表示されるので、 はい をクリックして確定し、 はい または いいえ をクリックして、逆アセンブラ画面で新しいコードを開きましょう。コードインジェクションが成功すると、ゲーム内の値が本来の動きとは逆の動きを見せるようになります。武器を発射したときに残弾数を減らすのではなく増やしたり、攻撃を受けるときに体力を減らすのではなく増やしたりすることができます。広告
-
固定したい値を走査する ゲームによっては、複数のオブジェクトが同じコードを共有していることがあります。あるオブジェクトにコードを注入すると、他のすべてのオブジェクトにも影響が及びます。例えば、自分の体力ゲージを固定していて、気がついたら敵の体力ゲージも固定していたなんてこともあります。このような場合には、オブジェクトを区別して、任意のオブジェクトだけに影響を与えるスクリプトを注入する方法を知っておく必要があります。
- さまざまなオブジェクトにスクリプトを注入するには、いくつかのアセンブリコードを知っておく必要があります。ただし、基本的なスクリプトを作成するのはそれほど難しくありません。
-
アドレスを右クリックし、 このアドレスへのアクセス元を検出 をクリックする 変更または固定したい値のアドレスが決まったら、デバッガを起動し、そのアドレスに書き込んでいる命令を見つけましょう。
-
命令を選択し、 逆アセンブラを表示 をクリックする デバッガを起動したときにハイライト表示される命令のことで、クリックすると逆アセンブラ画面が開き、その命令が表示されます。
-
先頭の命令を右クリックし、 この命令のアクセス元を検出 をクリックする ウィンドウが開き、その命令が新しいアドレスに書き込むときにアクセス先となるすべてのアドレスの一覧が表示されます。
-
ゲーム内のすべてのオブジェクトの値を変更できるようにする その命令のアクセス先となるすべてのアドレスの一覧が表示されます。例えば、体力ゲージを固定しようとしてゲームに戻り、攻撃を受けたとします。すると、そのアドレスへのアクセス元となる命令がアクセスしたアドレスの一覧ウィンドウに表示されます。また、その命令を共有している敵に攻撃を当てた場合も、アクセスしたアドレスの一覧ウィンドウに表示されます。
-
アクセスしたアドレスの一覧ウィンドウですべてのアドレスを選択する 同じアドレスを共有するすべてのオブジェクトのアドレスがアクセスしたアドレスの一覧ウィンドウに表示されたら、すべてのオブジェクトをドラッグして選択します。
- また、各アドレスを右クリックし、 レジスタの状態を表示 をクリックする方法もあります。 [2] X 出典文献
-
アドレスの一覧に表示されているすべてのアドレスのデータ構造体を分析する アドレスの一覧のデータ構造体を分析するには、以下の操作を行います。
- 選択したアドレスを右クリックします。
- 選択アドレスを構造体分析ウィンドウで開く をクリックします。
- OK をクリックします。
- データ構造体名を入力し、 OK をクリックします。
- はい をクリックします。
- 構造体の初期値を入力するか、そのままにしておき、 OK をクリックします。
-
プレイヤー(複数)と同じで他のオブジェクトとは異なる値を見つける データ構造体でも各オブジェクトのレジスタでも、味方と同じで敵とは異なる値を見つける必要があります。例えば、チーム1に2人のプレイヤーキャラクターが、チーム2に2人のノンプレイヤーキャラクターがいる場合、チーム1のキャラクターは1、チーム2のキャラクターは2の値で表現されているかもしれません。
- 味方と同じで敵とは異なる値が見つからない場合は、値を作成しましょう。ポインタなどの値を1つ右クリックし、 要素の追加 をクリックします。データ型は「4バイト」を選択し、使用されていないオフセット値を指定しましょう。オフセット値は構造体分析ウィンドウの表の左側に表示されています。
-
値のレジスタをメモする レジスタ表示でも構造体分析表示でも、レジスタ値は左側にあります。レジスタ表示では、命令が書き込む実際のレジスタになります(例:RSI、RDX、EDXなど)。構造体分析表示の場合は、左側に表示されているオフセット番号または文字がレジスタです。
-
その命令の新しいコードインジェクションテンプレートを開く メモリ表示ウィンドウに戻り、異なるアドレスに書き込む命令の新しいコードインジェクションテンプレートを開きます。これを行うには、以下の操作を行います。
- メモリ表示ウィンドウで命令をクリックします。
- 上部のメニューバーにある ツール をクリックします。
- 自動アセンブル をクリックします。
- 上部のメニューバーにある テンプレート をクリックします。
- コード注入 をクリックします。
-
変更したいオブジェクトの新しいラベルを作成する ラベルはコードインジェクションテンプレートの上部に表示されています。変更したいオブジェクトの新しいラベルを既存のラベルの下に追加しましょう。ラベルを追加するには、 label と入力し、ラベル名を括弧内に入力します(例:「label(player)」や「label(enemy)」)。
-
先ほど作成したラベルの新しいセクションを作成する ラベルの新しいセクションを作成するには、元のコードの前後の任意の位置にラベル名とコロン(:)を入力します。
-
変更したいオブジェクトの値を変更するコードをラベルに追加する これにはアセンブリコードの知識が少し必要です。変更したいオブジェクトの値を任意の方法で変更するコード行、そして出口、元のコード、リターンコードにジャンプする行を追加する必要があります。
-
「newmem」の下に比較コードを書く コードインジェクションテンプレートの「newmem:」という行は、その命令が新しいメモリアドレスを呼び出していることを示しています。通常は「code:」または「originalcode:」というラベルの元のコードの中にそのまま書き込みます。「cmp」コマンドを使用してレジストリまたはレジストリ+オフセット値で異なるオブジェクトの値を比較するコード行を書きましょう。例えば、オフセットが14 のRDXがノンプレイヤーチームからプレイヤーチームを判断しており、プレイヤーチームの値が1の場合、オブジェクトがプレイヤーかどうかを確認するには cmp [rbx+14],1 と入力します。
-
変更したいオブジェクトのセクションにジャンプするコード行を追加する 「je」コマンドを使用して比較コマンドのセクションにジャンプしましょう。例えば、ラベル名が「player」の場合は、 je player という行を追加すると、値比較がプレイヤーに該当するときに「player」セクションにジャンプします。
-
元のコードにジャンプするコードを追加する 変更したいオブジェクトのセクションにジャンプするコード行を書いた後、値がプレイヤーや味方に該当しない場合は、元のコードにジャンプするコード行を追加する必要があります。「jmp」コマンドを使用して変更したいオブジェクトのセクションにジャンプする行(または異なる動作をする別に書いた一連のコード)の後に元のコードにジャンプする行を書きましょう。
- シンプルにするためには、新しいラベルを追加しないという方法があります。「newmen:」の末尾に敵と味方を区別するための比較コードを書くだけです。そして、味方の場合は出口にジャンプするコード行を追加します。敵の場合は元のコードにジャンプするようにしましょう。これで、プレイヤーや味方が攻撃を受けても(または武器を発射したり、消費アイテムを使用したりしても)何も変化せず、敵が攻撃を受けた場合は通常通りのコードが実行されるようになります。
-
実行 をクリックする 入力したコードが実行され、うまくいけば敵と味方を区別する新しいコードが挿入されます。以下は敵と味方を区別するための簡単なスクリプト例です。
alloc ( newmem , 2048 , " Tutorial-x86_64.exe "+ 2 EB6D ) label ( returnhere ) label ( originalcode ) label ( exit ) label ( player ) //プレイヤーの新しいラベルです。 newmem: //新しいメモリアドレスを呼び出します。 cmp [ rbx + 14 ], 1 //味方チームのメンバーと敵チームのメンバーを区別します。 je player //オブジェクトがプレイヤーチームの場合は、プレイヤーセクションにジャンプします。 jmp originalcode //オブジェクトが敵チームの場合は、元のコードにジャンプします。 player: //プレイヤーチームの新しいセクションを作成します。 jmp exit //出口にジャンプし、プレイヤーチームには何もしません。 originalcode: //元のコードセクション movss [ rbx + 08 ], xmm0 //元の命令を実行します(敵チーム用) exit: //このセクションでこのスクリプトを終了します。 jmp returnhere " Tutorial-x86_64.exe "+ 2 EB6D : jmp newmem returnhere:
広告
-
Cheat Engineの仕組みを理解する Cheat Engineは、コンピュータのランダムアクセスメモリ(RAM)に格納されているデータにアクセスすることができるツールです。ゲームなどのソフトウェアを実行すると、ハードディスクドライブ(HDD)などの静的な記憶域からRAMにデータが転送され、そこからデータの読み書きが可能になります。Cheat Engineでは、RAMに格納されているデータを走査して、そのデータを変更することができるのです。
-
専門用語を理解する Cheat Engineでは、多くの高度なコンピュータコードが扱われています。コードをより簡単に理解できるようにいくつかの用語を理解しておくとよいでしょう。以下はCheat Engineで使用されている用語です。
- 値: 値とは、コンピュータプログラムの中で数値が与えられているものを指します。ゲームでは、体力の割合や残弾数、アイテム所持数などがこれに当たります。Cheat Engine では、変数を走査して変更することができます。
- アドレス: アドレスとは、データが格納されているRAM上の場所のことです。アドレスは変更されることもあります。
- データ型: データ型とは、値をどのように格納しているかを示すものです。2バイトや4バイト、8バイトなどのバイト単位のほか、float型やdouble型などの浮動小数点数型などがあります。
- ポインタ: ポインタとは、他のアドレスによって書き込まれた値が格納されているアドレスのことです。これらのアドレスは、ゲームを読み込むたびに変更されたり、ゲームの途中で変更されたりすることがあります。
-
Cheat Engineに対応していないゲームが多いことを理解する チート防止機能やオンラインマルチプレイ機能のあるゲームはCheat Engineには対応していません。また、Cheat Engineを使用しようとすると、通常そのアカウントまたはプロフィールによるオンラインプレイが制限されてしまいます。
- 通常は課金で購入するリソースをCheat Engineで入手した場合、国によっては窃盗罪で起訴される可能性があります。
- Cheat Engineは知名度の高いソフトウェアなので、ほとんどのゲームには何らかの対策が施されています。
-
Cheat Engineに対応している可能性のあるゲームを把握する 古いシングルプレイゲームやSteamの一部のシングルプレイゲームはCheat Engineに対応しているはずですが、これらのゲームは画面上に表示・変更可能な値があることが条件となります。
- 他のプレイヤーとの関わりのない(マルチプレイやハイスコアがない)オンラインフラッシュゲームもCheat Engineに対応しているものがたくさんあります。
広告
ポイント
- Cheat Engineに収録されている対話形式のチュートリアルから始めます。上記の方法を用いて、9つのステップをすべてクリアしてみましょう。
- Cheat Engineはゲームの細かい部分を変更するのに便利ですが、大きな部分を変更しようとすると、ゲームが壊れてしまう可能性があります。
- Cheat Engineを使いこなしたい場合は、アセンブリコードの知識があるとよいでしょう。
広告
注意事項
- Valve Anti-Cheat(バルブ・アンチチート、VAC)や他のチート対策が施されたサーバーで Cheat Engine を使用すると、アカウント停止措置(BAN)を受けてしまいます。
- Robloxは、通常のCheat Engineでハッキングすることはできません。ハッキングしようとすると、そのゲームから追い出されてしまいます。
広告
出典
このwikiHow記事について
このページは 79,606 回アクセスされました。
広告