Rust 語言實作教學、DirectX 11 繪製框架、外部輔助開發指南
《Dead by Daylight》Rust egui DX11 External 外掛框架 快速閱讀精華
- 🔥 什麼是 External Hack? 不修改遊戲檔案,僅透過記憶體讀取實現透視、加速等功能,風險相對較低
- 🛠️ 核心技術堆疊:Rust 語言 + egui 圖形介面 + DirectX 11 繪製後端 + Win32 API 視窗覆蓋
- 💡 適用場景:學習遊戲記憶體操作、開發外部覆蓋層工具、理解反作弊機制原理
- ⚠️ 風險提醒:使用於線上遊戲可能導致帳號永久停權,建議僅用於離線學習或私人伺服器
前言介紹
想要開發遊戲外部輔助工具卻不知道從何下手?這篇文章帶你認識一套以 Rust 語言打造的 External Hack 框架,結合 egui 圖形介面與 DirectX 11 繪製技術,能夠在遊戲畫面上方建立透明覆蓋層,實現 ESP 透視、數據顯示等功能。
這套框架的核心價值在於「外部運作」——不注入遊戲行程、不修改執行檔,僅透過讀取記憶體數據來呈現資訊。這種方式在技術學習與原理研究上具有相當大的參考價值。
⚠️ 重要提醒
- 本框架僅供技術學習與研究用途
- 使用於《Dead by Daylight》等線上遊戲可能觸犯服務條款,導致帳號永久停權
- 建議在離線模式或私人伺服器進行測試
- 反作弊系統(EAC)持續更新,任何外掛工具均存在被偵測風險
👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app

技術架構解析
這個專案採用了現代化的技術組合,讓開發者能夠用相對簡潔的程式碼實現複雜的視覺效果:
| 技術元件 | 功能說明 | 版本建議 | | Rust | 系統級程式語言,提供記憶體安全與高效能 | 最新穩定版 | | egui | 即時模式 GUI 函式庫,支援跨平台與 Web | 0.29.x | | DirectX 11 | 微軟圖形 API,負責繪製覆蓋層畫面 | Windows 內建 | | windows crate | 微軟官方 Rust 綁定,呼叫 Win32 API | 0.58.0 |
框架元件說明
這套 External Hack 框架包含以下核心模組:
1. 視窗覆蓋層(Overlay Window)
透過 Win32 API 建立透明、置頂的視窗,覆蓋在遊戲畫面上方。視窗採用分層屬性設定,讓滑鼠事件能夠穿透到遊戲本體,同時保留繪製能力。
2. DirectX 11 繪製後端
使用 egui-directx11 或 egui-d3d11 作為渲染後端,將 egui 的界面指令轉換為 DirectX 11 繪製命令。
3. 記憶體讀取模組
實作外部記憶體讀取功能,透過 Windows API 讀取目標遊戲行程的記憶體數據,包含:
- 行程列舉與 PID 取得
- 記憶體基址計算
- 結構體數據解析
4. 圖形使用者介面(egui)
提供即時模式的 GUI 開發體驗,支援:
- 視窗、按鈕、滑桿等控制項
- 即時數據視覺化
- 設定檔儲存與載入
實作步驟
步驟一:環境準備
- 安裝 Rust 工具鏈(rustup)
- 安裝 Visual Studio 2019/2022(含 C++ 工具集)
- 確保 Windows SDK 已安裝
步驟二:專案初始化
在 Cargo.toml 中加入必要依賴:
[dependencies]
egui = "0.29"
egui-directx11 = "0.6"
windows = { version = "0.58", features = ["Win32_Graphics_Direct3D11", "Win32_UI_WindowsAndMessaging"] }
步驟三:視窗與 D3D11 初始化
建立 Win32 視窗並初始化 DirectX 11 裝置,設定交換鏈與渲染目標視圖。
步驟四:egui 整合
在每幀渲染循環中:
- 處理 Windows 訊息
- 更新 egui 界面狀態
- 執行 egui 繪製邏輯
- 呈現畫面到螢幕
步驟五:記憶體讀取實作
使用 Windows API 讀取目標遊戲記憶體:
// 開啟目標行程
let handle = OpenProcess(PROCESS_VM_READ, FALSE, pid);
// 讀取記憶體
ReadProcessMemory(handle, address, buffer.as_mut_ptr(), size, null_mut());
檔案下載點
底下提供本框架的原始碼與編譯後檔案:
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
常見問題Q&A
Q:什麼是 External Hack 與 Internal Hack 的差別?
External Hack 運行在獨立行程中,僅透過 API 讀取/寫入遊戲記憶體,不注入遊戲本身;Internal Hack 則是將程式碼注入遊戲行程內執行。External 方式相對較難被偵測,但功能實作上較為受限。
Q:這個框架會被 Easy Anti-Cheat 偵測到嗎?
任何記憶體操作都存在被偵測的風險。雖然 External Hack 不注入遊戲,但反作弊系統可能透過行為分析、記憶體掃描等方式偵測異常。建議僅用於離線學習。
Q:Rust 相較於 C++ 開發外掛有什麼優勢?
Rust 提供記憶體安全保證,減少懸空指標、緩衝區溢位等常見漏洞;同時具備與 C++ 相當的執行效能,且擁有現代化的套件管理系統 Cargo。
Q:egui 與 ImGui 有什麼不同?
egui 是純 Rust 實作的即時模式 GUI,設計理念與 ImGui 類似,但完全使用 Rust 語言開發,整合上更為順暢,且支援 WebAssembly 目標平台。
Q:如何確保覆蓋層視窗正確顯示在遊戲上方?
需要設定視窗屬性為 WS_EX_TOPMOST 與 WS_EX_LAYERED,並正確處理透明色鍵或 Alpha 通道。部分全螢幕遊戲可能需要設定為無邊框視窗模式才能正常顯示覆蓋層。
Q:這個專案的繪製程式碼來源是什麼?
根據原作者說明,繪製程式碼主要參考自 GitHub 上的某個 egui d3d11 實作專案(原始連結已遺失)。目前建議使用 egui-directx11 作為穩定的替代方案。
|