Cheat Engineのちょっとしたお役立ち情報

値を一気に固定する方法

固定したい値の行を選択してからスペースキーを押すと一気に固定できます。
下の画像でDaveとHALを固定したい場合はCtrlキーを押しながらDaveとHALを選択してスペースキーを押します。
EricからKITTまでを選択したい場合はまずEricをクリックして、Shiftキーを押しながらKITTをクリックすると連続して選択できます。
全選択するにはアドレスリストのどこかをクリックしてからCtrl+Aを押します。


スクリプト内の文字を一括変換

Cheat Engineでスクリプトを書いていると特定の文字を一括変換したいときがあります。
そういったときはテキストエディタをアクティブにした状態でCtrl + Rを押しましょう。
そうするとReplaceダイアログボックスが出現するので、Textに変更したい文字を、Replaceに変更後の文字を入力しReplace allをクリックすればすべて置換されます。
DirectionをForwardにするとカーソルがある位置から前を、Backwardにした場合はカーソルの位置から後ろにある文字を置換します。


Excuteボタンについて

Cheat Engineのスクリプトを学び始めてすぐにハマりがちなのがこのExtuteボタンです。
Cheat Engineのスクリプトが画期的なのはオンにすると改造コードに書き換えられ、オフにすると元のコードに戻るところにあります。
ただこのボタンを押してしまうと改造コードが書き込まれるだけで元に戻すことが出来ません。
したがってスクリプトを実行する場合はメニューバーのFileからAssign to current cheat tableを選択し、チートテーブルに追加してから実行するようにしましょう。



メインウインドウに戻るとAuto Assemble scriptというスクリプトが追加されており、赤枠部分をクリックすれば実行できます。

AAスクリプト内でのメモリの確保について

Auto assemblerスクリプトでメモリを確保する方法は2パターンあります。
alloc(val1,4)

label(val2)
val2:
  dd 0
です。
上の例では4バイトのメモリval1とval2を確保しています。どちらのやり方でも良いのですが、少し気になったので両者の違いを調べてみました。


テンプレートを使用してスクリプトを作成している場合、alloc(newmem,$1000)と始めに0x1000バイト分のスクリプト用のメモリが確保されます。上の画像だと1F0000から1F0FFFまでがnewmemになります。
allocで確保したメモリval1のアドレスは1F1000となっており、最初に0x1000バイトのメモリを確保しているにもかかわらず、また新たな領域にメモリを確保していることが分かります。
一方、val2はnewmem内にアドレスがあるため、こちらの方がメモリを無駄に使わずクリーンなやり方といえます。
正確に言うと元から確保してあるメモリ領域(newmem)に4バイト分0で初期化しただけということになります。
海外の方が作成したスクリプトを見てみるとやはりlabelを使用しているためこのやり方が推奨です。
label(val2)
code:
  sub [ebx+000004AC],eax
  mov [val2],ebx
  jmp return
val2:
  dd 0

逆アセンブラウインドウのコメント

アセンブリ言語を追いかけていると途中で何をやっていたのか分からなくなることがよくあります。
そういったときに役立つのがコメントです。
コメントを書き込みたい場合は右端にあるCommentの列をダブルクリックして入力することが出来ます。
Cheat EngineのメインウインドウでCtrl + Sを押してチートテーブルを上書き保存すればコメントも一緒に保存され次回起動時にも表示されるようになります。ぜひ解析に役立ててください。


ダンプ画面でのフェードアウト時間の変更

Cheat Engineで値を連鎖的に見つけるのに非常に役に立つのがダンプ画面です。
値が変化すると赤くなるのですが、元に戻るのが早すぎてどこだったかな?となりがちです。
そのような場合にダンプ画面上を右クリックからChange fade timerでフェードアウト時間を変更できます。
デフォルトだと1秒(1000ミリ秒)になっているので、5秒か8秒あたりにするとちょうど良いかなと思います。


XMMレジスタの値を確認する方法

64ビットのゲームを解析していると出てくるxmmレジスタですが、初見だとどうやって値を確認するの?となりますよね。
方法としてはまず該当の命令にブレークポイントを設置しブレークさせてから、↓画像の青矢印部分 > をクリックすると値を確認できます。


ゲームを一時停止する方法

Cheat Engineメインウインドウの左下にあるAdvanced Optionsをクリックし、赤矢印部分のアイコンをクリックすれば一時停止できます。


情報収集

Cheat Engineの各種使い方などを調べる際は以下のサイトを使っています。
検索のコツとしてはSearchをクリックしサイト内検索からgoogle searchを使用することです。
このgoogle searchが非常に優秀で自分が検索したキーワードに関連するスレッドを的確にリストアップしてくれます。
一番下のdiscordはチャットのようなもので、参加している人たちが自分の疑問をなげると、それに答えてくれる人がいて質疑応答のようになっています。ちょうどそれ自分も知りたかったことだ!となることがあり、かなり有益なのでおすすめです。

FearLess Cheat Engine
Cheat Engine Forum
Guided Hacking
CHEAT THE GAME - discord
関連記事

0 Comments

Post a comment