遊戲輔助 | 植物大戰殭屍 (C# 打不死的植物)
工具準備
Cheat Engine
Visual Studio
Plants vs. Zombies
行前準備
- 閱讀x86組合語言教學。
- 閱讀Cheat Engine基本教學。
輔助構思
- 透過
Cheat Engine
抓取扣血的地址並分析 - 使用
C#
呼叫Win32API
進行修改
CE補充
有時你可能不知道要搜索的值的確切編號,或者它更改得太快而無法正常掃描。這就是為什麼Cheat Engine
提供了幾種尋找值的方法。
無論你是否知道,這些掃描選項都可以查找任何值。
可用的選項分為兩個:“第一次掃描”選項和“下次掃描”選項。
首次掃描選項為
Exact Value
(確切值)Bigger than...
(比…更大)Smaller than...
(比…小)Value between...
(之間的值…)Unknown initial value
(初始值未知)
下一步掃描選項是
Exact Value
(確切值)Bigger than...
(比…更大)Smaller than...
(比…小)Value between...
(之間的值…)Increased Value
(增值)Increased Value by...
(價值增加…)Decreased Value
(價值下降)Decreased Value by...
(價值下降…)Changed Value
(變更值)Unchanged Value
(不變價值)Same as First Scan
(與第一次掃描相同)
所有這些選擇都能說明一切。Cheat Engine
會記住上一次掃描中找到的值,從而使其能夠將新值與舊值進行比較並還原為上一次掃描。它還會記住“首次掃描”的值。
找尋基址
- 開啟
Plants vs. Zombies
主程式 - 稍微遊玩到可以種植
牆果
- 開啟
Cheat Engine
- 選擇
Plants vs. Zombies
程序
- 根據遊戲輔助 | 植物大戰殭屍 (C# 陽光修改器)文章提及基址
- 此時手動添加地址
006A9EC0
、006A9F38
加上偏移量768
和5560
(反向) - 修改數值為
9999
方便之後的分析
- 等待殭屍出現
- 種植
牆果
植物到最前線
- 選擇
Unknown initial value
(初始值未知),首次搜尋
- 殭屍咬到
牆果
- 再次搜尋
Decreased Value
(價值下降) - 反覆多次觀察數值變動
- 最終找到
0F7742D8
(每次都會不一樣) - 對該地址點擊兩下,新增至下方的作弊表內
- 修改數值變
5000
,發現牆果從破損狀態恢復成完整狀態
註:搜尋的示範GIF圖檔太大,影響頁面Loading速度,固直接提供GIF檔下載點我下載
- 對
0F7742D8
右鍵選擇Find out what writes to this address
(找出是什麼改寫了這個地址) - 會開啟
The following opcodes write to 0F7742D8
視窗
- 回到
Plants vs. Zombies
- 讓殭屍繼續咬
牆果
- 回至
Cheat Engine
- 可見
The following opcodes write to 0F7742D8
視窗內多一筆資料
- 點擊該筆資料
1 | EAX=00000000 |
這邊要知道的是做
add
這個指令是在哪個地址,發現是0052FCF0
這邊可以判定為,當殭屍咬食
牆果
,這地址做的動作是加-04
點擊
Show disassembler
- 代碼修改
1 | // 修改前 |
- 注意最十六進位資料變化
1 | // 修改前 |
- 第四個位置由
FC
變成00
- 所以要修改的地址為
0052FCF3
註:修改玩代碼後,可以回到
Plants vs. Zombies
看殭屍咬食牆果
是否數值不會動了。
編寫輔助
沿用上一章節的PZCheat project
程式碼來進行修改
- 調整
PZHelper
1 | using System; |
- 開啟
Form1.cs[設計]
- 新增一個
CheckBox
雙擊
CheckBox
建立CheckedChanged
事件撰寫程式
1 | private Boolean lock_blood = false; |
重開
Plants vs. Zombies
運行測試
勾選
CheckBox
開始遊玩遊戲,發現植物不會扣血
恭喜打不死的植物的修改完成
註:如要分享
.exe
檔案,請到專案目錄下的Debug
資料夾內,將其全部複製給別人即可。注意因為使用C#撰寫,對方的電腦要有安裝.NET Framework
才可執行。
註:以上參考了
植物大戰殭屍 (Plants vs Zomebies) 遊戲簡介、下載與完整攻略
植物大战僵尸(5) 打不死的植物