快速閱讀精華
- 🎯 Handle Hijacking 技術:透過複製 CSRSS 行程現有控制代碼,避免直接呼叫 OpenProcess 被監控
- 🧵 Thread Hijacking 技術:劫持等待中的執行緒執行 Shellcode,無需建立新執行緒
- 🔍 NtQuerySystemInformation:使用原生 API 列舉行程,繞過常見的 Win32 API 監控
- 📦 完整 PE Loader:內建重定位、匯入表解析、TLS 回呼、進入點執行
- ⚠️ 重要提醒:此工具僅適用於 notepad.exe 等一般程式,不建議用於反作弊保護的遊戲
前言介紹
對於想要深入理解 Windows 行程注入技術的開發者來說,手動映射(Manual Map)是一項必備的核心技能。與傳統的 LoadLibrary 注入不同,手動映射能夠在記憶體中直接建構 PE 映像檔,完全不觸碰磁碟,大幅降低了被安全軟體偵測的機率。
這次要分享的 Simple Manual Map Injector 是一款功能完整的開源注入器,整合了多項進階迴避技術,包括 Handle Hijacking、Thread Hijacking 以及透過 NtQuerySystemInformation 進行行程列舉。底下我們整理了這款工具的核心架構與使用方式,幫助你快速上手這項技術。
👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app

核心功能技術解析
這款注入器整合了多項進階技術,底下我們逐一說明各項功能的運作原理:
Handle Hijacking - 控制代碼劫持
傳統的注入器需要呼叫 OpenProcess 來取得目標行程的控制代碼,但這個 API 呼叫很容易被 EDR(端點偵測與回應)系統監控並標記。
這款工具採用的 Handle Hijacking 技術,原理是從 csrss.exe(Client/Server Runtime Subsystem)這個系統行程中,複製已經存在的控制代碼,而不是直接呼叫 OpenProcess。由於 csrss.exe 是 Windows 核心元件,其控制代碼被視為正常系統活動,因此能夠有效規避基於 API Hook 的監控機制。
Thread Hijacking - 執行緒劫持
一般注入器會使用 CreateRemoteThread 在目標行程建立新執行緒來執行 Shellcode,但這個行為特徵明顯,是安全軟體重點監控的對象。
此工具的 Thread Hijacking 技術會尋找目標行程中處於等待狀態(Waiting State)的現有執行緒,透過修改其執行上下文(Context)來劫持執行流程,讓該執行緒去執行我們的 Shellcode。這種方式不會產生新的執行緒建立事件,大幅降低了被偵測的機率。
完整 PE Loader Shellcode
注入器內建了完整的 PE 載入器,能夠在記憶體中完整重建 DLL 的執行環境:
- 重定位(Relocations):處理 PE 檔案在不同基底位址載入時的位址修正
- 匯入表解析(Imports):遞迴解析並載入所有相依的 DLL 函數
- TLS 回呼(Thread Local Storage):執行執行緒本地儲存回呼函數
- 進入點執行(Entry Point):正確呼叫 DLL 的進入點函數
這些功能確保了被注入的 DLL 能夠像在正常環境下被 LoadLibrary 載入一樣正確運作。
行程列舉技術
工具使用 NtQuerySystemInformation 搭配 SystemProcessInformation 類別來列舉系統中的行程。相較於常見的 CreateToolhelp32Snapshot API,這個原生系統呼叫更底層且較不容易被使用者層級的 Hook 監控。
區段保護修正與痕跡清除
映射完成後,工具會根據 PE 區段表(Section Headers)的設定,正確設定每個記憶體區段的保護屬性(RX、RW 等)。注入完成後還會執行標頭與 Shellcode 抹除,清除注入痕跡。
使用方式說明
根據原始碼中的註解,使用方式已經整理在 core.cpp 檔案中。基本流程如下:
- 準備要注入的 DLL 檔案(建議使用 Release 模式編譯)
- 編譯注入器專案(支援 x86 與 x64 架構)
- 執行注入器,指定目標行程名稱(如 notepad.exe)與 DLL 路徑
- 工具會自動完成 Handle Hijacking、行程列舉、記憶體映射與執行緒劫持
檔案下載點
原始檔案與相關資源下載:
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
相關工具推薦:
Cheat Engine (CE修改器) 7.5 漢化版 中文版
《Cheat Engine》V7.6 中文化版超強記憶體解鎖工具:遊戲外掛製作神器!
重要風險提醒
⚠️ 使用限制聲明
- 此工具主要設計用於載入使用者模式 Payload 到一般程式(如 notepad.exe、obs64.exe)
- 不建議用於注入受反作弊保護的遊戲,這種做法極有可能無法運作
- 現代反作弊系統(如 EAC、BE、Vanguard)會監控 NtQuerySystemInformation 等原生 API 呼叫
- Handle Hijacking 與 Thread Hijacking 技術雖然能繞過部分使用者層級檢測,但無法對抗核心層級的驅動程式監控
- 使用此類工具進行線上遊戲修改可能導致帳號永久停權
常見問題Q&A
Q:這款注入器與一般的 DLL 注入器有什麼不同?
A:最大的差異在於「手動映射」技術。傳統注入器使用 LoadLibrary 會觸發系統的模組載入通知,並在磁碟上留下痕跡。手動映射則是完全在記憶體中建構 PE 映像,不透過系統載入器,因此更難被偵測。
Q:Handle Hijacking 真的完全無法被偵測嗎?
A:並非如此。雖然 Handle Hijacking 能繞過基於 API Hook 的監控,但現代 EDR 系統會使用行為分析、核心回呼(Kernel Callbacks)或 ETW(Event Tracing for Windows)來偵測異常的記憶體操作與執行緒行為。
Q:為什麼不建議用於反作弊遊戲?
A:現代遊戲反作弊系統(如 Easy Anti-Cheat、BattlEye、Vanguard)會在核心層級監控行程記憶體的完整性。即使使用 Handle Hijacking 或 Thread Hijacking,這些系統仍能透過驅動程式偵測到異常的記憶體映射與執行緒上下文變更。
Q:編譯時出現錯誤怎麼辦?
A:請確認以下幾點:
- 使用 Visual Studio 2019 或更新版本
- 專案設定為對應的架構(x86 或 x64)
- 已安裝 Windows SDK
- 檢查 core.cpp 中的註解說明,確認使用方式正確
Q:注入後程式當機怎麼處理?
A:可能原因包括:
- DLL 與目標行程架構不符(x86 DLL 注入 x64 行程)
- DLL 有額外的相依性未解析
- TLS 回呼或進入點函數發生異常
- 建議先在 notepad.exe 等簡單程式測試
|