搜尋

Anti-Cheat ExpertAnti-CheatExpert遊戲修改器

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

[電玩遊戲] 《Anti-Cheat Expert》截圖機制與DWM注入 ACE如何截圖?DWM注入原理是什麼?

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

《Anti-Cheat Expert》截圖機制與DWM注入 快速閱讀精華



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



🔍 **一句話看懂**:ACE(Anti-Cheat Expert)不只是簡單的截圖軟體,它用了至少**6種不同的截圖技術**,從最基本的 GDI BitBlt 到最危險的 **DWM Shellcode 注入**,甚至還會把你的畫面送進 AI 模型做即時檢測!

🛡️ **核心重點**:
  • ACE 的截圖手段包山包海:Windows GDI、DXGI、NVIDIA 專屬 SDK(NVFBC/NvScanOut)、AMD 對應技術,甚至直接對驅動程式發送 COM 指令
  • 最可怕的是 **DWM(Desktop Window Manager)Shellcode 注入**:ACE 會把惡意程式碼注入到系統的 DWM 處理程序,掛鉤(Hook)Windows 的畫面輸出函式,在畫面送到螢幕前就先攔截複製一份
  • AI 即時掃描:截圖不會直接上傳,而是先經過本地端的 **IDS.DAT** 分析,使用針對不同遊戲訓練的專屬 AI 模型偵測外掛,只有被標記可疑的截圖才會上傳
  • 傳統的防截圖工具(如 NoScreen)已經無效:ACE 會在 NVAPI 和 DWM 層級檢測這類防護手段,企圖隱藏畫面反而會被當成作弊證據


⚠️ **風險提醒**:研究或嘗試繞過 ACE 的截圖機制可能違反遊戲服務條款,導致帳號永久停權。本文僅供技術研究與教育用途。



前言介紹



在現代遊戲反作弊戰爭中,**Anti-Cheat Expert(ACE)** 作為騰訊遊戲廣泛使用的反作弊系統,其技術手段之激進令人側目。與傳統反作弊僅掃描記憶體或檢查進程不同,ACE 選擇了一條更為底層且具侵略性的道路——**直接監控玩家的螢幕輸出**。

本文將基於實際逆向工程研究,深度心得 ACE 至少六種不同的螢幕截圖技術,從最常見的 Windows GDI 介面,到利用 NVIDIA 專屬硬體加速的 NVFBC,乃至於最危險、直接注入系統核心 DWM(Desktop Window Manager)的 Shellcode 技術。我們將揭示 ACE 如何在不觸發傳統防毒軟體警報的情況下,完成對玩家畫面的即時擷取與 AI 分析。

ACE截圖技術全覽



ACE 並非依賴單一截圖手段,而是建立了一套**多層次、互補式的截圖矩陣**,確保無論玩家使用何種顯示技術(DirectX、OpenGL、Vulkan)或硬體配置(NVIDIA、AMD、Intel),都無法逃脫監控。

編號技術名稱實作方式特點與風險等級
1GDI BitBlt傳統 Windows GDI 函式 BitBlt 拷貝螢幕緩衝最基礎、相容性最高,但效率低,易被傳統防截圖工具幹擾
2DXGI DuplicateOutput使用 DirectX Graphics Infrastructure 的桌面複製 API硬體加速效率高,可擷取遊戲全螢幕畫面,難以被一般軟體阻擋
3NVIDIA NVFBCNVIDIA Frame Buffer Capture SDK,直接從幀緩衝區擷取繞過作業系統層級,直接存取 GPU 記憶體,效率極高且隱蔽
4NVIDIA NvScanOut掃描輸出緩衝區擷取技術(原始碼可見 TheCruz GitHub)底層硬體級別擷取,可取得尚未經過後處理的原始畫面
5驅動程式 COM 介面直接與 ACE 核心驅動通訊,發送截圖指令核心層級(Kernel Mode)操作,最高權限,完全繞過用戶層防護
6DWM Shellcode 注入將機器碼注入 Desktop Window Manager 處理程序,掛鉤 Present 函式最危險且技術最複雜,在系統合成器層級攔截所有畫面輸出,幾乎無法被檢測或阻擋


這六種技術形成了從應用層(GDI)到系統層(DXGI)、驅動層(NVFBC/NvScanOut)、核心層(驅動COM),乃至於最危險的系統注入層(DWM Shellcode)的完整監控網路。

DWM Shellcode注入深度整理



在所有截圖技術中,**DWM(Desktop Window Manager)Shellcode 注入** 無疑是最為精巧且具侵略性的實作方式。這種技術本質上是將一段精心編寫的機器碼(Shellcode)注入到系統核心的 DWM 處理程序中,藉此攔截並複製所有即將輸出到螢幕的畫面幀。

技術實作流程



整個注入與截圖流程可分為以下八個關鍵步驟:

  • 整理目標函式位址:首先,ACE 需要針對當前 Windows 系統版本,整理出 DWM 核心中四個關鍵函式的相對虛擬位址(RVA):CDXGISwapChain:resentFullscreenFlip、CDXGISwapChain:resent、CDXGISwapChain:resentDWM 以及 CDXGISwapChain:resentMultiplaneOverlay。這些位址會被編碼為四個 QWORD,放置在 Shellcode 的 0x00–0x1F 偏移位置。
  • 映射並執行 Shellcode:準備好的 Shellcode 會被映射到 DWM.exe 的處理程序空間中,並從偏移量 0x4C 處開始執行。
  • 動態 API 整理: 進入 DWM 後,Shellcode 會遍歷 PEB(Process Environment Block) 來定位已載入模組,並透過 FNV-1a 雜湊演算法 比對匯出函數名稱,動態整理出 RtlAddVectoredExceptionHandler、RtlRemoveVectoredExceptionHandler、LoadLibraryA、VirtualQuery、VirtualProtect、VirtualAlloc 以及 Sleep 等關鍵 API 位址。
  • 計算掛鉤目標:載入 dxgi.dll 後,Shellcode 會將先前嵌入的四個修補 RVA 加上 dxgi.dll 的基底位址,計算出四個實際的掛鉤目標函式位址。
  • 安裝中斷點陷阱:對於每個目標函式,Shellcode 會安裝一個 VEH(Vectored Exception Handler,向量化異常處理常式),然後在目標函式的入口處暫時寫入 INT3 中斷指令(0xCC),製造一個軟體斷點。
  • 攔截與處理:當 DWM 的渲染執行緒呼叫被掛鉤的 Present 函式時,會觸發 INT3 陷阱,導致 CPU 拋出 EXCEPTION_BREAKPOINT 異常。此時,先前安裝的 VEH 會被呼叫,它會執行以下操作:
    • 還原被覆蓋的原始位元組(移除 INT3)
    • 將指令指標(RIP)重定向到一個一次性的包裝函式(Wrapper)
    • 包裝函式呼叫原始的 DXGI Present 函式完成正常渲染
    • 在渲染完成後,透過 D3D11 COM 介面呼叫 GetDevice、GetBuffer 取得交換鏈的後緩衝區(Back Buffer)
    • 建立一個 CPU 可存取的暫存紋理(Staging Texture),使用 CreateTexture2D 和 CopyResource 將後緩衝區的內容複製過去
    • 呼叫 Map 鎖定暫存資源,取得指向原始像素資料的指標,此時即可讀取完整的畫面幀
    • 完成後呼叫 Unmap 解除鎖定
  • 資料格式化與輸出:捕獲的畫面會被格式化為特定的記憶體結構:
    • 首先是 D3D11_TEXTURE2D_DESC 結構(0x2C 位元組),描述紋理的寬度、高度、格式等後設資料
    • 接著是原始的像素資料(Raw Pixel Data),支援 B8G8R8A8_UNORM(標準 32 位元色)和 R16G16B16A16_FLOAT(HDR 浮點色)兩種格式
    • Shellcode 會在其標頭(Header)中發布緩衝區指標、影像尺寸、HRESULT 狀態碼以及同步狀態,供 ACE 主程序讀取


整個流程展現了極高的技術複雜度:從核心層的異常處理機制濫用,到 DirectX 圖形管線的深度操縱,再到現代 GPU 資源的管理,每一步都精確計算以規避傳統安全軟體的偵測。

AI檢測與資料上傳機制



當 DWM Shellcode 成功捕獲畫面並將像素資料寫入共享緩衝區後,ACE 主程序會立即讀取這些影像資料。然而,ACE 並不會將每一張截圖都直接上傳至伺服器,而是先經過一道本地端的 AI 預篩選機制,這個機制主要依賴一個名為 **IDS.DAT** 的本地資料庫或模型檔案。

  • 本地 AI 模型推論:ACE 針對不同遊戲訓練了專屬的機器學習模型。這些模型可能是基於一個基礎模型(Base Model)再針對特定遊戲進行增強訓練(Fine-tuning)。當截圖進入 IDS.DAT 的分析流程時,AI 會掃描畫面中的異常特徵,例如不該出現的 UI 元素、異常的著色器效果、或是透視牆壁的視覺呈現。
  • 選擇性上傳策略:這套機制的關鍵在於「降低誤判」與「節省頻寬」。只有當 AI 模型將某張截圖標記為「可疑(Flagged)」時,該影像才會被壓縮並上傳至 ACE 的雲端伺服器供人工覆核。正常的遊戲畫面則會在本地分析後被丟棄,不會留下永久記錄。
  • 繞過檢測的困難度:研究發現,傳統的防截圖手段(例如使用 NoScreen 等工具阻擋 BitBlt)已經無法有效對抗 ACE。因為 ACE 會同時在 NVAPI(NVIDIA 驅動程式介面)和 DWM 層級檢測這類防護機制的存在。一旦發現系統試圖攔截截圖行為,反而會被視為「做賊心虛」的證據,觸發更嚴格的監控。


以下廣告滑動後還有帖子內容




常見問題Q&A



Q:ACE 的截圖功能會不會導致遊戲效能下降或畫面卡頓?
A:理論上,ACE 的多重截圖機制確實會消耗額外的 CPU 與 GPU 資源。特別是當使用 DWM Shellcode 注入時,每次 Present 呼叫都會觸發異常處理與資源複製,可能導致幀率(FPS)些微下降。然而,ACE 通常會在背景以較低頻率(例如每 30 秒或每分鐘)進行截圖,而非逐幀擷取,以降低效能衝擊。

Q:關閉 NVIDIA ShadowPlay 或 Windows Game Bar 能否阻止 ACE 截圖?
A:無法阻止。ACE 使用的 NVFBC、NvScanOut 或 DXGI DuplicateOutput 與 ShadowPlay 等錄影軟體底層技術雖然相似,但 ACE 的驅動層級權限更高。即使關閉所有覆蓋層(Overlay)功能,ACE 仍可透過核心驅動或 DWM 注入擷取原始畫面。

Q:使用虛擬機器(VM)或遠端桌面(RDP)能否規避 ACE 的螢幕監控?
A:部分傳統遊戲可能允許在 VM 中執行,但 ACE 具備虛擬機器檢測機制(檢查 CPUID、Hypervisor 痕跡、特定驅動等)。一旦偵測到 VM 環境,ACE 可能直接阻止遊戲啟動,或提升監控等級。此外,RDP 的畫面編碼與本地顯示機制不同,ACE 仍可在本地端(Host)截取原始畫面,而非僅看到壓縮過的 RDP 串流。

Q:ACE 的 AI 截圖分析會不會誤判正常遊戲畫面為外掛?
A:雖然 ACE 採用深度學習模型進行畫面分析,但誤判(False Positive)在理論上仍可能發生。例如,遊戲內的特定 UI 佈局、第三方覆蓋層(如 Discord、MSI Afterburner)或顯示驅動的異常渲染,都可能被 AI 誤認為異常。然而,ACE 通常會將可疑截圖標記後上傳供人工複核,而非僅依賴 AI 自動封鎖。

Q:如何技術性地檢測或防禦 ACE 的 DWM Shellcode 注入?
A:偵測 DWM 注入極具挑戰性,因為 ACE 的 Shellcode 執行於系統核心處理程序內,且使用 INT3 + VEH 機制規避了傳統的 API Hook 檢測。理論上,可透過監控 DWM.exe 的記憶體區段變化(非預期的 RWX 權限記憶體)、檢查 VEH 鏈的異常處理常式位址,或比對 DXGI Present 函式入口點的完整性來偵測。然而,這些防禦措施本身可能涉及核心層級操作,風險極高且可能觸發 ACE 的二次保護機制。

參考資料









大家正在看啥


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

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

本版積分規則

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

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

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