搜尋

x64 自訂虛擬機x64自訂虛擬機遊戲修改器

返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

[電玩遊戲] 《x64 自訂虛擬機》CE修改器必備 MSVC C++ 開源下載 繞過簽名掃描、混淆程式碼、Runtime 動態修改教學

[複製連結]
1
巴利6231 ( Lv.30 大天使 ) 發表於 7 小時前 | 只看該作者 回覆獎勵 |降序瀏覽 |閱讀模式

《x64 自訂虛擬機》快速閱讀精華



  • 零依賴設計:純 MSVC C++ 撰寫,無需額外函式庫,編譯即可使用 🔧
  • 雙模式支援:同時支援 32/64 位元運算模式,彈性應對不同遊戲架構 🔄
  • 硬體級暫存器:內建 256 個暫存器 + 2048 槽固定堆疊,溢位保護機制確保穩定 💪
  • 混淆與防護:有效繞過遊戲簽名掃描,將關鍵邏輯置於 VM 內執行,大幅提升外掛/修改器存活率 🛡️
  • 外部回調支援:透過 VMCALL 機制無縫串接外部 C++ 函式,擴展性極佳 🔗


[nextpage]



[nextpage]


前言:為什麼遊戲修改需要自訂虛擬機?



在現代遊戲防護機制日益嚴密的環境下,傳統的Cheat Engine (CE修改器) 7.5 漢化版 中文版腳本或記憶體修改很容易被反作弊系統(如 EAC、BattlEye)透過簽名掃描(Signature Scanning)偵測到。這時候,我們需要一個更隱蔽的執行環境——自訂虛擬機(Custom Virtual Machine)。

這款由開發者打造的 x64 自訂虛擬機,採用 MSVC C++ 撰寫,具備零依賴特性,編譯後即可獨立運作。它能將你的修改邏輯編譯成獨特的位元組碼(Bytecode),在 VM 內部執行,有效繞過遊戲對特定程式碼簽名的偵測,大幅提升修改器的存活率與隱蔽性。



👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app



[nextpage]


功能特色心得分享



這款自訂 VM 並非陽春的玩具專案,而是具備完整工業級設計的虛擬機實作。以下為其詳細技術規格:


虛擬機架構設計



  • 雙模式執行引擎:支援 32 位元與 64 位元運算模式,可根據目標遊戲架構切換,彈性應對不同位元環境。
  • 256 個通用暫存器:提供充足的暫存器空間,減少堆疊操作頻率,提升執行效率。
  • 固定堆疊設計:內建 2048 個槽位的固定堆疊,具備溢位保護機制(Overflow Protection),防止惡意或錯誤程式碼造成緩衝區溢位攻擊。



完整指令集支援



  • 完整算術運算:支援加、減、乘、除等基礎運算,以及位元運算(AND、OR、XOR、SHIFT)。
  • 條件分支機制:支援基於暫存器或堆疊數值的條件跳轉(Conditional Branching),實現 if/else、while 等邏輯控制。
  • 副程式支援:提供 PUSHPC(儲存程式計數器)與 RET(返回)指令,支援函式呼叫與返回,實現模組化程式設計。
  • VMCALL 外部回調:透過 VMCALL 指令,可無縫呼叫外部 C++ 函式,將 VM 與主程式或其他 API 串接,擴展功能邊界。
  • 記憶體操作:支援指標解引用(Dereference)、載入(Load)與儲存(Store)操作,可直接操作主機記憶體空間。


[nextpage]


安裝與編譯教學



由於此專案採用「零依賴」設計,編譯過程相對單純,只需確保你的開發環境具備以下條件:


環境需求



  • 作業系統:Windows 10/11(x64 架構)
  • 編譯器:Microsoft Visual C++ (MSVC) 2019 或更新版本(支援 C++17 以上標準)
  • 開發環境:Visual Studio 2019/2022(建議使用 Community 版本即可)
  • 記憶體:至少 4GB RAM(編譯時建議關閉其他大型應用程式)



編譯步驟



  • 下載原始碼壓縮檔並解壓縮至工作目錄。
  • 開啟 Visual Studio,選擇「開啟專案/方案」,找到解壓後的專案檔(.sln 或 .vcxproj)。
  • 在「方案平臺」下拉選單中,選擇 x64(此 VM 主要針對 64 位元應用程式設計)。
  • 於「方案總管」中的專案上按右鍵,選擇「屬性」:
       

         
    • 確認「C/C++」→「語言」→「C++ 語言標準」設為 ISO C++17 標準 (/std:c++17) 或更高。
         
    • 確認「一般」→「平臺工具組」設為 Visual Studio 2019 (v142)Visual Studio 2022 (v143)
         
  • Ctrl+Shift+B(或選單「建置」→「建置方案」)開始編譯。
  • 若編譯成功,會在 x64\Release\(或 x64\Debug\)目錄下產生可執行檔(.exe)。
  • 開啟命令提示字元(CMD)或 PowerShell,切換至輸出目錄,執行 .\YourProgramName.exe 測試 VM 是否正常運作。


[nextpage]


使用範例實作:印出 42



以下為開發者提供的標準範例,展示如何初始化 VM、建立位元組碼、呼叫外部函式,並執行簡單的數值輸出。

首先,我們需要包含標頭檔並定義外部回調函式:

#include "vm.hxx"
#include <IOStream>

// 定義外部回調函式,用於印出堆疊頂端的數值
static void print_value(vm::vm_t* vm) {
    uint64_t val = vm->stack_.pop();  // 從 VM 堆疊彈出數值
    std::cout << val << std::endl;    // 輸出到控制檯
}


接著,在 main() 函式中建立 VM 實例並編寫位元組碼:

int main() {
    // 建立程式碼建構器,模板參數 128 表示初始緩衝區大小
    vm::code_builder_t<128> builder;

    // 設定 64 位元執行模式
    builder.s64();
   
    // 將數值 42 推入堆疊(這是要印出的數字)
    builder.pushi64(42);
   
    // 將外部函式 print_value 的位址推入堆疊
    builder.pushi64((uint64_t)(print_value));
   
    // 呼叫外部函式(會印出 42)
    builder.vmcall();
   
    // 結束 VM 執行
    builder.vmexit();

    // 初始化 VM 實例
    vm::vm_t vm;
    vm.code_ = builder.code_;                    // 載入編譯後的位元組碼
    vm.code_size_ = static_cast<int32_t>(builder.index_);  // 設定程式碼大小
    vm.ip_ = 0;                                  // 指令指標歸零
    vm.use_64_ = true;                           // 啟用 64 位元模式
   
    // 執行 VM
    vm.run();

    return 0;
}


執行結果:
42


這個範例展示了 VM 的核心工作流程:
  • 使用 code_builder_t 建構位元組碼指令流
  • 透過 pushi64 將立即值推入堆疊
  • 使用 vmcall 指令呼叫外部 C++ 函式(實現 VM 與宿主程式的互動)
  • 最後以 vmexit 結束執行
  • VM 實例透過 vm.run() 開始解譯執行位元組碼


[nextpage]


核心程式碼整理



這款 VM 的設計哲學是「極簡但完備」。其核心架構可分為三大部分:

1. 執行引擎(Execution Engine)
採用傳統的「讀取-解碼-執行」(Fetch-Decode-Execute)循環。透過 ip_(Instruction Pointer)追蹤目前執行位置,支援 32/64 位元模式切換,確保在不同架構的遊戲中都能正確運作。

2. 記憶體模型(Memory Model)
採用「暫存器機(Register Machine)」設計,配備 256 個通用暫存器(General Purpose Registers),減少對堆疊的依賴,提升執行效率。同時配備 2048 個槽位的固定堆疊,內建溢位檢查,防止惡意程式碼造成緩衝區溢位。

3. 指令集架構(ISA)
支援完整的算術邏輯運算(ALU)、位元操作、條件分支(Branching)、副程式呼叫(Call/Return)以及外部呼叫(VMCALL)。這使得開發者可以在 VM 內實現複雜的遊戲邏輯修改,同時保持程式碼的混淆性與安全性。



👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app



[nextpage]


檔案下載點 🔽



以下提供原始碼壓縮檔下載,包含完整 MSVC C++ 專案檔、標頭檔與範例程式碼。



所有站內附件皆會附上安全掃描報告
請會員查看純淨度百分比後判斷使用



相關檔案須知:
取得檔案前,請先詳細閱讀文章內容
避免不必要錯誤與誤會發生。
也可多參考文章討論樓層內容
了解附件檔案相關討論資訊。





[nextpage]


常見問題Q&A



Q:這個虛擬機可以繞過哪些遊戲的反作弊系統?
A:此 VM 主要設計用於繞過基於簽名掃描(Signature Scanning)的偵測機制,例如部分遊戲使用的簡易反作弊或使用者模式保護。對於核心級(Kernel-level)反作弊如 Vanguard 或 EAC 的高階模式,仍需搭配其他技術(如驅動層隱藏)才能達到完全隱蔽。建議僅用於離線模式或學習用途。

Q:我需要學會 C++ 才能使用這個工具嗎?
A:是的,這是一個給程式開發者使用的底層工具,非即開即用的外掛程式。你需要具備 C++ 基礎,理解指標、記憶體管理、函式指標等概念,才能正確編譯並整合到你的修改器專案中。如果你是初學者,建議先學習 《Cheat Engine》V7.6 中文化版 的基本操作後,再來研究此進階工具。

Q:為什麼使用虛擬機比直接用 Lua 腳本更安全?
A:Lua 雖然方便,但程式碼結構特徵明顯,反作弊系統很容易透過簽名辨識出 Lua 直譯器或常見的 Lua 腳本模式。而這款自訂 VM 使用獨創的指令集與編碼方式,每次編譯後的位元組碼結構都不同,且沒有公開的特徵庫可供比對,大幅提高了靜態分析與簽名掃描的難度。簡單來說,這就像是「用自己的密語寫信」,別人就算攔截到也看不懂。

Q:我可以將這個 VM 用於商業專案嗎?
A:此專案為技術展示與學術交流性質,原始碼雖開放但使用時需注意法律風險。若用於商業遊戲外掛或破壞遊戲平衡之用途,可能違反遊戲服務條款甚至觸法。建議僅用於單機遊戲修改、逆向工程學習、或自有軟體的保護與混淆機制開發。

Q:編譯時出現「無法開啟包括檔案: vm.hxx」錯誤怎麼辦?
A:這通常是專案設定中的「包含目錄」路徑不正確所致。請在 Visual Studio 的「專案屬性」→「C/C++」→「一般」→「其他包含目錄」中,確認已加入 vm.hxx 所在的資料夾路徑(通常就是專案根目錄)。若使用相對路徑,建議設為 .\$(ProjectDir) 以確保可移植性。

[nextpage]


參考資料









大家正在看啥


收藏收藏 分享文章到FB上分享
回覆 使用道具 檢舉
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單