|
發佈時間: 2026-6-10 03:02
正文摘要:replyreload += ',' + 2469053;SmmMem 快速閱讀精華 🚀 無需載入驅動程式:透過 SMM(系統管理模式)在 Ring -2 權限下直接讀寫 Windows 記憶體🔑 ACPI WMI 門鈴機制:使用者模式應用程式透過 ACPI WMI 方法觸發 SMI,與 SMM 溝通💪 完整 API 支援:提供行程查找、虛擬/實體記憶體讀寫、模組匯出整理等功能⚠️ 高風險操作:需要燒錄自訂 UEFI 韌體,錯誤操作可能導致主機板磚壞 .article-toc { border: 1px solid #ddd; padding: 15px; background: #f9f9f9; border-radius: 6px; margin: 20px 0; width: 90%;}.article-toc br { display: none;}.toc-title { /* --- 以下是合併進來的 H2 樣式 --- */ font-size: 1.25em; /* 125% */ border-left: 5px solid #2A98DA; border-radius: 2px; padding: 5px 0px 5px 10px; font-weight: bold; margin: 0 0 15px 0; /* 調整了 margin,只留下方 15px */ color: #333; line-height: 1.5; background-color: #f8f8f8; /* --- 樣式合併結束 --- */}.toc-list { list-style: none; padding-left: 0;}.toc-list li { margin: 8px 0;}.toc-list a { color: #2A98DA; text-decoration: none;}.toc-list a:hover { text-decoration: underline;}.back-to-top { display: block; margin-top: 10px; font-size: 0.9em; color: #666;}本文章目錄SmmMem 是什麼?document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#intro'; 核心概念與架構document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#concept'; 使用者模式 API 說明document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#api'; ACPI WMI 門鈴溝通機制document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#communication'; 安裝教學與編譯步驟document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install'; - 編譯韌體元件document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install_step'; - UEFI 韌體燒錄document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install_flash'; - 使用者端程式編譯document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install_client'; 支援平臺與系統需求document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#support'; 疑難排解與除錯document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#troubleshoot'; 檔案下載點 🔽document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#download'; 常見問題Q&Adocument.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#faq'; SmmMem 是什麼? SmmMem 是一款無需載入驅動程式的 Windows 記憶體存取工具,讓一般使用者模式應用程式能夠在 Ring -2 權限下讀寫、整理 Windows 記憶體。這項技術透過 SMM(System Management Mode,系統管理模式)處理器模式運作,完全不需要安裝任何核心驅動程式。 傳統的記憶體修改工具(如 Cheat Engine 搭配驅動)需要在 Ring 0 核心層運作,而 SmmMem 則是將所有記憶體操作邏輯——包括分頁表查詢、虛擬位址轉實體位址(VA→PA)、行程查找、模組查找、匯出整理以及讀寫操作——全部交給在 Ring -2 執行的 SMM 處理常式處理。 核心概念與架構 SmmMem 專案包含兩個韌體元件: 元件名稱功能說明Dxe.efi分配共享信箱、設定 ACPI WMI 門鈴、發布信箱設定給 SMM,並嘗試透過 EFI_SMM_COMMUNICATION_PROTOCOL 進行早期設定Smm.efi擷取信箱設定、註冊 SMI 處理常式、處理來自使用者模式 API 的記憶體請求,實際執行所有記憶體操作 當 Windows 啟動後,使用者模式的客戶端程式可以透過 ACPI WMI 方法發送請求。ACPI 方法會將請求複製到共享信箱,觸發軟體 SMI 呼叫,然後由 SMM 處理常式在 -2 層級處理該命令。 👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app 使用者模式 API 說明 安裝好韌體端之後,在 Windows 中使用 SmmMem 非常簡單。你不需要載入驅動、啟用測試簽章,或與任何核心元件互動。應用程式只需要包含 API 標頭檔、連結客戶端程式庫,然後呼叫標準 C 函式即可。 #include "Api.h" int main(void) { PROCESS_INFO Process = {0}; char Buffer[16] = {0}; Init(); FindProcessByName("notepad.exe", &Process); ReadVirt(Process.Pid, Process.ImageBase, Buffer, sizeof(Buffer)); Close(); return 0; } 目前 API 提供以下核心功能: 初始化/結束:Init()、Close()、Ping()行程查找:FindProcessByPid()、FindProcessByName()位址轉換:TranslateVirt()(虛擬位址轉實體位址)虛擬記憶體存取:ReadVirt()、WriteVirt()實體記憶體存取:ReadPhys()、WritePhys()模組與匯出:FindModule()、FindKernelModule()、FindExport()記憶體傾印:Dump() 一旦韌體安裝完成,你的使用者模式程式碼完全不需要操心 SMI、ACPI、內部 WMI 結構、信箱結構或分頁表——只需呼叫 API,SMM 就會處理所有工作。 ACPI WMI 門鈴溝通機制 溝通通道是這個專案最關鍵的部分。最直覺的解法是使用核心驅動:驅動程式將請求寫入共享信箱,直接觸發軟體 SMI。這確實可行,但如果使用者模式仍然需要核心驅動才能與 SMM 溝通,那這個專案的一大賣點就消失了。 因此,作者用 ACPI WMI 取代了核心驅動。 開機時,DXE 會安裝一個小型 SSDT,建立 ACPI WMI 裝置。Windows 透過標準 WMI 介面提供對此裝置的存取,因此一般使用者模式行程可以開啟它並呼叫方法。客戶端載入 Advapi32.dll,使用 WmiOpenBlock 開啟 WMI 區塊,並使用 WmiExecuteMetdodW 呼叫 ACPI WMI 方法。 內部來說,ACPI 方法執行三個動作: 將使用者模式請求緩衝區複製到共享信箱將 SMI 值寫入 SMI 命令埠將 SMM 回應緩衝區返回給使用者模式 這就是為什麼作者稱之為「門鈴」——SMM 程式碼並非在背景持續執行,也不會持續監控記憶體等待新命令。SMM 只有在處理器因 SMI 而進入 SMM 時才會被觸發。因此,單純將請求寫入記憶體是不夠的,必須有人「按下門鈴」。 安裝教學與編譯步驟 ⚠️ 重要風險警告 燒錄修改過的韌體可能導致主機板磚壞,意味著主機板可能無法開機,甚至無法進入 BIOS。在嘗試之前,請確保你有可靠的復原方法,例如 BIOS Flashback、外部燒錄器,或其他復原途徑。 編譯韌體元件 開啟 x64 Visual Studio 開發人員命令提示字元執行 src\build.cmd 編譯專案編譯完成後會產生 Dxe.efi 和 Smm.efi 兩個檔案 UEFI 韌體燒錄 將 Dxe.efi 和 Smm.efi 加入你的韌體中並燒錄到主機板最簡單的方法是直接替換現有的 DXE 和 SMM 模組(例如使用 UEFI Tools)開機後觀察序列埠輸出,確認韌體初始化、信箱設定、ACPI WMI 設定和 SMI 處理常式註冊訊息你需要將 COM 埠讀取器連接到主機板的序列標頭 使用者端程式編譯 在 Windows 中建立你的使用者模式應用程式在專案中包含 Api.h連結 Client.c 檔案重要:編譯 Client.c 時必須定義 API_ONLY,以排除內建的測試 main 函式 MSVC 編譯範例: cl /nologo /W4 /O2 /DAPI_ONLY app.c Client.c 使用前呼叫 Init(),使用完畢呼叫 Close()。溝通通過 ACPI WMI 進行,不需要核心驅動。 API 使用注意:韌體端必須先安裝完成,因為使用者模式 API 只透過 ACPI WMI 門鈴發送請求。實際的讀取、寫入、轉換、行程查找、模組查找和匯出整理工作都由 SMM 元件處理。 支援平臺與系統需求 項目需求規格韌體平臺x64 UEFI 韌體,支援 AMI Aptio V 風格 PI SMM作業系統Windows 10 或 Windows 11溝通機制ACPI WMI 命令,用於從使用者模式觸發 SMM 記憶體請求測試平臺ASUS TUF X870(AMD 平臺)、MSI Z790 EDGE(Intel 平臺) 疑難排解與除錯 如果專案無法正常運作,請協助作者找出原因: 下載除錯版本的韌體使用 DbgRead 擷取記錄檔提供你的主機板名稱和使用的修補方法 檔案下載點 所有站內附件皆會附上安全掃描報告請會員查看純淨度百分比後判斷使用(adsbygoogle = window.adsbygoogle || []).push({});相關檔案須知:取得檔案前,請先詳細閱讀文章內容避免不必要錯誤與誤會發生。也可多參考文章討論樓層內容了解附件檔案相關討論資訊。 【此文章部分內容隱藏中】 解除隱藏說明教學點擊下方 繼續閱讀文章 後請仔細觀看文章內容 並依照指示進行下一步最後完成解除隱藏後系統會回到此文章自動顯示隱藏內容~繼續閱讀 常見問題Q&A Q:SmmMem 跟傳統核心驅動有什麼不同? A:傳統驅動在 Ring 0 運作,而 SmmMem 透過 SMM 在 Ring -2 運作。最大的優勢是使用者端完全不需要載入任何驅動程式,規避了驅動簽章和防作弊驅動偵測的問題。 Q:什麼是 Ring -2?為什麼比 Ring 0 更高權限? A:Ring -2 指的是 SMM(系統管理模式),這是 x86 處理器的一種特殊執行模式,比 Ring 0 核心模式擁有更高的權限和隔離性。SMM 通常用於處理系統層級功能如電源管理、溫度監控等。 Q:燒錄韌體有什麼風險? A:錯誤的韌體燒錄可能導致主機板無法開機(俗稱「磚壞」)。強烈建議在操作前確認主機板支援 BIOS Flashback 或有外部燒錄器等復原手段。 Q:SmmMem 可以繞過哪些防作弊系統? A:SmmMem 的設計重點是提供無驅動的記憶體存取能力。由於不涉及傳統驅動載入,可能規避依賴驅動偵測的防機制,但具體效果取決於各遊戲的防作弊實作。 Q:哪些主機板支援 SmmMem? A:需要 x64 UEFI 韌體並支援 AMI Aptio V 風格 PI SMM。目前已測試 ASUS TUF X870(AMD)和 MSI Z790 EDGE(Intel),但其他符合規格的主機板理論上也可使用。 Q:如何確認韌體是否正確安裝? A:開機時透過序列埠讀取器觀察輸出,應該能看到韌體初始化、信箱設定、ACPI WMI 設定和 SMI 處理常式註冊的訊息。 Q:編譯時出現重複定義錯誤怎麼辦? A:編譯 Client.c 時務必定義 API_ONLY 巨集,這會排除檔案內建的測試 main 函式,避免與你的應用程式主函式衝突。replyreload += ',' + 2469053; |
