CE-Handwire 是一款使用原生 C++ 開發的高效能 Cheat Engine (CE) 插件,旨在消除重複的手工動作並強化記憶體調試流程。不同於 Lua 腳本,CE-Handwire 直接透過 Plugin API 運行,確保最佳的穩定性與執行效率。
一鍵自動化整理您的 Address List。
- 輸入篩選字串(例如
Ammo),所有符合的記錄將自動加上零補齊的序號。 - 選項:忽略大小寫、自訂起始號碼、位數寬度(例如 3 位 →
001)、數字前是否加空白。 - 快捷鍵:
Ctrl+Shift+R。 - 透過 CE 的 Lua 引擎 (
GetLuaState()) 驅動,一次掃描整個 Address List。
強化斷點觸發時的暫存器與堆疊視圖。
- 透過 Lua
debug_getContext()讀取 CE 調試器的暫存器狀態,數值與 CE 的 Registers 面板完全一致。 - 指標資料預覽 (Pointer Data View):自動追蹤(Dereference)每個暫存器的指標,顯示該位址存放的實際數值(hex bytes、i32、f32)。
- 模組+偏移顯示:透過
sym_addressToName將暫存器值解析為module+offset格式。 - 運算元追蹤整合:首行顯示當前指令的有效記憶體位址及其數值(見下方功能 3)。
透過 Zydis 指令解碼與反組譯器深度整合,結果顯示於指標檢視器 UI 中。
- 針對如
mov eax, [rdx+14]的指令,自動計算有效位址(base + index*scale + disp)並讀取該位址的數值。 - 型別感知顯示:整數指令顯示有號(無號),SSE 純量指令顯示 float/double,使用 CE 風格的十進位格式。
- 模糊指令:
movd/movq同時顯示整數與浮點數的解讀。 - SIMD 向量:
movaps/movups/movdqu等顯示 16 位元組的 hex AOB。 - REP 字串操作:
rep movsb/rep stosd等顯示 RCX 計數 + 來源/目的位址及 8 位元組 AOB 預覽。
在反組譯器中利用暫存器值快速導航,附帶完整歷史紀錄。
- 暫存器即書籤:將暫存器內容視為快速跳轉的「書籤」,在反組譯器中迅速切換至目標位址,並能立即跳回調試器目前的指令位置。
- 指標位址追蹤:將暫存器視為指標,在記憶體檢視器中快速跳轉至該指標所指向的數據位址。
- 返回堆疊可儲存最多 32 個歷史位址,方便快速回溯。
在記憶體檢視器中建立書籤,一鍵跳轉。
- 依程式分組儲存:書籤按附加的程式名稱分組(例如
game.exe),支援 LRU 淘汰機制(最多 5 個模組、每模組 10 筆書籤)。 - 自動偵測模組:計時器驅動(5 秒間隔),自動切換至當前程式的書籤群組。
- 標籤以
module+offset格式顯示(例如:game.exe+12345678),點擊即可跳轉。 - 持久化儲存:書籤存於
CE-Handwire-bookmarks.txt,重啟後自動載入。
- 開發語言:C++ (Native Plugin)
- 指令解碼引擎:Zydis (用於極速指令解析)
- 腳本引擎:Lua 5.3(透過 CE 的
lua53-64.dll,用於 Address List 操作) - API:Cheat Engine Plugin SDK
- Visual Studio 2026 (v18, MSVC v145) 含 C++ Desktop 工作負載
- Zydis repo 克隆為同層目錄:
D:\Github\Zydis
# 一鍵建置(設定 + 編譯):
build.bat
# 或手動透過 VS Developer Command Prompt (amd64):
cmake --preset x64-debug && cmake --build --preset x64-debug
cmake --preset x64-release && cmake --build --preset x64-release輸出:build/x64-debug/CE-Handwire.dll + CE-Handwire-TestTarget.exe
# 產生解決方案:
gen_sln.bat
# 在 VS2026 中開啟:
build\vs\CE-Handwire.sln修改 CMakeLists.txt 後需重新執行 gen_sln.bat。
設定 CE_PLUGINS_DIR 可在建置後自動複製 DLL 到 CE:
cmake --preset x64-debug -DCE_PLUGINS_DIR="C:/path/to/CheatEngine/plugins"- 建置或下載
CE-Handwire.dll。 - 將其放入 Cheat Engine 安裝目錄下的
plugins資料夾。 - 開啟 Cheat Engine,進入 Edit -> Settings -> Plugins,加入並勾選啟用 CE-Handwire。
內建一支獨立 EXE (CE-Handwire-TestTarget.exe),用於測試插件功能,無需開啟真實遊戲。
- 建置專案(DLL 與 EXE 會一起編譯)。
- 執行
CE-Handwire-TestTarget.exe。 - 將 Cheat Engine 附加到該程式。
- AOB 掃描
43 45 54 45 53 54 00 00以定位變數區塊。 - 變數(byte, word, dword, float, double 等)從簽名後 8 bytes 開始,每個變數間隔 8 bytes。
- 按 [M] 手動變動一次數值,[A] 切換自動變動(~500ms),[+/-] 調整變動間隔,[Q] 退出。
測試目標程式會刻意產生各種記憶體存取指令(mov [reg+offset]、addss xmm 等),供 CE 的「尋找存取/寫入該位址的指令」功能使用。
所有 5 個插件模組已實作完成:
- 智慧批次更名(全掃描 Lua 模式)
- 調試器指標檢視
- 彙編指令運算元追蹤 (Zydis)
- 暫存器跳轉(含返回堆疊)
- 記憶體檢視器書籤(依程式分組、持久化)
- 測試目標程式
- 數值夾位 (Value Clamp) — CE 記憶體記錄使用指標鏈時,解析後的位址會在執行期間變動,導致儲存的位址失效。此功能與 CE 內建的凍結 (Freeze) 功能高度重疊。
- 存取記錄器 (AccessLogger) — 經多次嘗試後移除;CE Plugin SDK 的 Type 2(除錯事件)回呼中無法取得可用的暫存器上下文或指令位址。
- 靜態連結 DLL 輸出:確保極致的效能表現與系統穩定性,減少外部相依性。
- 支援原生偵錯:可直接使用 Visual Studio 的原生偵錯器(Native Debugger)對 Plugin DLL 進行深度調試。
- Visual Studio 2026:支援 C++23 標準。
- MSVC v145:使用最新的編譯工具鏈。
- CMake 3.25+:搭配 Ninja 產生器,支援快速增量建置。
- IDE 整合:專案可透過
gen_sln.bat產生 VS2026 解決方案直接開發。
MIT