首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Windows掃雷外掛原理分析:進程內存讀寫實現自動標記

     編輯:關於C語言

掃雷外掛程式碼解析

本文分析一款經典的 Windows 掃雷外掛原理,其核心思路是通過 Windows API 讀寫掃雷進程內存,將未點擊的格子強制標記為「旗幟」狀態,從而實現作弊效果。

核心代碼走讀

#include 

DWORD x = 0;                    // 進程 ID
DWORD m = 0, n = 0;             // 循環計數器
DWORD addr_a = 0x1005361;       // 起始掃描地址
DWORD addr_b = 0x1005361 + 29;  // 結束掃描地址(單行 30 格)
BYTE buffer = 0;                // 讀取緩衝
BYTE mark = 142;                // 旗幟標記值(0x8E)

int main() {
    // 1. 尋找掃雷窗口並獲取進程 ID
    HWND hWnd = ::FindWindow("掃雷", NULL);
    ::GetWindowThreadProcessId(hWnd, &x);

    // 2. 打開進程獲取完全訪問權限
    HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, x);
    if (hProcess == NULL) return 0;

    // 3. 遍歷 16 行 × 30 列的棋盤內存區域
    for (n = 0; n < 16; n++) {
        for (m = addr_a; m <= addr_b; m++) {
            // 讀取 1 字節
            ::ReadProcessMemory(hProcess, (LPCVOID)m, (LPVOID)&buffer, 1, NULL);
            // 若為未點擊格子 (143 = 0x8F),寫入旗幟值 (142 = 0x8E)
            if (buffer == 143) ::WriteProcessMemory(hProcess, (LPVOID)m, &mark, 1, NULL);
        }
        addr_a += 32;  // 行跨度(含填充)
        addr_b += 32;
    }

    // 4. 清理並刷新窗口
    ::CloseHandle(hProcess);
    ::ShowWindow(hWnd, SW_MINIMIZE);
    ::ShowWindow(hWnd, SW_SHOWNORMAL);
    return 0;
}

關鍵技術點解析

  1. 內存布局假設:代碼假設掃雷棋盤在進程內存中以固定地址 0x1005361 開始,每行 30 格,行跨度 32 字節(含 2 字節填充),共 16 行。這在特定版本(如 WinXP 內建掃雷)下成立,但現代系統因 ASLR、版本差異已失效。
  2. 數值含義:
    • 143 (0x8F):未點擊的空白格
    • 142 (0x8E):旗幟標記格
  3. API 調用鏈:FindWindow → GetWindowThreadProcessId → OpenProcess → ReadProcessMemory/WriteProcessMemory → CloseHandle,標準的進程間內存操作流程。
  4. 窗口刷新技巧:最小化後再正常顯示 (SW_MINIMIZE/SW_SHOWNORMAL) 強制 UI 重繪,使修改即時生效。

安全與法律風險

  • 現代 Windows 啟用 ASLR/DEP,固定地址失效;UAC 限制非管理員進程注入。
  • 修改他人進程內存屬於逆向工程/作弊行為,違反軟件許可協議,競賽環境下屬違規。
  • 惡意代碼常用同類技術注入 Shellcode,殺毒軟件會攔截此類行為。
  • 防禦視角建議

    遊戲開發者可採用:
    ① 關鍵數據加密存儲 ② 完整性校驗(CRC/Hash) ③ 反調試檢測 ④ 服務端權威邏輯(網絡遊戲)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved