程序代碼完整性檢查
記憶體完整性是以虛擬化為基礎的安全性 (VBS) 功能,可在 Windows 10、Windows 11 Windows Server 2016 和更新版本中使用。 記憶體完整性和 VBS可改善 Windows 的威脅模型,並針對嘗試利用 Windows 核心的惡意代碼提供更強大的保護。 VBS 會使用 Windows Hypervisor 來建立隔離的虛擬環境,成為假設核心可能會遭到入侵之操作系統的根信任。 記憶體完整性是一個重要元件,可在 VBS的隔離虛擬環境中執行核心模式程序代碼完整性,以保護和強化 Windows。 記憶體完整性也會限制可用來危害系統的核心記憶體配置,確保核心記憶體頁面只有在安全運行時間環境中傳遞程式代碼完整性檢查之後才會成為可執行檔,而且可執行檔頁面本身永遠不會寫入。
注意
記憶體完整性有時稱為 受 Hypervisor 保護的程式代碼完整性, (HVCI) 或 Hypervisor 強制執行的程式代碼完整性,最初是發行為 Device Guard 的一部分。 除了在 群組原則 或 Windows 登錄中尋找記憶體完整性和 VBS 設定,否則不再使用 Device Guard。
程式代碼完整性檢查可確保與記憶體完整性的核心記憶體使用量需求相容,並偵測下列違規:
錯誤碼 | 程式代碼完整性問題 |
---|---|
0x2000:
|
呼叫端指定可執行的集區類型。 預期 (:NonPagedPoolNx) |
0x2001:
|
呼叫端指定可執行的頁面保護。 (預期:已清除PAGE_EXECUTE* 位) |
0x2002:
|
呼叫端指定可執行的 MDL 對應。 (預期:MdlMappingNoExecute) 。 |
0x2003:
|
映像包含可執行檔和可寫入區段。 |
0x2004:
|
影像包含未對齊頁面的區段。 |
0x2005:
|
映射包含位於可執行檔區段中的 IAT。 |
開啟這個選項:
您可以使用驅動程式驗證器管理員或 Verifier.exe 命令行來啟用一或多個驅動程式的程式代碼完整性檢查。 如需詳細資訊,請參閱 選取驅動程式驗證器選項。 您必須重新啟動計算機,才能啟用或停用程式代碼完整性檢查選項。
在命令行
在命令行中,程式代碼完整性檢查是由 位 25) 0x02000000 (表示。 例如:
verifier /flags 0x02000000 /driver MyDriver.sys
下一次開機之後,此功能將會處於作用中狀態。
使用驅動程式驗證器管理員
- 啟動驅動程式驗證器管理員。 在 [命令提示字元] 視窗中輸入驗證程式。
- 選取 [為程式代碼開發人員建立自定義設定] () ,然後按 [下一步]。
- 選取 [ (檢查) 程序代碼完整性檢查]。
- 重新啟動電腦。