作者:
luciffar (自動手槍人偶)
2025-06-21 14:31:21那是不會用的關係吧
AI其實是很好的老師
有甚麼問題問他就對了
例如我這個程式小白
問了AI一段程式碼
他直接告訴我是甚麼軟體寫的
並且給我一個最直接"有用的"方案
幫我解決問題 這不是很方便嗎?
下面會解說問了啥
沒興趣看的可以直接跳過惹
我用CE(CHEAT ENGINE 修改遊戲數值的軟體俗稱金手指或修改器)
修改金錢遇到一些問題
就是每過一關記憶體都會亂跳
所以每一關都要重新找過一次
於是問了GPT老師這該怎麼辦
我其實是只貼了原始程式碼進去
甚麼都沒問 他就直接給出建議惹
而且居然能跑也沒出錯@@
超強的!!!
就只加入了這一段就好了
mov eax,9999999 // 把數值改成 9999999
他就開始智能追蹤每一場的記憶體
我只要存檔打勾讓他運行就好了
而且非常詳細的解說每行程式在寫啥
去哪邊找這麼棒的老師啊^^
下面貼出完整對話:
對程式碼沒興趣看的可以再次跳過
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,1E102AF7443)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov eax,9999 // 把數值改成 9999 GPT直接給我答案叫我在這行插入這句既可
originalcode:
mov [rdi+000003D8],eax
exit:
jmp returnhere
1E102AF7443:
jmp newmem
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
1E102AF7443:
db 89 87 D8 03 00 00
//mov [rdi+000003D8],eax
ChatGPT 說:
你這段是標準的 Cheat Engine 注入腳本,目的是攔截並修改位於地址 1E102AF7443 的
指令,以修改某個結構體中偏移 +0x3D8 的數值。這樣的腳本常用來實現修改血量、金錢
、彈藥等遊戲內數值。
以下是腳本功能的說明與一些潛在的建議:
功能解釋
‧ alloc(newmem,2048,1E102AF7443):分配 2048 bytes 記憶體,用來放置你自己
的程式碼。
‧ jmp newmem:將原本的遊戲程式跳轉到你分配的區域(hook)。
‧ originalcode: 區段目前只保留了 mov [rdi+000003D8],eax,這是原本指令,表
示將 EAX 的值寫入 RDI + 0x3D8。
‧ exit::回跳到原本程式碼的下一行。
可擴充區域(newmem)
你可以在 //place your code here 加入自己的邏輯,例如:
assembly
複製編輯
mov eax,9999 // 把數值改成 9999
範例:
assembly
複製編輯
newmem:
// 自訂邏輯,將該記憶體值強制設成9999
mov eax,9999
mov [rdi+000003D8],eax
jmp returnhere
[DISABLE] 部分
恢復原始指令:
assembly
複製編輯
1E102AF7443:
db 89 87 D8 03 00 00 // 對應 mov [rdi+000003D8],eax
這行正確無誤,會把 hook 還原。
注意事項
1. 確保 1E102AF7443 是可寫入的記憶體(否則注入可能會當機或失效)。
2. 如果遊戲是 64 位元的,請注意偏移與寄存器的大小(例如 RAX vs EAX)。
3. 若該指令位於迴圈中,請小心頻繁改寫可能導致遊戲邏輯錯亂。