Cheat Engineの使い方 チュートリアルStep6の攻略 ポインター (ゲーム改造/チート)
Cheat EngineのチュートリアルStep6の記事です。今回はみんな大好きポインターです。
チュートリアルの始め方やプロセスのアタッチの仕方などもこちらに書かれていますので、ご一読いただけると幸いです。
Cheat Engineの使い方 チュートリアル Step2の攻略 - 結果だけでなく過程も見てください
Step6の問題文
要約すると以下の通りです。
- 前回扱ったコードファインダーを毎回実施するより、ポインターを覚えておいてその先を指す値を書き換える方が簡単なこともある
- 初期値は100
- Change valueボタンは値だけを変更し、Change pointerボタンはアドレスと値を変更する
- 該当の場所を指すポインターをチートテーブルに追加し値を5000にして固定した後、「Change pointer」ボタンを押下してください
該当アドレスの絞り込みと、どこからアクセスされているかを取得する
Step2~5でやってきた方法と同様に、初期値100でFirst Scan→問題文ダイアログの「Change value」→Next Scanでアドレスを絞り込みます。値はランダムで変わりますが自分は706でした。
続いて、見つかったレコードを右クリックして「Find out what writes to this address」を選択します。
以下が表示されたら「Yes」を選択します。すると「The following opcodes write to XXXXXXXX」という新しいウィンドウが表示されます。
問題文のダイアログに戻り「Change value」ボタンを押下します。
「The following opcodes write to XXXXXXXX」ウィンドウが変更を検知し、処理(コード)が表示されます。
続いてウィンドウ右部にある「More information」ボタンを押下します。
00426DD7がChange value時に値を更新する処理(コード)となります。
mov [edx],eaxとあることから、新規の値はeaxレジスタに格納されており、edxレジスタのアドレスにある変数の値を更新していることがわかります。
ここで欲しいのは変数へのアドレスなので、edxレジスタの値を使用します。
ポインターのアドレス取得とポインターの手動追加
メインウィンドウに戻り、New Scanボタンを押下した後、①Hexにチェックをいれ、Value:にedxレジスタの値を入力して「First Scan」ボタンを押下します。②に結果が表示されます。ここではAddressの列が緑色の行を選択します。緑色のアドレスは静的アドレスといってアプリケーションを再起動しても固定のアドレスとなります。アプリケーション自体がアップデートされない限りアドレスは不変です。
続いて③の[Add Address Manually]ボタンを押下します。
新しくAdd addressウィンドウが表示されるので、①のPointerにチェックをいれて、②に先ほどメインウィンドウで見つかったアドレスを入力して(※1)、OKボタンを押下してください。
これでポインタのレコードが追加されました。Addressが「P->XXXXXXXX」となっており、変数そのものではなく、変数を指すポインタが追加されたことになります。これによりポインタが指す先の変数が変わった場合でも、常に目的の値を変更できるようになりました。
Valueを5000に変え、Activeにチェックをいれて値を固定します。
問題文のダイアログに戻り、Change pointerボタンを押下すると、Nextが活性化し、次の課題へ進めるようになります。お疲れ様でした。
(※1)処理(コード)にオフセットがある場合の対処方法
今回該当箇所の処理(コード)を見ると、以下のようにedxにオフセットがありませんでした。
mov [edx],eax
しかし、例えば以下のようにedxに12のオフセットがある場合は、Add addressウィンドウにオフセットを入力する必要があります。
mov [edx + 12],eax
Cheat Engineの使い方 チュートリアルStep5の攻略 コードファインダー機能 (ゲーム改造/チート)
Cheat EngineのチュートリアルStep5の記事です。
チュートリアルの始め方やプロセスのアタッチの仕方などもこちらに書かれていますので、ご一読いただけると幸いです。
Cheat Engineの使い方 チュートリアル Step2の攻略 - 結果だけでなく過程も見てください
Step5の問題文
要約すると、以下の通りです。
- ゲームは再起動するたびに値が保存される場所が変わる(動的アドレス)
- ゲームを再起動しても再度解析しないようにするには、値を保存している処理(コード)に注目することが重要
- 値の初期値は100
- 「Change Value」ボタンを押すたびに数値を変更する処理(コード)が実行される
- 値を保存している処理(コード)をみつけ、何も処理しないコードに書き換えてください
アドレスを見つける
Step2~4までにやってきた方法でアドレスを見つけます。
初期値は100なので、100でFirst Scan→Change valueボタンを押す→新しい値でNext Scan...といった感じで該当するアドレスを特定してください。
値はランダムで変化しますが、自分の例では545になりました。
①値を入力してスキャン
②該当するアドレスが絞れたらダブルクリックする
③行が追加される
見つけたアドレスがどこから書き込まれているかを探す
追加した行を右クリックし「Find out what writes to this address」を選択します。
以下が表示された場合は「Yes」を押下すると、「The following opcodes write to XXXXXXXX」というタイトルのウィンドウが新しく表示されます。
ここで問題文のダイアログに戻って「Change value」ボタンを押します。
すると書き込みを検知した「The following opcodes write to XXXXXXXX」のダイアログに行が追加されるはずです。
これが先ほど見つけたアドレスに書き込んでいる処理(コード)となります。
次に、右にある「Show disassembler」ボタンを押下します。
Cheat Engineの使い方 チュートリアルStep4の攻略 浮動小数点 (ゲーム改造/チート)
Cheat EngineのチュートリアルStep4の記事です。
チュートリアルの始め方やプロセスのアタッチの仕方などもこちらに書かれていますので、ご一読いただけると幸いです。
Cheat Engineの使い方 チュートリアル Step2の攻略 - 結果だけでなく過程も見てください
Step4の問題文
要約すると、以下の通りです。
- 体力(Health)と弾薬(Ammo)があり、初期値は100
- 両方小数であり、体力(Health)はfloat型、弾薬(Ammo)はdouble型
- 「Hit me」ボタンを押すと体力(Health)が減り、「Fire」ボタンを押すと弾薬(Ammo)が減る
- 体力(Health)と弾薬(Ammo)の両方を5000以上にしてください
小数の検索
Step2, Step3とほぼ同じやり方で解くことができますので説明はさらっといきます。
違いは値が小数であることだけですので、検索するValue TypeをFloatやDoubleにして検索をします。
例えば、体力(Health)なら、Value Typeを「Float」にして100でNew Scan→Hit meボタンを押す→100から減った値でNext Scan...と繰り返してValueを5000以上の値にします。
弾薬(Ammo)もValue Typeを「Double」にして同じことを繰り返します。
両方の値を5000以上にするとNextが活性化し、次のステップへ進めるようになります。お疲れ様でした。
Cheat Engineの使い方 チュートリアルStep3の攻略 (ゲーム改造/チート)
前回Step2の続きです。Step2の記事は以下です。チュートリアルの始め方やプロセスのアタッチの仕方などもこちらに書かれていますので、ご一読いただけると幸いです。
Cheat Engineの使い方 チュートリアル Step2の攻略 - 結果だけでなく過程も見てください
Step2をクリアして[Next]ボタンを押してStep3まで進めてください。
Step3の問題文
要約すると以下の通りです。
- 今回はStep2と違い初期値はわかりません
- 初期値は0~500の間にあるということはわかっています
- 「Hit me」ボタンを押すと体力(Health)の緑色のバーが減ります
- チートして体力(Health)の値を5000にしてください
初期値がわからない場合の検索
まずはStep2の結果を消すために、「New Scan」ボタンを押下します。
次に、Scan Typeのプルダウンから「Unknown initial value」を選択して、「First Scan」ボタンを押下します。
問題文のダイアログに戻って、「Hit me」ボタンを押し体力を減らします。ダイアログ下部にある緑色のバーが少し減ったのがわかるでしょうか?
Cheat Engineのメインウィンドウに戻り、Scan Typeを「Decreased value」にします。Decreased valueとは1つ前の検索結果から値が減ったものを探すという検索種別です。
その後「Next Scan」ボタンを押下してください。
前の検索結果から値が減った場所が表示されましたが、1つに絞り込めていないため現時点ではまだ該当の場所はわかりません。
検索結果がある程度少なくなるまで、以下を繰り返してください。
- 問題文のダイアログの「Hit me」を押下する
- Cheat EngineメインウィンドウでScan Typeを「Decreased value」にして「Next Scan」ボタンを押す
何度か上記を繰り返した結果は以下です。下記画像では4件まで結果を絞れています。問題文にある通り正解の値は0~500の間にあることはわかっているため、該当の場所(アドレス)は「01892680」であることがわかります。「01892680」をダブルクリックしてください。
チートテーブルに追加された行の値部分をダブルクリックしてください。
以下の通り、値を変更するための新しいダイアログが開くので値を5000に変更してOKボタンを押します。これで体力(Health)の値が467から5000に変更されました。
問題文のダイアログに戻ってみてください。
無事体力(Health)を5000にできたので、「Next」ボタンが活性化され、次の課題に進めるようになっています!お疲れ様でした。
Cheat Engineの使い方 チュートリアルStep2の攻略 (ゲーム改造/チート)
Cheat Engineについて
Cheat Engineは主にゲームに対して使用するメモリースキャナー/デバッガーです。ゲームプロセスのメモリーにアタッチして値を変更することにより、リアルタイムにHPを好きな数値に変更したり、弾を無限にするなどのチートが可能になります。
ダウンロードはこちらから。
Cheat Engine
なお、上記公式サイトにも記載されていますが重要なことなので以下に明記しておきます。
Cheat Engineは私的および教育目的でのみ使用してください。Cheat Engineをプロセスにアタッチする前に、特定のゲーム/アプリケーションのEULA / TOSに違反していないことを確認してください。cheatengine.orgは、Cheat Engineの違法な使用を容認していません。
今回はCheat Engineに含まれるチュートリアルの最初の課題であるStep2を解いていきたいと思います。
当方Cheat Engineのバージョンは7.2です。
チュートリアルの始め方
Cheat Engineを起動したらメニューバーの[Help]からチュートリアルを起動できます。
メッセージが表示されますので、[Next]ボタンを押してStep2に進みましょう。
プロセスへのアタッチ
課題を開始する前に、解析するプロセスにアタッチするため、以下のボタンを押下します。
起動しているアプリケーション一覧が表示されますので「Tutorial-i386」を選んだ後、「Open」ボタンを押下します。
Step2の問題文
要約すると以下のようになります。
- あなたの体力(Heath)の初期値は100です (ダイアログ下部に書かれています)
- 「Hit me」ボタンを押すたびに体力が減っていきます
- あなたの体力(Heath)をチートして1000にしてください
数値の検索
いまあなたの体力(Health)は100なので、100という数字で検索をします。
以下の赤枠の通り、Value:に「100」を入力してください。
また青枠は変更する必要はありませんが「Exact Value」となっていることを確認してください。「Exact Value」は入力した数値と一致する値を検索するという意味になります。
続いて赤枠の「First Scan」をクリックします。
すると赤枠の場所にメモリー上で「100」の値を持つ場所がヒットしました。
複数個所ヒットしたので、目的の場所がどこかは現時点ではまだわかりません。
数値を変化させて再度検索する
課題のウィンドゥに戻って「Hit me」ボタンを押下しましょう。体力(Health)がいくつか減ったと思います。この画像では体力(Health)が100→98に減っています。
そうしたら今度はCheat Engineのメインウィンドウに戻って、今度は「98」で検索をしてみましょう。値に「98」を入力し、「NextScan」を押下します。「Next Scan」を押すことで、先ほど検索した結果からさらに絞り込んで検索をすることができます。
該当の場所を絞り込むことができたら、その行をダブルクリックします。すると②のようにチートテーブルと呼ばれる領域に行が追加されます。
もしNext Scanを押して1件にならなかった場合は、 もう一度「Hit me」ボタンを押下し、体力(Health)を入力して再度Next Scanボタンを押してください。 1件になるまでこれを繰り返してください。
Oculus Quest 2に保存した画像/動画/VR動画を見る方法
Oculus Quest 2のブラウザー等でダウンロードした画像/動画/VR動画を見るには、Oculus内のストアで「DeoVR Video Player」をインストールします。
DeoVR Video Playerを起動したら、画面下部にある「Local Files」を選択します。
PCから転送した画像/動画を見る場合
漫画を読む場合
フォルダ単位でOculusに漫画の画像ファイルを転送しておけば、右コントローラーのスティックでページが送りができます。仰向けに寝っ転がりながら、漫画を読んだりすることもできそうです。
対応している動画のフォーマットの注意点
対応ファイルフォーマットは以下のリンクの通りですが、動画フォーマットによって再生できないことがありますのでご注意ください。例えばDivXなんかは再生できません。
Oculus GoのOculus Videoのフォーマット
Oculus Quest 2で設定に「開発者」の項目がなくガーディアンをオフにできない場合の対処方法
開発者モード
まず「開発者モード」というものに入る必要があるようです。
開発者モードの入り方は以下のサイトを参照してください。
Oculus Quest :開発者モードへの入り方 | 着物オヤジ
一度電源を切る
次にハマった点ですが、スマホのOculusアプリで「開発者」をONにしても、
Oculus Quest 2の設定内に「開発者」の項目が現れませんでした。同様の現象の方がいる模様。
Quest 2 - How to disable Guardian? - Oculus Community - 845480
自分の場合、Oculusを再起動をしても「開発者」の項目が現れず、一度「電源を切る」を選ぶことで表示されました。
再起動だけ試している方はぜひ「電源を切る」を試してみてください。
ただ上記サイトでも突然現れたと言っているので、もしかしたら少し時間がかかるなど別のトリガーもあるのかも…。