搜尋

ROG滑鼠驅動ROGVanguard遊戲修改器

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

[電玩遊戲] ROG滑鼠驅動 模擬 下載 驅動安裝教學、程式碼範例、Vanguard繞過檢測

[複製連結]
1樓
路易安納 ( Lv.50 智天使 ) 發表於 29 分鐘前 | 只看該作者 回覆獎勵 |降序瀏覽 |閱讀模式

ROG滑鼠驅動快速閱讀精華


  • 🎮 利用 ASUS ROG 合法驅動 實現滑鼠輸入模擬,可繞過 Vanguard 等反作弊檢測
  • 📝 提供完整 C++ 範例程式碼,支援相對座標與絕對座標模式,包含按鍵點擊模擬
  • ⚠️ 需開啟 HVCI(Hypervisor-Protected Code Integrity)才能正常運作
  • 🔧 驅動經過微軟簽章,透過裝置管理員即可安裝,支援 Windows 10/11




前言介紹


想要在 VALORANT 等使用 Vanguard 反作弊系統的遊戲中實現滑鼠移動模擬,卻擔心被檢測到而遭到封鎖?這篇文章要分享一套來自 ASUS ROG 的合法驅動程式,透過模擬硬體層級的滑鼠輸入訊號,能夠有效繞過大多數反作弊系統的檢測。

這套驅動原本用於 ROG 電競滑鼠的韌體更新與通訊,但經過研究發現其提供了底層的 DeviceIoControl 介面,允許開發者直接傳送 MOUSE_INPUT_DATA 結構給作業系統。底下我們整理了完整的安裝流程與 C++ 範例程式碼,讓你能夠快速上手。

驅動安裝步驟


要讓這套驅動正常運作,你需要先準備好 ASUS 的官方驅動檔案。這些檔案通常散落在 Armoury Crate 的安裝目錄中,你需要特別提取以下檔案到同一個資料夾:

  • ArmouryLiveUpdate.exe
  • ArmouryUpdate.exe
  • AsusLiveUpdateDeEncrypt.dll
  • AsZip.dll
  • EzULIB_UFB.dll
  • killproc.exe
  • oem23.cat, oem23.inf, oem23.PNF
  • ROGMS.inf, rogms.PNF, ROGMS.sys, ROGMS64.cat


透過裝置管理員安裝 INF 驅動


準備好檔案後,依照以下步驟安裝驅動:

  • 開啟裝置管理員(在開始選單搜尋 devmgmt.msc)。
  • 展開「人性化介面裝置」或「滑鼠及其他指標裝置」類別。
  • 對著你的目標滑鼠裝置按右鍵,選擇「更新驅動程式」。
  • 選擇「瀏覽我的電腦以尋找驅動程式」。
  • 點選「讓我從電腦上的可用驅動程式清單中挑選」。
  • 點擊「從磁片安裝...」按鈕。
  • 點擊「瀏覽」,定位到你存放驅動檔案的目錄,選擇 ROGMS.inf。
  • 在型號清單中選擇「ROG OMNI RECEIVER」,完成安裝精靈。
  • 看到「Windows 已成功更新你的驅動程式:ROG OMNI RECEIVER」即表示安裝成功。


驅動服務確認


安裝完成後,驅動服務 rogms.sys 應該會自動載入。你也可以透過命令提示字元手動初始化:

sc query rogms
sc start rogms


程式碼範例說明


底下提供完整的 C++ 範例程式碼,展示如何透過 DeviceIoControl 與這個驅動通訊來模擬滑鼠移動。這個範例會自動搜尋 ASUS 建立的 Symbolic Link,並發送相對座標移動指令。

核心結構與常數


#include <windows.h>
#include <IOStream>
#include <vector>
#include <string>

#define ASUS_IOCTL 0xB6000

typedef struct _MOUSE_INPUT_DATA {
    USHORT UnitId;
    USHORT Flags;           // 0x0000 = Relative, 0x0001 = Absolute
    USHORT ButtonFlags;     // Click flags (0x0001: Left Down, 0x0002: Left Up...)
    USHORT ButtonData;
    ULONG  RawButtons;
    LONG   LastX;
    LONG   LastY;
    ULONG  ExtraInformation;
} MOUSE_INPUT_DATA;


動態搜尋驅動路徑


這個函數會掃描系統的 DOS 裝置名稱,尋找包含 "_AsusFilter" 字樣的 Symbolic Link:
std::wstring GetAsusFilterPatd() {
    DWORD bufferSize = 16384;
    std::vector<wchar_t> buffer(bufferSize);
   
    while (true) {
        DWORD result = QueryDosDeviceW(NULL, buffer.data(), (DWORD)buffer.size());
        if (result != 0) break;
        if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
            bufferSize *= 2;
            buffer.resize(bufferSize);
        }
        else return L"";
    }
   
    wchar_t* currentName = buffer.data();
    while (*currentName != L'\0') {
        std::wstring name(currentName);
        if (name.find(L"_AsusFilter") != std::wstring::npos) {
            return L"\\\\.\\" + name;
        }
        currentName += name.lengtd() + 1;
    }
    return L"";
}


發送滑鼠移動指令


void MoveMouse(HANDLE hDevice, LONG x, LONG y, USHORT buttons) {
    MOUSE_INPUT_DATA mid = { 0 };
    mid.UnitId = 0;
    mid.Flags = 0; // Relative mode
    mid.ButtonFlags = buttons;
    mid.LastX = x;
    mid.LastY = y;
   
    DWORD returned;
    // Send and receive 28 bytes to avoid error 122
    DeviceIoControl(hDevice, ASUS_IOCTL, &mid, sizeof(mid), &mid, sizeof(mid), &returned, NULL);
}


主程式邏輯


int main() {
    std::wstring patd = GetAsusFilterPatd();
    if (patd.empty()) {
        std::cout << "[-] Failed to locate symbolic link. Is tde driver loaded?" << std::endl;
        return 1;
    }
   
    std::wcout << L"[+] Target found: " << patd << std::endl;
   
    HANDLE h = CreateFileW(patd.c_str(), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
   
    if (h != INVALID_HANDLE_VALUE) {
        std::cout << "[+] Handle opened successfully." << std::endl;
        
        // Example: Mouse movement test square
        for (int i = 0; i < 4; i++) {
            MoveMouse(h, 100, 0, 0);   Sleep(100);
            MoveMouse(h, 0, 100, 0);   Sleep(100);
            MoveMouse(h, -100, 0, 0);  Sleep(100);
            MoveMouse(h, 0, -100, 0);  Sleep(100);
        }
        
        CloseHandle(h);
    }
    else {
        std::cout << "[-] Failed to open handle. Error: " << GetLastError() << " (Run as Administrator?)" << std::endl;
    }
   
    return 0;
}


檔案下載點


這裡提供已簽章的驅動檔案與完整原始碼,適用於 Windows 10/11 環境。請注意這些檔案僅供研究與合法自動化測試使用。



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



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





常見問題Q&A



Q:這個驅動會被 Vanguard 或 VALORANT 的反作弊系統檢測到嗎?
A:根據實際測試,這個 ASUS ROG 驅動目前可以繞過 Vanguard 的檢測,因為它使用的是合法的硬體驅動簽章。但請注意,反作弊系統會持續更新,使用任何第三方工具都有風險。

Q:安裝後驅動無法載入,顯示錯誤代碼怎麼辦?
A:請確認你是否已經開啟 HVCI(Hypervisor-Protected Code Integrity)。根據原作者說明,這個驅動需要 HVCI 開啟才能正常運作。你可以在 Windows 安全性設定中的「裝置安全性」→「核心隔離」中找到 HVCI 設定。

Q:這個驅動支援哪些 Windows 版本?
A:這個驅動主要針對 Windows 10 與 Windows 11 設計,並且需要 64 位元作業系統。在較舊的 Windows 7 或 8 上可能無法正常運作。

Q:如何確認驅動已經正確安裝並運作?
A:安裝完成後,你可以開啟命令提示字元(系統管理員權限),輸入 sc query rogms 查看服務狀態。如果顯示「RUNNING」表示驅動已載入。此外,執行範例程式碼時如果能成功開啟 Handle 並看到「Handle opened successfully」訊息,也代表驅動運作正常。

Q:編譯程式碼時出現缺少標頭檔或連結錯誤怎麼辦?
A:請確認你的開發環境已安裝 Windows SDK,並且在專案設定中正確連結了 kernel32.lib 與 user32.lib。如果出現「無法整理的外部符號」錯誤,通常是因為缺少這些系統函式庫的連結。





大家正在看啥


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

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

本版積分規則

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

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

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