結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

Cheat Engineの使い方 チュートリアルStep5の攻略 コードファインダー機能 (ゲーム改造/チート)

Cheat EngineのチュートリアルStep5の記事です。

チュートリアルの始め方やプロセスのアタッチの仕方などもこちらに書かれていますので、ご一読いただけると幸いです。
Cheat Engineの使い方 チュートリアル Step2の攻略 - 結果だけでなく過程も見てください

Step5の問題文

要約すると、以下の通りです。

  • ゲームは再起動するたびに値が保存される場所が変わる(動的アドレス)
  • ゲームを再起動しても再度解析しないようにするには、値を保存している処理(コード)に注目することが重要
  • 値の初期値は100
  • 「Change Value」ボタンを押すたびに数値を変更する処理(コード)が実行される
  • 値を保存している処理(コード)をみつけ、何も処理しないコードに書き換えてください

f:id:taiyakisun:20210331101528p:plain

アドレスを見つける

Step2~4までにやってきた方法でアドレスを見つけます。
初期値は100なので、100でFirst Scan→Change valueボタンを押す→新しい値でNext Scan...といった感じで該当するアドレスを特定してください。
値はランダムで変化しますが、自分の例では545になりました。

①値を入力してスキャン
②該当するアドレスが絞れたらダブルクリックする
③行が追加される
f:id:taiyakisun:20210331103819p:plain

見つけたアドレスがどこから書き込まれているかを探す

追加した行を右クリックし「Find out what writes to this address」を選択します。
f:id:taiyakisun:20210331104629p:plain

以下が表示された場合は「Yes」を押下すると、「The following opcodes write to XXXXXXXX」というタイトルのウィンドウが新しく表示されます。
f:id:taiyakisun:20210331104706p:plain

ここで問題文のダイアログに戻って「Change value」ボタンを押します。
f:id:taiyakisun:20210331105049p:plain

すると書き込みを検知した「The following opcodes write to XXXXXXXX」のダイアログに行が追加されるはずです。
これが先ほど見つけたアドレスに書き込んでいる処理(コード)となります。
次に、右にある「Show disassembler」ボタンを押下します。
f:id:taiyakisun:20210331105345p:plain

何も処理を行わないようにする

以下の通り、処理(コード)のアセンブラが表示されます。
以下の例ではTutorial-i386.exe+26932が該当のアドレスとなります。
このアドレスの処理を何もしない処理にすれば良いです。
f:id:taiyakisun:20210331105645p:plain

①を右クリックし②「Replace with code that does nothing」を選択します。
f:id:taiyakisun:20210331110044p:plain

以下が表示されるので、OKを押します。
f:id:taiyakisun:20210331110358p:plain

処理がnopとなり、これで何も処理されなくなりました。
f:id:taiyakisun:20210331110559p:plain

問題文に戻って「Change value」ボタンを押下してください。
値が変化せず、かつ「Next」ボタンが活性化したら正解です!お疲れ様でした。
f:id:taiyakisun:20210331110919p:plain

プライバシーポリシー お問い合わせ