遊戲輔助 | 小朋友下樓梯 (C# 血量、階層修改器)
工具準備
Cheat Engine
Visual 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