搜尋

漫威爭鋒反作弊系統UAC遊戲修改器

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

[電玩遊戲] 《漫威爭鋒》反作弊系統技術分析與UAC繞過 CE中文化腳本下載 Usermode Anti-cheat Dumps分析、魔術盒驗證機制解密、UAC權限檢查繞過教學

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

快速閱讀精華


  • 🔍 技術核心:整理《漫威爭鋒》用戶模式反作弊系統(Usermode Anti-cheat)的運作機制,包含UAC繞過檢查、魔術盒驗證器(Magic Box Validator)與ACS DK組件分析
  • 🛡️ 安全檢查機制遊戲啟動時會執行多重權限驗證,包括管理員身份檢查(`is_running_as_admin`)、UAC繞過偵測(`check_uac_bypass`)與未簽名DLL掃描(`check_unsigned_dll`)
  • 🔐 魔術盒加密系統:採用AES-256加密與Base64編碼雙重保護,透過狀態碼(StatusCode)機制驗證種子(Seed)、版本(Version)與演算法結果(Result)的一致性
  • ⚠️ 使用風險提醒:本技術文件僅供教育研究用途,實際應用於線上遊戲可能導致帳號永久封鎖,建議僅於離線環境或私人伺服器測試





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



前言介紹



《漫威爭鋒》(Marvel Rivals)作為網易遊戲與漫威娛樂聯手打造的6v6團隊射擊遊戲,其反作弊系統採用了多層次的安全防護架構。本文將深入心得其用戶模式(Usermode)反作弊機制的技術細節,特別是UAC(使用者帳戶控制)權限檢查、魔術盒驗證器(Magic Box Validator)的加密邏輯,以及ACS DK(Anti-Cheat Software Development Kit)組件的安全檢查流程。

重要提醒: 本文所含技術資訊僅供教育研究與安全分析用途。實際應用於線上遊戲環境可能違反服務條款,導致帳號永久停權。建議僅於離線環境、私人伺服器或經授權的滲透測試場景中使用相關知識。

反作弊系統架構分析



《漫威爭鋒》的反作弊系統採用混合架構,結合了內核層(Kernel-level)與用戶層(Usermode)的檢測機制。用戶層部分主要負責即時監控遊戲行程的完整性,包含螢幕震動模組(Screen Shake Mod)的封包驗證、控制檯變數(CVars)的合法性檢查,以及UAC/Invoker的權限驗證。

UAC權限檢查與繞過機制



遊戲啟動時會執行嚴格的UAC(使用者帳戶控制)權限驗證,主要透過以下三個核心函數進行檢查:

  • check_uac_bypass():檢查環境變數 `__COMPAT_LAYER` 是否包含 `runasinvoker` 字串,這是常見的UAC繞過手法。若偵測到相關設定,系統會記錄警告日誌並回傳True。
  • is_running_as_admin():透過Windows API `shell32.IsUserAnAdmin` 檢查當前行程是否以管理員權限執行。
  • is_uac_enabled():讀取Windows登錄檔 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System` 下的 `EnableLUA` 值,確認UAC功能是否啟用。


魔術盒驗證系統整理



魔術盒驗證器(Magic Box Validator)是《漫威爭鋒》反作弊系統中的核心加密驗證模組,採用多層次的安全機制確保遊戲資料完整性:

  • AES-256加密:使用預設金鑰 `&8pX6'fbXt^4`(補足至32位元組)進行AES加密運算,確保資料傳輸過程中的機密性。
  • Base64編碼:加密後的資料會進行Base64編碼,便於在JSON格式中傳輸。
  • 狀態碼機制:定義了27種不同的狀態碼(StatusCode),從成功(SUCCESS=0)到各類錯誤(環境變數遺失、Base64解碼錯誤、AES解密錯誤、JSON格式錯誤等),提供精確的錯誤追蹤能力。
  • 種子驗證:透過XORSHIFT演算法(MAGIC_A、MAGIC_B、MAGIC_C常數)驗證種子(Seed)的時效性,防止重播攻擊(SEED_TOO_OLD=508)。


核心程式碼技術整理



本節將深入心得兩個關鍵的Pytdon模組,這些模組構成了《漫威爭鋒》反作弊系統的技術基礎。

ACSDK組件安全檢查



ACS DK(Anti-Cheat Software Development Kit)組件是遊戲安全架構的核心,負責協調各類安全檢查與伺服器通訊。以下是其關鍵功能的程式碼整理:

import atexit
import json
import os
import platforms
import unreal_engine as ue
import utils
from core.framework.component import Component
from core.rpc.rpcdecorator import Bytes, CLIENT_STUB, Dict, Int, rpc_metdod
from ui.utils_ui import log_utils, mos_client_utils, time_utils
from ui.utils_ui.widget_utils import off_ui_events, on_ui_events
from utils import is_editor

try:
    import acsdk
except ImportError:
    acsdk = None

def check_uac_bypass():
    try:
        compat_layer = os.environ.get("__COMPAT_LAYER", "")
        if compat_layer:
            compat_layer_lower = compat_layer.lower()
            if "runasinvoker" in compat_layer_lower:
                WARN_LOG(f"[check_uac_bypass] UAC bypass detected: __COMPAT_LAYER={compat_layer}")
                return True
        compat_layer_runasinvoker = os.environ.get("__COMPAT_LAYER_RUNASINVOKER", "")
        if compat_layer_runasinvoker:
            WARN_LOG("[check_uac_bypass] UAC bypass detected: __COMPAT_LAYER_RUNASINVOKER set")
            return True
        return False
    except Exception as e:
        WARN_LOG(f"[check_uac_bypass] Error: {e}")
        return False

def is_running_as_admin():
    try:
        import ctypes
        return ctypes.windll.shell32.IsUserAnAdmin() != 0
    except Exception as e:
        WARN_LOG(f"[is_running_as_admin] Error: {e}")
        return False

def is_uac_enabled():
    try:
        import winreg
        key = winreg.OpenKey(
            winreg.HKEY_LOCAL_MACHINE,
            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
            0,
            winreg.KEY_READ,
        )
        (value, _) = winreg.QueryValueEx(key, "EnableLUA")
        winreg.CloseKey(key)
        return value == 1
    except Exception as e:
        WARN_LOG(f"[is_uac_enabled] Error: {e}")
        return False


上述程式碼展示了遊戲如何透過環境變數檢查、Windows API 呼叫與登錄檔讀取,建立多層次的權限驗證機制。特別值得注意的是 `check_uac_bypass()` 函數會偵測 `__COMPAT_LAYER` 環境變數中是否包含 `runasinvoker`,這是駭客社羣常用的UAC繞過手法。

Magic Box Validator加密邏輯



魔術盒驗證器採用多層次的加密與驗證機制,確保遊戲資料的完整性與時效性。以下是其核心加密邏輯的程式碼整理:

import os
import json
import base64
import time
from enum import IntEnum
from typing import Dict, Any, Optional
import pyaes

class StatusCode(IntEnum):
    SUCCESS = 0
    ENV_VAR_NOT_FOUND = 101
    ENV_VAR_EMPTY = 102
    BASE64_DECODE_ERROR = 201
    BASE64_INVALID_LENGTH = 202
    AES_DECRYPT_ERROR = 301
    AES_PADDING_ERROR = 302
    JSON_DECODE_ERROR = 401
    JSON_INVALID_FORMAT = 402
    MISSING_SEED = 501
    MISSING_VERSION = 502
    MISSING_RESULT = 503
    INVALID_SEED_TYPE = 504
    INVALID_VERSION_TYPE = 505
    INVALID_RESULT_TYPE = 506
    INVALID_RESULT_FORMAT = 507
    SEED_TOO_OLD = 508
    ALGORITHM_VERSION_MISMATCH = 601
    ALGORITHM_RESULT_MISMATCH = 602

DEFAULT_ENCRYPTION_KEY = b"&8pX6'fbXt^4" + b"\x00" * (32 - len(b"&8pX6'fbXt^4"))

MASK64: int = 0xFFFFFFFFFFFFFFFF
MAGIC_A: int = 0x9E3779B97F4A7C15
MAGIC_B: int = 0xBF58476D1CE4E5B9
MAGIC_C: int = 0x94D049BB133111EB
SECRET_KEY: str = "tBpp4kbrKb\\0]w[Q'j(]gRC8`;1LxI03"


這段程式碼展示了魔術盒驗證器的核心加密架構。系統採用 `pyaes` 函式庫進行AES加密,並定義了27種詳細的狀態碼來追蹤驗證過程中的各種異常情況。特別值得注意的是 `DEFAULT_ENCRYPTION_KEY` 的構造方式,它將基礎金鑰填充至32位元組以符合AES-256的要求。

驗證過程中使用的三個魔術常數(`MAGIC_A`、`MAGIC_B`、`MAGIC_C`)對應XORSHIFT演算法的標準參數,用於驗證種子(Seed)的時效性,防止重播攻擊(Replay Attack)。

相關檔案下載點



底下提供本次技術分析涉及的相關工具與原始程式碼檔案,供進階使用者進行離線研究與教育用途。



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



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





常見問題Q&A



Q:什麼是UAC繞過(UAC Bypass),為什麼遊戲要檢查這個?
A:UAC(使用者帳戶控制)是Windows的安全機制,當程式需要管理員權限時會彈出提示。UAC繞過是指駭客利用`__COMPAT_LAYER`環境變數設定`runasinvoker`,讓程式以管理員權限執行卻不觸發UAC提示。遊戲檢查此項是為了防止外掛程式利用此手法獲取更高權限並修改遊戲記憶體。

Q:魔術盒驗證器(Magic Box Validator)的作用是什麼?
A:魔術盒驗證器是《漫威爭鋒》用來驗證客戶端資料完整性的加密模組。它透過AES-256加密與Base64編碼保護敏感資料,並使用XORSHIFT演算法驗證時間戳記(Seed)防止重播攻擊。系統會檢查版本號(Version)、演算法結果(Result)與種子時效性,任何不符都會觸發對應的狀態碼錯誤。

Q:ACSDK(Anti-Cheat Software Development Kit)是什麼?
A:ACSDK是網易遊戲開發的反作弊軟體開發套件,用於整合到遊戲引擎(如Unreal Engine)中提供即時保護。在《漫威爭鋒》中,ACSDK負責執行UAC檢查、未簽名DLL掃描、螢幕截圖回傳與心跳包(Heartbeat)驗證。它會定期與伺服器通訊回報客戶端安全狀態,一旦偵測到異常就會觸發遊戲保護機制。

Q:為什麼需要檢查未簽名的DLL檔案?
A:DLL(動態連結函式庫)是Windows程式共享程式碼的方式。合法的系統DLL通常都有數位簽章(Signed)證明其來源可信。外掛程式或惡意軟體常會注入未簽名(Unsigned)的DLL到遊戲行程中,以修改遊戲行為(如透視、自動瞄準)。遊戲透過掃描載入的DLL清單,檢查是否有未簽名的可疑模組,藉此偵測潛在的外掛注入。

Q:這些技術資訊可以用來開發外掛嗎?
A:技術本身是中性的,取決於使用方式與目的。本文公開的資訊來自逆向工程與程式碼分析,主要用途是幫助資安研究人員理解現代遊戲反作弊系統的運作原理,或協助合法開發者設計更好的保護機制。然而,若用於開發線上遊戲的外掛程式,不僅違反遊戲服務條款,在多數國家/地區也可能觸犯電腦犯罪相關法律。我們強烈建議僅在離線環境或經授權的測試場景中使用這些知識。





大家正在看啥


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

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

本版積分規則

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

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

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