遊戲輔助 | 小朋友下樓梯 (C# 血量、階層修改器)
工具準備
Cheat EngineVisual Studio
行前準備
- 閱讀x86組合語言教學。
- 閱讀Cheat Engine基本教學。
- 閱讀x64dbg教學。
輔助構思
- 透過
Cheat Engine抓取血量基址與偏移量 - 使用
C#呼叫Win32API進行記憶體讀寫
找尋基址
- 開啟
down.exe程式

- 開啟
Cheat Engine - 選擇
down.exe程序 (00000C50-NS-SHAFT)

- 回到
down.exe - 並開啟一場新遊戲,並馬上按下暫停
- 回到
Cheat Engine - 新的搜尋
12(滿血量為12格)

- 回到
down.exe - 讓血量扣血,然後快速再次暫停
- 其血量格數為
7

- 回至
Cheat Engine - 再次搜尋
7 - 僅剩下一個地址
002BCD48(每次都會不一樣)

對該地址點擊兩下,新增至下方的作弊表內
對
002BCD48右鍵選擇Find out what writes to this address(找出是什麼改寫了這個地址)會開啟
The following opcodes write to 002BCD48視窗

- 回到
down.exe - 讓血量扣血,或是去踩台階會加血
- 這邊示範踩台階加血
- 其血量格數為
8 - 回至
Cheat Engine - 可見
The following opcodes write to 002BCD48視窗內多一筆資料

- 點擊該筆資料
1 | EAX=00000000 |
- 可以發現指針
002BBBD8,偏移量00001170

- 回至
Cheat Engine - 勾選
Hex - 新的搜尋,
002BBBD8 - 搜尋出四個地址
0018F564、0018F920、0018FD88、0018FDA0

- 針對這四個基址右鍵選擇
Find out what accesses to this address(找出是什麼訪問了這個地址) - 發現只有
0018FD88、0018FDA0這兩個地址有一直被訪問 - 點擊
Add Address Manually - 針對兩個地址手動添加地址,透過基址加上偏移量
1170 - 發現兩個地址對應出來的值都是
8

註:即便重新開啟遊戲或是新的一輪都可以透過基址加上偏移量找到血量的地址。
- 此時針對「階」做搜尋
- 回到
down.exe - 重新開啟新一的一局,並馬上暫停,讓其維持在
地下0001階 - 回至
Cheat Engine - 新的搜尋,
1(記得取消勾選Hex)

回到
down.exe讓階變動,然後快速再次暫停,讓其維持在
地下0002階回至
Cheat Engine再次搜尋
2僅剩下兩個地址
002BCED4、002BCED8(每次都會不一樣)

對
002BCED8地址點擊兩下,新增至下方的作弊表內對
002BCED8右鍵選擇Find out what writes to this address(找出是什麼改寫了這個地址)會開啟
The following opcodes write to 002BCED8視窗

回到
down.exe讓階變動,然後快速再次暫停,讓其維持在
地下0003階回至
Cheat Engine可見
The following opcodes write to 002BCED8視窗內多一筆資料

- 點擊該筆資料
1 | EAX=002BBBD8 |
- 可以發現指針
002BBBD8,偏移量00001300
註:此時可以發現指針
002BBBD8與找血量的時候一摸一樣。

- 回至
Cheat Engine - 勾選
Hex - 新的搜尋,
002BBBD8 - 搜尋出四個地址
0018F564、0018F920、0018FD88、0018FDA0
註:此時可以四個地址與找血量的時候一摸一樣。

- 點擊
Add Address Manually - 針對兩個地址
0018FD88、0018FDA0手動添加地址,透過基址加上偏移量1300 - 發現兩個地址對應出來的值都是
3

註:即便重新開啟遊戲或是新的一輪都可以透過基址加上偏移量找到階層的地址。
編寫輔助
啟動
Visual Studio新增專案
Visual C\#->Windows 傳統桌面->Windows Forms App (.NET Framework)- 名稱
DownCheat
- 名稱
新增項目
Class類別- 名稱
DownHelper
- 名稱
新增以下代碼
- 用於
Call Win32 API DLL,針對指定程序進行記憶體讀寫
- 用於
1 | using System; |
- 開啟
Form1.cs[設計] - 新增兩個
TextBox、兩個Button

雙擊
Button1建立Click事件雙擊
Button2建立Click事件撰寫程式
1 | using System; |
運行測試
持續點擊
Button1可以一直將血量拉滿點擊
Button2可以發現階層快速爬升到你設定的階層
註:如要分享
.exe檔案,請到專案目錄下的Debug資料夾內,將其全部複製給別人即可。注意因為使用C#撰寫,對方的電腦要有安裝.NET Framework才可執行。
註:以上參考了
小朋友下樓梯輔助程式
Download Games
