搜尋

kernemul核心驅動程式模擬器x86遊戲修改器

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

[電玩遊戲] 《kernemul》核心驅動程式模擬器 反作弊繞過工具下載 支援 x86-64/ARM64 雙架構、WHP/Hyper-V 後端、EAC/VGK 驅動入口繞過

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

快速閱讀精華



  • 雙後端架構:獨家支援 WHP/Hyper-V 虛擬化後端與 Unicorn 模擬後端,前者效能快、反偵測強,後者跨平臺相容
  • 雙架構支援:原生支援 x86-64 與 ARM64 兩種處理器架構,預建檔案系統隨附,無需自行提取核心二進位檔
  • 反作弊繞過:實測可通過 EAC(Easy Anti-Cheat)與 VGK(Vanguard)驅動入口檢測,380+ 核心函數重新實現
  • AI 輔助開發:核心處理器實作採用 AI 輔助生成,確保程式碼品質與相容性




前言介紹



遊戲修改與反作弊對抗的技術領域中,核心驅動程式的模擬與繞過一直是最高難度的挑戰。隨著 KEVLAR 等工具的問世,開發者們開始探索更高效、更隱蔽的模擬方案。

kernemul 正是在這樣的背景下誕生的開源專案。經過 8 個月以上的持續開發,這個工具不僅提供了與 KEVLAR 同等級的核心模擬能力,更獨家搭載了 WHP/Hyper-V 虛擬化後端,在執行速度與反偵測能力上都達到了新的高度。

重要提醒:本工具涉及 Windows 核心層級操作與反作弊繞過技術,僅供技術研究與合法遊戲修改測試使用。使用本工具可能違反遊戲服務條款,導致帳號永久停權。請務必在離線環境或自有開發環境中測試,切勿用於線上多人遊戲作弊。


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



核心功能特色



雙後端模擬架構



kernemul 最大的技術亮點在於同時支援兩種截然不同的執行後端:

  • WHP/Hyper-V 後端:利用 Windows Hypervisor Platform 虛擬化技術,直接以硬體輔助虛擬化執行客體指令。這種方式不僅執行速度接近原生,更重要的是能夠有效規避「反模擬」檢測機制——許多反作弊系統會主動檢測是否運行於模擬環境,而 WHP 後端由於本質上就是真正的虛擬機,能夠完美通過這類檢測。
  • Unicorn 後端:基於著名的 Unicorn 模擬引擎,以軟體方式模擬 CPU 指令執行。雖然速度較 WHP 慢,但優勢在於跨平臺相容性——Unicorn 後端可以在 Linux 等非 Windows 主機作業系統上順利運行,為開發者提供了更大的部署彈性。此外,Unicorn 實作支援主機多執行緒(host multitdreading),能夠同時模擬多個 vCPU。


雙架構目標支援



不同於許多僅支援 x86-64 的同類工具,kernemul 原生支援兩種處理器架構:

架構後端支援預建檔案系統
x86-64WHP 與 Unicornfs_x86_64 資料夾
ARM64Unicorn(建議)fs_arm64 資料夾


這意味著開發者可以直接模擬 ARM64 Windows 二進位檔,而無需自行提取核心二進位檔案——專案已預先準備好完整的檔案系統映像,只需解壓縮到執行目錄即可使用。

反作弊驅動入口繞過



kernemul 最實戰導向的功能,在於能夠通過主流反作弊系統的驅動層級檢測:

  • Easy Anti-Cheat (EAC):實測可通過驅動入口檢測
  • Vanguard (VGK):實測可通過驅動入口檢測(需額外修補 stub)


對於 VGK,開發者需要在模組映射時執行特定的修補程式碼,以處理 debugctl 讀回檢測。具體實作方式請參閱「EAC/VGK 使用說明」章節。

運作原理



kernemul 的核心運作機制,是將多個 Windows 核心驅動程式的函數重新實現(reimplement)。當客體(guest,即被模擬的程式碼)執行這些函數時,執行流程會被重新導向(redirect)到主機處理器(host handler)進行處理。

驅動程式模擬流程



對於被模擬的驅動程式,這種重新導向會在它們選擇執行時直接發生。具體來說,當客體驅動程式呼叫某個核心 API(如 KeSetEventExAllocatePool2 等),模擬層會攔截此呼叫,將參數傳遞給主機端重新實現的處理函數,再由處理函數執行實際的邏輯(如設定事件狀態、分配記憶體等),最後將結果返回給客體。

用戶模式應用程式模擬



對於用戶模式應用程式(usermode apps),情況稍有不同。kernemul 只會將 syscall(系統呼叫)重新導向到核心處理器。這意味著:

  • 大部分的 DLL(動態連結函式庫)可以被載入並正常運作,因為它們通常只是在用戶空間執行邏輯
  • 只有當應用程式執行系統呼叫(如 NtCreateFileNtAllocateVirtualMemory 等)時,才會被攔截並轉交給 kernemul 的核心處理器處理


這種設計讓用戶模式應用程式的模擬效率更高,因為不需要對每一個函數呼叫都進行攔截和轉發。

處理器實作範例



以下是一個典型的核心處理器實作範例,展示瞭如何處理 KeSetEvent 函數:

state.redirect(mod, "KeSetEvent",
    [](vcpu&, emu_object<_KEVENT> event, const std::int32_t increment,
        const std::uint8_t wait) -> std::int32_t
    {
        if (!event)
            return 0;

        const auto previous = win::signal_state(event);
        win::set_signal_state(event, 1);

        THREAD_LOG_INFO("KeSetEvent(event=0x{:X}, increment={}, wait={}) -> {}",
            event.address(), increment, wait, previous);

        return previous;
    });


這段程式碼展示了 kernemul 的核心設計哲學:透過 C++ lambda 函數,將 Windows 核心的內部運作邏輯重新實現,並提供詳細的日誌記錄功能,方便開發者除錯。

目前,kernemul 已經重新實現了超過 380+ 個核心函數,其中 120 個是系統呼叫(syscalls)。這些實作是針對 Windows 核心版本 26100(即 Windows 11 24H2)的內部結構所設計的。

支援架構與後端



處理器架構支援



kernemul 設計之初就考慮到多架構支援,目前完整支援兩種 64 位元處理器架構:

  • x86-64(AMD64/Intel 64):傳統桌面與伺服器處理器架構,也是目前 PC 遊戲的主流架構。kernemul 對 x86-64 提供完整的 WHP 和 Unicorn 雙後端支援。
  • ARM64(AArch64):行動裝置與新世代 Windows on ARM 裝置所採用的架構。隨著 Windows on ARM 的推進,越來越多的遊戲和應用程式開始支援 ARM64 架構。kernemul 讓開發者能夠在 x86-64 主機上模擬 ARM64 客體程式,無需實體 ARM 裝置。


模擬後端比較



kernemul 提供兩種截然不同的模擬後端,讓使用者可以根據使用場景選擇最適合的方案:

特性WHP/Hyper-V 後端Unicorn 後端
執行速度接近原生(硬體虛擬化)較慢(軟體模擬)
反偵測能力極高(本質為真實虛擬機)中等(可能被檢測為模擬環境)
主機作業系統僅 Windows(需 Hyper-V)Windows、Linux 等
多執行緒支援支援多 vCPU支援主機多執行緒
適用場景反作弊繞過、效能敏感應用跨平臺開發、快速測試


選擇建議:如果你的主要目標是繞過 EAC、VGK 等反作弊系統,或者需要執行效能接近原生的模擬環境,強烈建議使用 WHP/Hyper-V 後端。如果你需要在 Linux 主機上進行開發測試,或者只是進行功能驗證而不在意執行速度,則可以選擇 Unicorn 後端。

安裝與建置教學



預建檔案系統準備



檔案系統(Filesystems)包含了客體作業系統的檔案,這些檔案會被對應到模擬器中。你必須先下載並解壓縮檔案系統,將其放置在與執行模擬器相同的目錄中。

  • x86-64 架構:使用 fs_x86_64 資料夾
  • ARM64 架構:使用 fs_arm64 資料夾


建置指令



根據你想要模擬的客體架構與後端類型,選擇對應的 CMake 預設參數進行建置:

x64 目標 - WHP/Hyper-V 後端(僅限 x64 Windows 主機):

cmake --preset x64-whp && cmake --build --preset x64-whp


x64 目標 - Unicorn 後端(任何主機):

cmake --preset x64 && cmake --build --preset x64


ARM64 目標 - Unicorn 後端(任何主機):

cmake --preset arm64 && cmake --build --preset arm64


執行方式



將你想要模擬的映像檔(驅動程式 .sys 或執行檔 .exe)放置在對應的 fs 資料夾中。執行時,fs 資料夾必須與模擬器執行檔位於相同目錄。

基本使用語法:

usage: kernemul [image...]

examples:
  kernemul test_driver.sys
  kernemul test_printf.exe test_seh.exe
  kernemul test_driver.sys test_user.exe


EAC/VGK 使用說明



kernemul 在反作弊繞過方面的主要應用,是通過 EAC(Easy Anti-Cheat)和 VGK(Vanguard)的驅動入口檢測。實測確認,截至 2026 年 9 月,此工具在這兩套反作弊系統上都能正常運作。

建議配置:針對反作弊場景,強烈建議使用 WHP / Hyper-V 後端。相比 Unicorn 後端,WHP 不僅效能更高,更重要的是能夠更好地規避「反模擬」檢測——許多現代反作弊系統會主動檢查執行環境是否為模擬器,而 WHP 本質上是真正的硬體虛擬化,能夠完美通過這類檢測。

VGK 特殊配置



針對 Vanguard(VGK)反作弊系統,需要在模組映射(module map)時執行額外的修補程式碼,以處理 debugctl 讀回檢測機制。

修補程式碼:

void patch_dbgctl_check(process& proc, const proc_module& mod)
{
        constexpr std::uint8_t probe[] = { 0x0F, 0x30, 0x0F, 0x32 };   // wrmsr / rdmsr
        constexpr std::uint8_t answer[] = { 0x31, 0xD2, 0xB0, 0x03 };  // xor edx, edx / mov al, 3

        const auto found = std::search(mod.image.begin(), mod.image.end(),
                std::begin(probe), std::end(probe));

        if (found == mod.image.end())
        {
                LOG_INFO("{} has no debugctl read-back to patch", mod.name);
                return;
        }

        const auto rva = static_cast<addr_t>(std::distance(mod.image.begin(), found));

        proc.addr_space()->write_mem(mod.addr + rva, answer, sizeof(answer));

        LOG_INFO("patched {}'s debugctl read-back at 0x{:X} (+0x{:X})", mod.name, mod.addr + rva, rva);
}


CPUID 攔截設定:

auto patched = std::make_shared<bool>(false);

e->hook_insn(0, std::numeric_limits<addr_t>::max(), hook_insn_t::cpuid,
[patched, proc, mod](vcpu&)
{
        if (!std::exchange(*patched, true))
                patch_dbgctl_check(*proc, *mod);

        return false;
});


這段程式碼會在 CPUID 指令執行時觸發修補機制,確保 VGK 的 debugctl 檢測機制被成功繞過。

已實測的輸出日誌



開發團隊已針對 EAC 和 VGK 產生完整的輸出日誌,可供參考驗證相容性。

檔案下載點





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



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





常見問題Q&A



Q:kernemul 與 KEVLAR 有什麼不同?

A:兩者都是 Windows 核心驅動程式模擬器,但 kernemul 提供獨家的 WHP/Hyper-V 後端選項,這在 KEVLAR 中是沒有的。WHP 後端不僅執行速度更快,更重要的是能夠更好地規避反模擬檢測,對於需要通過 EAC/VGK 等嚴格反作弊系統的場景來說,kernemul 提供了更強大的技術優勢。

Q:支援哪些反作弊系統?

A:截至 2026 年 9 月的實測結果,kernemul 能夠成功通過 Easy Anti-Cheat(EAC)和 Vanguard(VGK)的驅動入口檢測。這意味著模擬的驅動程式可以載入到受這些反作弊系統保護的遊戲進程中,而不會被檢測為非法驅動。不過,反作弊系統的檢測機制會持續更新,建議使用前確認當前版本的相容性。

Q:WHP 和 Unicorn 後端該選哪個?

A:選擇取決於你的使用場景:

  • 選擇 WHP/Hyper-V 後端:如果你主要在 Windows 上運行,且需要繞過反作弊系統(如 EAC/VGK),或對執行效能有較高要求。WHP 利用硬體虛擬化,速度接近原生,且難以被檢測為模擬環境。
  • 選擇 Unicorn 後端:如果你需要在 Linux 上運行,或進行跨平臺開發測試,或只是驗證功能而不在意執行速度。Unicorn 的優勢在於跨平臺相容性,且支援主機多執行緒。


Q:ARM64 和 x86-64 有什麼差別?

A:這是兩種不同的處理器指令集架構。x86-64(也稱 AMD64)是目前桌面電腦和筆記型電腦的主流架構,由 Intel 和 AMD 處理器使用。ARM64(也稱 AArch64)則主要用於行動裝置(如智慧型手機、平板電腦)以及新世代的 Windows on ARM 裝置(如 Snapdragon 處理器的筆電)。

kernemul 的價值在於,你可以在一臺傳統的 x86-64 電腦上,模擬執行 ARM64 的 Windows 驅動程式或應用程式,無需購買實體的 ARM 裝置。這對於開發跨架構相容的修改工具或進行安全研究非常有幫助。

Q:編譯失敗或 vcpkg 初始化錯誤怎麼辦?

A:常見的編譯問題通常與資料夾命名或相依性有關:

  • vcpkg 初始化失敗:如果你從原始下載連結取得的資料夾名稱包含 '[]_' 前綴,請務必將其移除。vcpkg 對路徑中的特殊字元敏感,這個前綴會導致相依性管理工具無法正常初始化。
  • CMake 預設找不到:確認你已正確複製專案儲存庫,且 CMake 版本為 3.20 以上。建議使用 Visual Studio 2022 的開發人員命令提示字元執行編譯指令。
  • WHP 後端編譯失敗:確認你的 Windows 版本支援 Hyper-V(Windows 10/11 專業版或企業版),且已在「開啟或關閉 Windows 功能」中啟用 Hyper-V 和 Windows Hypervisor Platform。


如果問題持續,建議檢查專案的 GitHub Issues 頁面或相關論壇討論串,確認是否有針對你遇到問題的已知解決方案。

技術貢獻與致謝



本專案的開發得益於以下貢獻者的協助與支援:

  • John (@Iraq1337):協助處理 EAC 相關的除錯問題、提供技術想法,以及部分函數實作處理器的實現。
  • @LOLz5465az:協助改善 Unicorn 後端的反模擬檢測規避機制。


此外,專案在開發過程中廣泛運用了 AI 輔助技術,特別是在覈心處理器(kernel handler)的實現方面,藉此確保程式碼的品質與相容性達到最佳水準。

本專案為開放原始碼軟體,歡迎社羣貢獻更多核心函數的實作——目前仍有許多進階應用程式所需的 API 尚未實現,你的貢獻將能讓 kernemul 支援更多複雜的使用情境。





大家正在看啥


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

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

本版積分規則

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

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

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