この記事では、Cheat Engineを使用してPCゲームを自在に操る方法を紹介します。Cheat Engineはメモリ走査ツールで、コンピュータのメモリに格納されているデータにアクセスし、そのデータに変更を加えることができます。これで、ゲーム内の情報(体力や弾薬、スコア、ライフ、インベントリ内のアイテム数など)を変更することができるのです。

パート 1
パート 1 の 8:
Cheat Engineをインストールする

  1. 1
    Cheat Engineのダウンロードページにアクセスする コンピュータのウェブブラウザでhttps://cheatengine.org/downloads.php(英語のみ)にアクセスします。
  2. 2
    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をダウンロード)というリンクをクリックしましょう。
  3. 3
    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アイコンをクリックしながら「アプリケーション」フォルダーにドラッグし、画面の指示に従います。
  4. 4
    Cheat Engineを起動する Cheat Engineのインストールが完了したら、スタートメニュー(Windows)またはLaunchpad(Mac)を開き、Cheat Engineをクリックします。
    • Cheat Engineを起動するには、はいまたは開くをクリックする必要があるかもしれません。
    広告

パート 2
パート 2 の 8:
Cheat Engineでゲームプロセスを開く

  1. 1
    ゲームを起動する Cheat Engineで使用したいゲームを起動します。
    • ただし、オンラインマルチプレイやサーバーベースのゲームを使用することはできません。
  2. 2
    「プロセス」アイコンをクリックする Cheat Engineウィンドウの左上にあるディスプレイの形をしたアイコンをクリックするとダイアログボックスが開き、コンピュータで動作しているプログラム(プロセス)が表示されます。
  3. 3
    ゲームプロセスを選択する プロセスリストをスクロールしてゲームを見つけ、ゲームタイトルをクリックします。ブラウザゲームでCheat Engine を使用する場合は、代わりにブラウザ名を選択しましょう。
    • ゲームがプロセスリストに表示されていない場合、Cheat Engineで編集することはできません。
    • まずウィンドウの上部にあるプロセスタブをクリックする必要があるかもしれません。
  4. 4
    OKをクリックする ウィンドウの下部にあり、クリックするとCheat Engineでゲームプロセスが開きます。
    広告

パート 3
パート 3 の 8:
ゲーム内の値を検索・変更する

  1. 1
    変更するゲーム要素を決める ゲーム要素を変更するためには、その要素に数値が与えられていなければなりません(弾薬や体力、アイテムの数など)。
    • その数値は画面上に表示されていなければなりません。例えば、インベントリ内の特定のアイテム数を変更したい場合は、まずインベントリを開き、そのアイテム数が表示されているページに移動する必要があります。
  2. 2
    ゲームウィンドウを最小化し、Cheat Engineウィンドウをクリックする ゲームウィンドウを最小化した状態でCheat Engineウィンドウを開く必要があります。
    • このとき、ゲームを一時停止してはいけません。
  3. 3
    新規走査をクリックする Cheat Engineウィンドウ上部の左パネルの横にあります。新しい値を走査したいときは、新規走査をクリックする必要があります。
  4. 4
    走査種別を選択する 新規走査の走査種別は5種類あります。主に使用するのは「値を入力」と「初期値を未指定」の2つです。「走査種別」ドロップダウンリストから実行したい走査種別を選択しましょう。走査種別は以下の通りです。
    • 値を入力:変更したい正確な数値がわかっている場合は、この走査種別を使用しましょう。例えば、自分のライフや弾薬の正確な数がわかっている場合は、このオプションを選択します。
    • 初期値を未指定:ビデオゲームでは、値が数値で表現されていないことがあります。例えば、自分の体力が数値ではなく体力ゲージで表現されている場合があります。その場合、体力の状態を表す正確な数値はありません。また、体力を表す数値はありますが、画面には表示されません。この場合は、初期値を未指定を選択します。
    • 指定値より大きい...:検索したい正確な数値はわからないが、最小値がわかっている場合は、このオプションを選択します。
    • 指定値より小さい...:正確な値はわからないが、最大値がわかっている場合は、このオプションを選択します。
    • 範囲指定...:このオプションを選択すると、検索する値の範囲を入力することができます。
  5. 5
    データ型を選択する データ型は、値をメモリにどのように格納しているかを示すものです。どのようなデータ型を選択すればよいのかわかりにくい場合があるので、これには少し推測が必要になるかもしれません。「値種別」ドロップダウンリストからデータ型を選択しましょう。あるデータ型で探している値が見つからない場合は、新規走査をクリックし、別のデータ型でもう一度試してみましょう。一般的に使用するデータ型は以下の通りです。
    • バイト:2バイトと4バイトは、最もよく使用するデータ型です。Windowsアプリケーションは4バイトを使用しているものがほとんどなので、まずは4バイトから始めましょう。また、これらの値は2バイトでも求めることができます。1バイトや8バイトでも求めることはできますが、問題が発生するかもしれません。
    • Float:浮動小数点数型は、小数点を含む値を扱うデータ型です(ただし、ゲーム画面では小数点は表示されないかもしれません)。ゲームでは、単純なメモリ走査を防ぐために値を浮動小数点数型で格納することがあります。バイト単位で走査しても目的の値が見つからない場合は、浮動小数点数型で走査してみましょう。
    • Double:double型はfloat型と似ていますが、桁数が2倍になります。バイト単位やfloat型で走査しても値が見つからない場合は、double型で走査してみましょう。
    • 全て:このオプションは、すべてのデータ型のすべての値を走査するもので、何を検索したらよいのかわからない場合に適したオプションですが、絞り込みが必要な検索結果が多くなってしまいます。
  6. 6
    変更したい値を入力し、初期走査をクリックする 例えば、残弾数が20発の場合は、「値」テキストボックスに20と入力しましょう。これで、「20」という数値を含むすべての値が走査されますが、おそらくアドレスリストの中に値の長いリストが生成されてしまうので、少し絞り込む必要があります。
  7. 7
    ゲームに戻り、値を変化させる どのように変化させるかは、ゲームの内容によって異なります。例えば、自分の体力を増やしたい場合は、わざと自分の体力にダメージを与えて数値を下げましょう。また、弾薬の数を増やしたい場合は、何発か撃って弾薬の数を減らします。
  8. 8
    Cheat Engineに戻り、更新された数値を走査する もう一度ゲームウィンドウを最小化し、Cheat Engineウィンドウをクリックして戻ります。「値」テキストボックスに新しい数値を入力し、次を走査をクリックしましょう。これで、初期走査で得られたすべての値が走査され、アドレスが「値」テキストボックスに入力した値に変更されたものに絞り込まれます。
    • 初期値を未指定:初期走査で「初期値を未指定」を選択した場合は、値(またはゲージ)が増加したか減少したかに応じて「走査種別」で増加または減少を選択しましょう。これで、正確な数値を走査するのではなく、増加または減少したすべての値を走査します。
  9. 9
    値が4つ以下になるまで検索を繰り返す Cheat Engineウィンドウの左側に表示されている値が4つ以下になるまで、数値を変更しては更新された数値を走査していきます。
    • 最終的には、各値の数値の「前回値」欄には検索した前回の数値が、「値」欄にはその現在の値が表示されるはずです。
  10. 10
    値をアドレスリストに追加する 値をダブルクリックして下部のアドレスリストに追加するか、アドレスをクリックして選択し、値リストの右下にある赤い斜め矢印をクリックします。これで、その値がウィンドウ下部のアドレスリストに表示されます。
    • 複数のアドレスを選択したいときは、Shiftキーを押しながら上のアドレスと下のアドレスをクリックしましょう。
  11. 11
    数値を任意の値に変更する 値の数値を変更するには、以下の操作を行います。
    • Cheat Engineウィンドウ下部のアドレスリストの「値」の下にある数値をダブルクリックします。
    • 「値」テキストボックスに新しい値を入力します。
    • OKをクリックします。
  12. 12
    ゲーム内の値が更新されたかどうかを確認する ゲームを再起動すると、編集した値に先ほど入力した数値が反映されているはずです。次のパートでは、NOPコードに置き換えて値を固定する方法を紹介します。
    • 値を更新するには、もう一度値を変化させる必要があるかもしれません。
    広告

パート 4
パート 4 の 8:
コードを置き換えて値を固定する

  1. 1
    固定したい値を走査する このパートでは、コードファインダー(検索支援)機能を使用して変更したいアドレスに書き込んでいる命令を見つけ、それをNOPコードに置き換える方法を紹介します。これで、ゲーム内の値を固定することができます。前のパートのステップで、変更したい値を見つけ、それをウィンドウ下部のアドレスリストに追加しましょう。
  2. 2
    アドレスを右クリックし、このアドレスへのアクセス元を検出をクリックする これで、Cheat Engineのデバッガが起動し、アクセス先のアドレスに書き込んでいる命令が表示されます。
  3. 3
    はいをクリックする これで、現在のプロセスにCheat Engineのデバッガをアタッチすることが確定し、コードデバッガウィンドウが開きます。ウィンドウを初めて開いた場合は、リストは空白になっています。
  4. 4
    ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行います。これで、選択したアドレスへのアクセス元となるコード命令がデバッガウィンドウに表示されます。
  5. 5
    Cheat Engineに戻り、リスト内の命令をクリックする アドレスは複数あるかもしれません。その場合は、同じ基底アドレスに書き込んでいないものを選択します。「[」と「]」の間の値が他のものと異なる命令を探しましょう。
  6. 6
    置換をクリックする これで、コードがNOPコードに置き換えられます。[1]
    • リスト内に複数の項目がある場合は、先にすべて選択しましょう。
  7. 7
    閉じるをクリックする これで、NOPコードが実行され、ゲーム内の値が固定されます。
    • 元のコードを復元するには、リスト内の項目を選択して逆アセンブラを表示をクリックし、「NOP」と表示されている部分を右クリックして元のコードを復元をクリックします。このオプションが表示されない場合は、何もしないコードと置換をクリックしてはいをクリックし、もう一度NOPを右クリックして元のコードを復元を選択しましょう。
    広告

パート 5
パート 5 の 8:
ポインタを使用して値の書き込み元を見つける

  1. 1
    変更したい値を走査する ゲームを再起動したときやゲームの途中で値によってアドレスが変化することがありますが、ポインタを使用すれば、アドレスへの書き込み元を見つけることができます。変化しない基底レベルの静的アドレスが見つかったら、その値を変更しましょう。
  2. 2
    アドレスを右クリックし、このアドレスへの書き込み元を検出をクリックする これで、デバッガウィンドウが開きます。
    • アドレスが複数ある場合は、Cheat Engineで可能なアドレス数だけデバッガウィンドウを開きましょう。
  3. 3
    ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、変更したい値を変化させるような操作を行います(例:武器を発射する、攻撃を受ける)。これで、そのアドレスへの書き込み元となる命令がデバッガウィンドウに表示されます。
    • デバッガウィンドウに何も変化がない場合、それは正しいアドレスではありません。別のものを試してみましょう。
  4. 4
    Cheat Engineに戻り、リスト内の命令をクリックする デバッガウィンドウに表示されています。アドレスは複数あるかもしれません。その場合は、「[」と「]」の間の文字が他のものと異なる命令を探します。文字が異なるアドレスが1つもない場合は、すべてのアドレスでポインタが同じかどうかを確認しましょう。
    • 文字の末尾に+と数字がついている場合は(例:[ESI+14])、それがオフセット値です。それをメモしておきましょう。後で必要になります。
  5. 5
    拡張情報をクリックする 「拡張情報」画面には、値が変化したときに実行される命令が表示されます。また、そのアドレスに書き込んでいるポインタも表示されます。
    • 括弧内の文字を確認し、その文字の後ろにある数字を確認してアドレスを見つけることもできます。例えば、アドレスの横に「[rdx]」と書かれている場合は、下部にある「RDX=xxxxxxxx」というアドレスを探しましょう。
  6. 6
    「16進数」チェックボックスにチェックを入れ、ポインタのアドレスの新規走査を実行する 「このアドレスを探す為に必要なポインタの予測値」という文章の中にポインタのアドレスが記載されています。この文章の末尾にあるアドレスを検索するには、以下の操作を行います。
    • 新規走査をクリックします。
    • 「値」テキストボックスの横にある「16進数」チェックボックスにチェックを入れます。
    • 「値」テキストボックスにポインタのアドレスを入力し、初期走査をクリックします。
  7. 7
    ポインタのアドレスをダブルクリックする Cheat Engineウィンドウ下部のアドレスリストにそのアドレスが追加されます。
    • 走査の結果、そのアドレスが緑色で表示された場合、そのアドレスは静的アドレスであり、おそらく探しているポインタであるということです。場合によっては、探しているポインタがポインタであることもあります。これはマルチレベルポインタと呼ばれるものです。この場合、ルートの静的ポインタのアドレスを見つけるためには、探しているポインタごとに上記の操作を繰り返す必要があります。
  8. 8
    「アドレス」の下にある数値をダブルクリックする アドレス変更ダイアログボックスが開きます。
  9. 9
    アドレスをテキストボックスにコピーし、キャンセルをクリックする アドレスをコピーするには、アドレス変更ダイアログボックスの上部にあるテキストボックス内のテキスト全体を選択して右クリックし、コピーをクリックします。アドレスをコピーしたら、キャンセルをクリックしてダイアログボックスを閉じましょう。
  10. 10
    アドレスを手動追加をクリックする Cheat Engineウィンドウ下部のアドレスリストの上にある左のボタンのことで、クリックするとアドレス変更ダイアログボックスと同じようなダイアログボックスが開きますが、このダイアログボックスではアドレスを追加することができます。
  11. 11
    「ポインタ」チェックボックスにチェックを入れる ダイアログボックスが展開され、ポインタを入力できる新しいテキストボックスが追加されます。
  12. 12
    ポインタのアドレスを「ポインタ」の下にあるテキストボックスに貼り付け、OKをクリックする これで、変更したい値を操作するポインタに新しいアドレスが追加されます。先ほど作成したポインタのアドレスは「P-->xxxxxxxx」のようになります。これは、特定のアドレスを指すポインタであることを示しています。
    • オフセット値がある場合は、アドレスを貼り付けたテキストボックスの上にあるテキストボックスに入力しましょう。
    • ポインタが複数ある場合は、オフセット追加をクリックしましょう。これで、アドレスを貼り付けたテキストボックスの上に、さらにオフセット値を入力するテキストボックスが追加されます。それぞれのテキストボックスに正しいオフセット値を入力しましょう。
  13. 13
    追加したポインタのアドレスの横にある「凍結」チェックボックスにチェックを入れる ウィンドウ下部のアドレスリストの「凍結」の下にあるチェックボックスのことで、クリックするとポインタが有効になります。
  14. 14
    先ほど追加したアドレスの値を変更する 先ほど作成したポインタのアドレスの値の数値は、検索した値のアドレスと同じである必要があります。ポインタによる書き込み先が異なる場合、走査した元のアドレスは無効になります。ただし、先ほど作成したポインタのアドレスの値を変更することは可能です。値の書き込み先は関係ありません。先ほど追加したアドレスの「値」の下にある数値をクリックしたら、新しい数値を入力し、OKをクリックしましょう。
    広告

パート 6
パート 6 の 8:
コードインジェクション(注入)機能を使用してコードを変更する

  1. 1
    固定したい値を走査する このパートでは、コードインジェクション機能を使用してコードによる値の書き込み方法を変更する方法を紹介します。例えば、攻撃を受けるたびに体力が減る場合は、攻撃を受けると体力が増えるようにコードを変更することができるのです。
  2. 2
    アドレスを右クリックし、このアドレスへのアクセス元を検出をクリックする Cheat Engineのデバッガが起動します。
  3. 3
    はいをクリックする これで、現在のプロセスにCheat Engineのデバッガをアタッチすることが確定します。ウィンドウを初めて開いた場合は、リストは空白になっています。
  4. 4
    ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行うと、選択したアドレスへのアクセス元となるコードがデバッガウィンドウに表示されます。
  5. 5
    ゲームに戻り、もう一度値を変化させる もう一度ゲームに戻り、固定したい値を変化させるような操作を行うと、そのアドレスへの書き込み元となる命令がデバッガウィンドウに表示されます。
  6. 6
    Cheat Engineに戻り、リスト内の命令をクリックする アドレスは複数あるかもしれません。その場合は、値から減算する「sub」という文字を含む命令、または値を加算する「add」または「inc」という文字を含む命令を探しましょう。
  7. 7
    逆アセンブラを表示をクリックする 逆アセンブラ画面が開き、そのコードが表示されます。
  8. 8
    値を減算または加算する命令を選択する これは通常、コードの先頭にある最初の命令のことです。値を減算または加算するコードの先頭には、おそらく「sub」または「add」という文字が付いています。
  9. 9
    ツールをクリックし、自動アセンブルをクリックする 自動アセンブラが起動します。
  10. 10
    テンプレートをクリックし、完全注入をクリックする これで、コードを注入(インジェクト)したいアドレスを確認するダイアログボックスが開きます。
  11. 11
    アドレスが正しいことを確認し、OKをクリックする テキストボックスに表示されているアドレスがメモリ表示ウィンドウの逆アセンブラ画面で選択したアドレスと同じであることを確認し、OKをクリックしましょう。新しいテンプレートが表示されます。
  12. 12
    コードを反対のものに置き換える 「code」という行まで下にスクロールします。その下の行が値を変更するコードです。その行が「sub」で始まる場合は「sub」を「add」に、「add」で始まる場合は「add」を「sub」に変更しましょう。また、行末の値を変更して、どれだけ値を変化させたいかを変更することも可能です。
  13. 13
    実行をクリックし、はいを2回クリックする 「実行」ボタンはコードインジェクションウィンドウの一番下にあります。コードを注入するかどうかを確認するダイアログボックスが表示されるので、はいをクリックして確定し、はいまたはいいえをクリックして、逆アセンブラ画面で新しいコードを開きましょう。コードインジェクションが成功すると、ゲーム内の値が本来の動きとは逆の動きを見せるようになります。武器を発射したときに残弾数を減らすのではなく増やしたり、攻撃を受けるときに体力を減らすのではなく増やしたりすることができます。
    広告

パート 7
パート 7 の 8:
共有コードでオブジェクトを区別する

  1. 1
    固定したい値を走査する  ゲームによっては、複数のオブジェクトが同じコードを共有していることがあります。あるオブジェクトにコードを注入すると、他のすべてのオブジェクトにも影響が及びます。例えば、自分の体力ゲージを固定していて、気がついたら敵の体力ゲージも固定していたなんてこともあります。このような場合には、オブジェクトを区別して、任意のオブジェクトだけに影響を与えるスクリプトを注入する方法を知っておく必要があります。
    • さまざまなオブジェクトにスクリプトを注入するには、いくつかのアセンブリコードを知っておく必要があります。ただし、基本的なスクリプトを作成するのはそれほど難しくありません。
  2. 2
    アドレスを右クリックし、このアドレスへのアクセス元を検出をクリックする 変更または固定したい値のアドレスが決まったら、デバッガを起動し、そのアドレスに書き込んでいる命令を見つけましょう。
  3. 3
    命令を選択し、逆アセンブラを表示をクリックする デバッガを起動したときにハイライト表示される命令のことで、クリックすると逆アセンブラ画面が開き、その命令が表示されます。
  4. 4
    先頭の命令を右クリックし、この命令のアクセス元を検出をクリックする ウィンドウが開き、その命令が新しいアドレスに書き込むときにアクセス先となるすべてのアドレスの一覧が表示されます。
  5. 5
    ゲーム内のすべてのオブジェクトの値を変更できるようにする その命令のアクセス先となるすべてのアドレスの一覧が表示されます。例えば、体力ゲージを固定しようとしてゲームに戻り、攻撃を受けたとします。すると、そのアドレスへのアクセス元となる命令がアクセスしたアドレスの一覧ウィンドウに表示されます。また、その命令を共有している敵に攻撃を当てた場合も、アクセスしたアドレスの一覧ウィンドウに表示されます。
  6. 6
    アクセスしたアドレスの一覧ウィンドウですべてのアドレスを選択する 同じアドレスを共有するすべてのオブジェクトのアドレスがアクセスしたアドレスの一覧ウィンドウに表示されたら、すべてのオブジェクトをドラッグして選択します。
    • また、各アドレスを右クリックし、レジスタの状態を表示をクリックする方法もあります。[2]
  7. 7
    アドレスの一覧に表示されているすべてのアドレスのデータ構造体を分析する アドレスの一覧のデータ構造体を分析するには、以下の操作を行います。
    • 選択したアドレスを右クリックします。
    • 選択アドレスを構造体分析ウィンドウで開くをクリックします。
    • OKをクリックします。
    • データ構造体名を入力し、OKをクリックします。
    • はいをクリックします。
    • 構造体の初期値を入力するか、そのままにしておき、OKをクリックします。
  8. 8
    プレイヤー(複数)と同じで他のオブジェクトとは異なる値を見つける データ構造体でも各オブジェクトのレジスタでも、味方と同じで敵とは異なる値を見つける必要があります。例えば、チーム1に2人のプレイヤーキャラクターが、チーム2に2人のノンプレイヤーキャラクターがいる場合、チーム1のキャラクターは1、チーム2のキャラクターは2の値で表現されているかもしれません。
    • 味方と同じで敵とは異なる値が見つからない場合は、値を作成しましょう。ポインタなどの値を1つ右クリックし、要素の追加をクリックします。データ型は「4バイト」を選択し、使用されていないオフセット値を指定しましょう。オフセット値は構造体分析ウィンドウの表の左側に表示されています。
  9. 9
    値のレジスタをメモする レジスタ表示でも構造体分析表示でも、レジスタ値は左側にあります。レジスタ表示では、命令が書き込む実際のレジスタになります(例:RSI、RDX、EDXなど)。構造体分析表示の場合は、左側に表示されているオフセット番号または文字がレジスタです。
  10. 10
    その命令の新しいコードインジェクションテンプレートを開く メモリ表示ウィンドウに戻り、異なるアドレスに書き込む命令の新しいコードインジェクションテンプレートを開きます。これを行うには、以下の操作を行います。
    • メモリ表示ウィンドウで命令をクリックします。
    • 上部のメニューバーにあるツールをクリックします。
    • 自動アセンブルをクリックします。
    • 上部のメニューバーにあるテンプレートをクリックします。
    • コード注入をクリックします。
  11. 11
    変更したいオブジェクトの新しいラベルを作成する ラベルはコードインジェクションテンプレートの上部に表示されています。変更したいオブジェクトの新しいラベルを既存のラベルの下に追加しましょう。ラベルを追加するには、labelと入力し、ラベル名を括弧内に入力します(例:「label(player)」や「label(enemy)」)。
  12. 12
    先ほど作成したラベルの新しいセクションを作成する ラベルの新しいセクションを作成するには、元のコードの前後の任意の位置にラベル名とコロン(:)を入力します。
  13. 13
    変更したいオブジェクトの値を変更するコードをラベルに追加する これにはアセンブリコードの知識が少し必要です。変更したいオブジェクトの値を任意の方法で変更するコード行、そして出口、元のコード、リターンコードにジャンプする行を追加する必要があります。
  14. 14
    「newmem」の下に比較コードを書く コードインジェクションテンプレートの「newmem:」という行は、その命令が新しいメモリアドレスを呼び出していることを示しています。通常は「code:」または「originalcode:」というラベルの元のコードの中にそのまま書き込みます。「cmp」コマンドを使用してレジストリまたはレジストリ+オフセット値で異なるオブジェクトの値を比較するコード行を書きましょう。例えば、オフセットが14 のRDXがノンプレイヤーチームからプレイヤーチームを判断しており、プレイヤーチームの値が1の場合、オブジェクトがプレイヤーかどうかを確認するにはcmp [rbx+14],1と入力します。
  15. 15
    変更したいオブジェクトのセクションにジャンプするコード行を追加する 「je」コマンドを使用して比較コマンドのセクションにジャンプしましょう。例えば、ラベル名が「player」の場合は、je playerという行を追加すると、値比較がプレイヤーに該当するときに「player」セクションにジャンプします。
  16. 16
    元のコードにジャンプするコードを追加する 変更したいオブジェクトのセクションにジャンプするコード行を書いた後、値がプレイヤーや味方に該当しない場合は、元のコードにジャンプするコード行を追加する必要があります。「jmp」コマンドを使用して変更したいオブジェクトのセクションにジャンプする行(または異なる動作をする別に書いた一連のコード)の後に元のコードにジャンプする行を書きましょう。
    • シンプルにするためには、新しいラベルを追加しないという方法があります。「newmen:」の末尾に敵と味方を区別するための比較コードを書くだけです。そして、味方の場合は出口にジャンプするコード行を追加します。敵の場合は元のコードにジャンプするようにしましょう。これで、プレイヤーや味方が攻撃を受けても(または武器を発射したり、消費アイテムを使用したりしても)何も変化せず、敵が攻撃を受けた場合は通常通りのコードが実行されるようになります。
  17. 17
    実行をクリックする 入力したコードが実行され、うまくいけば敵と味方を区別する新しいコードが挿入されます。以下は敵と味方を区別するための簡単なスクリプト例です。
     alloc(newmem,2048,"Tutorial-x86_64.exe"+2EB6D) 
    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"+2EB6D:
    jmp newmem
    returnhere:
    
    広告

パート 8
パート 8 の 8:
Cheat Engineを理解する

  1. 1
    Cheat Engineの仕組みを理解する Cheat Engineは、コンピュータのランダムアクセスメモリ(RAM)に格納されているデータにアクセスすることができるツールです。ゲームなどのソフトウェアを実行すると、ハードディスクドライブ(HDD)などの静的な記憶域からRAMにデータが転送され、そこからデータの読み書きが可能になります。Cheat Engineでは、RAMに格納されているデータを走査して、そのデータを変更することができるのです。
  2. 2
    専門用語を理解する Cheat Engineでは、多くの高度なコンピュータコードが扱われています。コードをより簡単に理解できるようにいくつかの用語を理解しておくとよいでしょう。以下はCheat Engineで使用されている用語です。
    • 値:値とは、コンピュータプログラムの中で数値が与えられているものを指します。ゲームでは、体力の割合や残弾数、アイテム所持数などがこれに当たります。Cheat Engine では、変数を走査して変更することができます。
    • アドレス:アドレスとは、データが格納されているRAM上の場所のことです。アドレスは変更されることもあります。
    • データ型:データ型とは、値をどのように格納しているかを示すものです。2バイトや4バイト、8バイトなどのバイト単位のほか、float型やdouble型などの浮動小数点数型などがあります。
    • ポインタ:ポインタとは、他のアドレスによって書き込まれた値が格納されているアドレスのことです。これらのアドレスは、ゲームを読み込むたびに変更されたり、ゲームの途中で変更されたりすることがあります。
  3. 3
    Cheat Engineに対応していないゲームが多いことを理解する チート防止機能やオンラインマルチプレイ機能のあるゲームはCheat Engineには対応していません。また、Cheat Engineを使用しようとすると、通常そのアカウントまたはプロフィールによるオンラインプレイが制限されてしまいます。
    • 通常は課金で購入するリソースをCheat Engineで入手した場合、国によっては窃盗罪で起訴される可能性があります。
    • Cheat Engineは知名度の高いソフトウェアなので、ほとんどのゲームには何らかの対策が施されています。
  4. 4
    Cheat Engineに対応している可能性のあるゲームを把握する 古いシングルプレイゲームやSteamの一部のシングルプレイゲームはCheat Engineに対応しているはずですが、これらのゲームは画面上に表示・変更可能な値があることが条件となります。
    • 他のプレイヤーとの関わりのない(マルチプレイやハイスコアがない)オンラインフラッシュゲームもCheat Engineに対応しているものがたくさんあります。
    広告

ポイント

  • Cheat Engineに収録されている対話形式のチュートリアルから始めます。上記の方法を用いて、9つのステップをすべてクリアしてみましょう。
  • Cheat Engineはゲームの細かい部分を変更するのに便利ですが、大きな部分を変更しようとすると、ゲームが壊れてしまう可能性があります。
  • Cheat Engineを使いこなしたい場合は、アセンブリコードの知識があるとよいでしょう。
広告

注意事項

  • Valve Anti-Cheat(バルブ・アンチチート、VAC)や他のチート対策が施されたサーバーで Cheat Engine を使用すると、アカウント停止措置(BAN)を受けてしまいます。
  • Robloxは、通常のCheat Engineでハッキングすることはできません。ハッキングしようとすると、そのゲームから追い出されてしまいます。
広告

関連記事

Spotifyの再生時間を確認するSpotifyの再生時間を確認する
画像をJPEGに変換する画像をJPEGに変換する
Dellパソコンでスクリーンショットを撮るDellパソコンでスクリーンショットを撮る
ペイントで背景を透明にするペイントで背景を透明にする
Adobe Illustratorで図形の中に画像を挿入する初心者でも簡単!Adobe Illustratorで図形の中に画像をキレイに挿入する方法
7 Zipでファイルを高圧縮する7 Zipでファイルを高圧縮する
Excel でアルファベットの小文字を大文字に一括変換する
Adobe Illustratorでハイパーリンクを挿入するAdobe Illustratorでハイパーリンクを挿入する
DWGファイルを開くDWGファイルを開く
WinZipを使わずにZIPファイルを開くWinZipを使わずにZIPファイルを開く
コマンドプロンプトでプログラムを実行するコマンドプロンプトでプログラムを実行する
OutlookからログアウトするOutlookからログアウトする
JPGをPDFに変換する
UbuntuソフトウェアをアンインストールするUbuntuソフトウェアをアンインストールする
広告

このwikiHow記事について

wikiHow編集チーム
共著者 ::
wikiHowスタッフライター
この記事は、経験豊富なwikiHowの編集者と調査員から成るチームによって執筆されています。調査員チームは内容の正確性と網羅性を確認しています。

wikiHowのコンテンツ管理チームは、編集チームが編集した記事を細心の注意を払って精査し、すべての記事がwikiHowの高品質基準を満たしているかどうかを確認しています。 この記事は29,957回アクセスされました。
このページは 29,957 回アクセスされました。

この記事は役に立ちましたか?

広告