初歩的なCheatEngineの使い方
:
ラナルータ
:2014/11/16(日) 15:34:08関連スレ
基本的なCheatEngineの設定
基本的なCheatEngineの使い方
基本的なことから書いたはずなんですけど
あれは初歩的なことができる人向けだと思うので
まじで使ったことない人向けの記事書きますわ
まず初めに
アドレスの追加の仕方とかはしょうもないので書かないのですが...
スクリプトの追加の仕方...わりと分かりづらいのです
書いていきます
AAScriptの追加の仕方
MemoryViewerを開きます
Toolsを押します
AutoAssembleを押します

適当にこんな感じで
有効無効できるように書いておきます

Assign to current cheat tableってのをクリックすれば
CTにスクリプトが追加されます
OWARI

CTにスクリプトを書く準備ができたところで
既存のスクリプトをEMSからJMSに持ってきたりはたまた古いスクリプトを更新したりするために便利な
AobScanについて知ろう!やったぜ!
AobScanの使い方
俺のやり方は若干特殊かもしれないけど簡便してください
うわぁ!どこかのサイトでこんなAobを見つけたよ!!
物理無敵//E8 ?? ?? ?? ?? 57 8B CE E8 ?? ?? ?? ?? 83 BE ?? ?? ?? ?? 00 74 0D 6A 00 6A 00 6A 00 8B CE E8 - call
Memory Viewer 開きます
Find Memoryクリックします

Windowが出てくるので画像のとおりに値を全部設定します
From/Toの設定を間違えてるパターンが割りとあるので検索範囲くらいきちんと設定しましょう
Text検索しているわけではないのでAobに設定しましょう(左下に注目していてくださいよ)
OKをクリックします

検索して一致する場所が見つかると左下のアドレスが変わります!
見つからなければエラーが出ます
その場合は新しいAobを作成する必要あり

早速見つかったアドレスを見てみよう!
右クリックからMemoryViewerのアドレスが移動できるよ!
Go to Address!

アドレスを入力してOK押します

きちんと移動できましたね
なんかAobにcallとか書いたあったので
call先を見ろってことでしょう(すっとぼけ)

これでほしいアドレスが見つかりました(正しくない場合もあったりするんでそれはAobのコメントを見てください...
belowとか書いてあったりするとAobから取得できたアドレスの下を見ろ見たいな意味です)
callとかjmpとか書いてあるときはそのcall/jmp先のアドレスを見ろてきな意味だと思います

Script/Aob仕上げ
先ほど追加したCTにあるAAScriptを右クリックで
名前を変更したり
スクリプトを変更したりできます
さぁ変更しましょう!(空だったからね)

とりあえずこんな感じに書いてOKおして保存されるので
チェックをいれたらMobにぶつかってみて下さい
たぶん無敵になっています
ret 0004を書き入れているため(3bytes)
無効化するときに元のメモリをもどしてやる必要があるので
db 6A 00 68とやっていますこれについての解説は下に書きます

AA Scriptやら
物理無敵コードの解説
アドレス:
db XX XX XX XXの形で
16進数値をアドレスのメモリに書き込めす
アドレス:
dd XXXXXXXXの形だとDWORD = 4bytesの書き込みができます
アドレス:
dd #123456の形だと整数値を書き込めます
アドレス:
dw XXXXの形だとWORD = 2bytesの書き込みができます
アドレス:
dd #12345
dw 1234
db 90 90
とか書くと
最初の4bytesに整数値12345を
次の2bytesに0x1234を
その次に0x90 0x90と書き込んでいきます
アドレス:
asm codeの形だとアドレスにasmコードを書き込みます
何バイト書き込まれるかはasmcodeによるし
きちんと分かってないとメモリが破壊されます
なぜret 0004を関数の始まりに書き込んでいるのか?
push FFやらpush ebpから始まる場所はだいたい関数の開始地点です。
ret 0004とは引数が1つの関数を終わらせる処理です
esp値をあわせてreturnしないとreturn addressを間違えて変なところに実行が移ってエラーします
まぁ関数の開始地点にreturn書き込むのが一番安全です。
どうやって引数の数を見分けるか?
Fromを関数の最初にもっていって

retを検索します

まぁ検索するとretコードが羅列されます
んできちんとWクリックしてアドレスのメモリを見てやりましょう
int CCとか次の関数がすぐそこに見えるならばだいたい関数の終了地点で間違いないです
ret 0004とあるので引数の1個関数です
なのでこれを関数の開始地点の書き込むことで
強制的に関数を終了できます

関数について
まー関数ってのはC言語でいうところのint main() { return 0;}とかいう感じの奴です
retコードに到達したときのeaxの値がreturnされる値と覚えればオーケー
んでret 引き数の数*4で関数が終了できることも覚えておこう(_stdcallの場合)
関数には2種類あります
ret 0004のようなもので終わるもの
retをかけた後に
call後に
add esp,4とやるようなもの
まぁどちらも処理は同じですが...
説明がしづらいです...
_stdcallかそうでないかと覚えればオーケー
C++で関数書いてそれの処理を割り込ませるようなことをしない限り気にする必要はない!
まぁなんでeaxの値が返り値なんてことを説明したかといいますと
楓之谷は重要な関数ほど難読化されていて
どこがcallしているのか分からない状態です
しかも複数の関数がその関数をcallしている場合
その関数を強制リターンしてしまうのはあまりよろしくない...
なので関数がcallされた後に返り値を書き換えるようなことが便利だったりするんです(Send Detectionとかね!)
ウェヘヘ...
基本的なCheatEngineの設定
基本的なCheatEngineの使い方
基本的なことから書いたはずなんですけど
あれは初歩的なことができる人向けだと思うので
まじで使ったことない人向けの記事書きますわ
まず初めに
アドレスの追加の仕方とかはしょうもないので書かないのですが...
スクリプトの追加の仕方...わりと分かりづらいのです
書いていきます
AAScriptの追加の仕方
MemoryViewerを開きます
Toolsを押します
AutoAssembleを押します
適当にこんな感じで
有効無効できるように書いておきます
Assign to current cheat tableってのをクリックすれば
CTにスクリプトが追加されます
OWARI
CTにスクリプトを書く準備ができたところで
既存のスクリプトをEMSからJMSに持ってきたりはたまた古いスクリプトを更新したりするために便利な
AobScanについて知ろう!やったぜ!
AobScanの使い方
俺のやり方は若干特殊かもしれないけど簡便してください
うわぁ!どこかのサイトでこんなAobを見つけたよ!!
物理無敵//E8 ?? ?? ?? ?? 57 8B CE E8 ?? ?? ?? ?? 83 BE ?? ?? ?? ?? 00 74 0D 6A 00 6A 00 6A 00 8B CE E8 - call
Memory Viewer 開きます
Find Memoryクリックします
Windowが出てくるので画像のとおりに値を全部設定します
From/Toの設定を間違えてるパターンが割りとあるので検索範囲くらいきちんと設定しましょう
Text検索しているわけではないのでAobに設定しましょう(左下に注目していてくださいよ)
OKをクリックします
検索して一致する場所が見つかると左下のアドレスが変わります!
見つからなければエラーが出ます
その場合は新しいAobを作成する必要あり
早速見つかったアドレスを見てみよう!
右クリックからMemoryViewerのアドレスが移動できるよ!
Go to Address!
アドレスを入力してOK押します
きちんと移動できましたね
なんかAobにcallとか書いたあったので
call先を見ろってことでしょう(すっとぼけ)
これでほしいアドレスが見つかりました(正しくない場合もあったりするんでそれはAobのコメントを見てください...
belowとか書いてあったりするとAobから取得できたアドレスの下を見ろ見たいな意味です)
callとかjmpとか書いてあるときはそのcall/jmp先のアドレスを見ろてきな意味だと思います
Script/Aob仕上げ
先ほど追加したCTにあるAAScriptを右クリックで
名前を変更したり
スクリプトを変更したりできます
さぁ変更しましょう!(空だったからね)
とりあえずこんな感じに書いてOKおして保存されるので
チェックをいれたらMobにぶつかってみて下さい
たぶん無敵になっています
ret 0004を書き入れているため(3bytes)
無効化するときに元のメモリをもどしてやる必要があるので
db 6A 00 68とやっていますこれについての解説は下に書きます
AA Scriptやら
物理無敵コードの解説
アドレス:
db XX XX XX XXの形で
16進数値をアドレスのメモリに書き込めす
アドレス:
dd XXXXXXXXの形だとDWORD = 4bytesの書き込みができます
アドレス:
dd #123456の形だと整数値を書き込めます
アドレス:
dw XXXXの形だとWORD = 2bytesの書き込みができます
アドレス:
dd #12345
dw 1234
db 90 90
とか書くと
最初の4bytesに整数値12345を
次の2bytesに0x1234を
その次に0x90 0x90と書き込んでいきます
アドレス:
asm codeの形だとアドレスにasmコードを書き込みます
何バイト書き込まれるかはasmcodeによるし
きちんと分かってないとメモリが破壊されます
なぜret 0004を関数の始まりに書き込んでいるのか?
push FFやらpush ebpから始まる場所はだいたい関数の開始地点です。
ret 0004とは引数が1つの関数を終わらせる処理です
esp値をあわせてreturnしないとreturn addressを間違えて変なところに実行が移ってエラーします
まぁ関数の開始地点にreturn書き込むのが一番安全です。
どうやって引数の数を見分けるか?
Fromを関数の最初にもっていって
retを検索します
まぁ検索するとretコードが羅列されます
んできちんとWクリックしてアドレスのメモリを見てやりましょう
int CCとか次の関数がすぐそこに見えるならばだいたい関数の終了地点で間違いないです
ret 0004とあるので引数の1個関数です
なのでこれを関数の開始地点の書き込むことで
強制的に関数を終了できます
関数について
まー関数ってのはC言語でいうところのint main() { return 0;}とかいう感じの奴です
retコードに到達したときのeaxの値がreturnされる値と覚えればオーケー
んでret 引き数の数*4で関数が終了できることも覚えておこう(_stdcallの場合)
関数には2種類あります
ret 0004のようなもので終わるもの
retをかけた後に
call後に
add esp,4とやるようなもの
まぁどちらも処理は同じですが...
説明がしづらいです...
_stdcallかそうでないかと覚えればオーケー
C++で関数書いてそれの処理を割り込ませるようなことをしない限り気にする必要はない!
まぁなんでeaxの値が返り値なんてことを説明したかといいますと
楓之谷は重要な関数ほど難読化されていて
どこがcallしているのか分からない状態です
しかも複数の関数がその関数をcallしている場合
その関数を強制リターンしてしまうのはあまりよろしくない...
なので関数がcallされた後に返り値を書き換えるようなことが便利だったりするんです(Send Detectionとかね!)
ウェヘヘ...
:
夜行性さん
:2014/11/16(日) 15:42:08:
夜行性さん
:2014/11/16(日) 17:23:11:
ラナルータ
:2014/11/16(日) 17:38:43
javascript無効化してるとコメントが適用されない場合があります。
特殊タグ一覧。
画像貼り付け:[IMG]画像のURL[/IMG]
動画貼り付け:[VIDEO]YoutubeのURL[/VIDEO] Pastebin貼り付け:[CODE]PastebinのURL[/CODE]
特殊タグ一覧。
画像貼り付け:[IMG]画像のURL[/IMG]
動画貼り付け:[VIDEO]YoutubeのURL[/VIDEO] Pastebin貼り付け:[CODE]PastebinのURL[/CODE]