2023年1月15日 星期日

CE (Cheat Engine)指標 (pointer) 遊戲修改應用教學

用Cheat Engine (以下簡稱CE) 改遊戲的人應該會遇到一個問題,在重開遊戲後需要重新找要修改

的東西所在的記憶體位址。其實CE有提供指標的功能,簡單說就是找出記憶體的相對位址,

這樣每次重開遊戲就不需要重新找一次了。


這邊做一個簡單的教學(其實是我常忘,寫個備忘錄)。

在此我們用snes9x64及ce7.4 64做驗證,如果用32位元的程式就用ce7.4 (32),我們在此使用

64 bit的版本做示範。


開啟snes9x,然後開啟三國志3,接著選擇第一時期(189年),我們選擇劉備,他目前住在平原。

目前黃金是2300,先用模擬器的功能做隨機存檔。接著我們用簡單的搜尋功能,找到其目前記

憶體位址 (長度是2 byte)。這邊的操作不再細述。


接著我們再讀存檔,取回黃金2300的狀態。


我們將這筆記錄按兩下左鍵,丟到下面的修改區。接著對這一筆記錄按右鍵,點選

『Find out what writes to this address』


會有確認視窗,按Yes即可。

一張含有 文字 的圖片

自動產生的描述

然後會跳出一個監控視窗,它目前是空的。


跟著我們再花100元。再回頭看這個監控視窗,在Instruction的部份已經有東西了。

接著點選『More information』



再來就是關鍵了,CE建議的位址是:『04E0ECF0』在這頁是RDX的位址,我們儲存備用

(對它點右鍵就會提示自動複製)。但我們看一上面的組合語言:它是『rcx+rdx』,

RCX是它的偏移位址,它是『000028C0』同樣存下來備用。(另外開一個文字檔來存它)

一張含有 文字 的圖片

自動產生的描述


回到CE的搜尋視窗,開始一個新搜尋,勾選Hex,長度改為4 Bytes,輸入04E0ECF0,

找出誰的值是它。我們找到一堆,通常是第一個,如果不是就一直往下試。我們這個例子

剛好是第一個。



對第一筆按兩下左鍵,讓它跑到下方的修改區。接著對它的位址『1408D8BE8』點兩下左鍵。

它的Address是『”snes9x-x64.exe”+8D8BE8』,把它複製起來。

一張含有 文字 的圖片

自動產生的描述



快要完成了,我們點選右下角『Add Address Manually』,先點選『Pointer』,再來要輸入

offset,我們把之前備份的『000028C0』貼上去,接著來指標的位址,我們貼上剛剛複製的

:『”snes9x-x64.exe”+8D8BE8』,記得Type要改成『2 Bytes』因為我們的原始搜尋就是2 bytes。

最後我們看一下Address下方欄右邊的數字,已經變成2200塊了。看來我們大功告成了 ,

我們點選『OK』讓它跑到下方的編輯區。


最後我們對這一筆點選『Active』,滑鼠對『No description』點選兩下左鍵改成『189-平原金』

以茲識別。最後再點選Value將它改成5000做測試。


有趣的是,你改完指標資料之後,第一次找到記憶體位址也一併修改了。因為它本來就是結果,

是記憶體互相指來指去的結果,但我們找到的是最原始的指標,是用來找到這些記憶體存放位

址的方式(相對於snex9x的位址)。即使我們下次開遊戲前電腦已做過各項操作,但它永遠會是正

確的。

一張含有 文字 的圖片

自動產生的描述


我們回到遊戲,也可以看到它變成5000塊了。記得要刷新一下畫面,開啟幾個指令再取消。

一張含有 地圖 的圖片

自動產生的描述


我們將作弊碼碼存檔,點選左上角File,點選Save as ,再隨意取個檔名存檔。在此我用san3j。

一張含有 文字 的圖片

自動產生的描述


最後我們關掉模擬器跟CE,然後隨便做一些操作。看重新載入遊戲及修改器時,這個作弊碼

能不能正常運作。我們依序開啟模擬器載入遊戲,讀入剛剛的隨機記憶。這個時候還是2300元

一張含有 地圖 的圖片

自動產生的描述

接著開啟CE,然後讀取模擬器的程式,再讀取剛剛儲存的CT檔。

(你也可以直接對CT檔按兩下左鍵,它會自己呼叫CE,你再從CE讀取模擬器的主程式)


接著將189-平原金Actvie,再修改其數值為5000。這邊可以觀察一下,之前一開始找到的

04E115B0已經變成跟2300元無關的16068了。

一張含有 文字 的圖片

自動產生的描述


接著我們回到遊戲,再切換一下視窗。變回5000元囉。真方便,不需要每次都搜尋一次。

一張含有 地圖 的圖片

自動產生的描述


在此說明一下,這個範例比較簡單,只有一次偏移(offset),實務上有可能會遇到偏移兩次、

三次、甚至四次的CASE。就再麻煩讀者自行評估哪種方便了。



沒有留言:

張貼留言