Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

你的 CPU 能防毒嗎?── Windows XP SP2 DEP 技術深度揭秘

編輯:Windows XP 系統介紹

Windows XP Service Pack 2 引入的 資料執行防護 (DEP, Data Execution Prevention) 是一項結合硬體與軟體的緩解技術,旨在防止惡意程式碼在標記為「非執行」的記憶體區域(如堆疊、堆積)執行,有效阻擋緩衝區溢位攻擊。本文深入解析 DEP 運作原理、硬體需求、設定模式、相容性問題與驗證方法。

核心原理:NX/XD 位元

  • 硬體層面:CPU 支援 NX (No-eXecute, AMD) 或 XD (eXecute Disable, Intel) 位元,在頁表項目中標記記憶體頁面為「不可執行」。
  • 作業系統層面:記憶體管理器依據 DEP 原則,為資料頁面(堆疊、堆積、資料段)設定 NX/XD 位元。若程式嘗試在這些頁面執行指令,CPU 觸發頁面錯誤例外 (STATUS_ACCESS_VIOLATION),OS 終止該程序。
  • 軟體模擬 (Software DEP):無硬體支援時,OS 透過 SafeSEH(結構化例外處理覆寫保護)與 SEHOP(SEH 覆寫保護)提供有限防護。

硬體需求

注意:32 位元 XP 僅能使用軟體 DEP;完整硬體 DEP 需 64 位元 XP (x64 Edition) 或 Vista 以上 64 位元版本。但在 32 位元 XP SP2/SP3 上,若 CPU 支援 NX/XD 且 BIOS 啟用,核心模式仍可受益於硬體 DEP 保護。

四種 DEP 運作模式

  1. OptIn (預設):僅保護核心模式元件與已註冊的使用者模式程式(如系統服務、IIS、SQL Server)。
  2. OptOut:保護所有程式,但可指定例外清單(適合大多數桌面環境)。
  3. AlwaysOn:強制保護所有程式,無例外(高安全性,相容性風險最高)。
  4. AlwaysOff:完全停用 DEP(不建議)。

設定方法

圖形介面

系統內容 (Win+Pause) → 進階 → 效能 → 設定 → 資料執行防護 → 選擇模式與例外。

命令列 (boot.ini)

/noexecute=optin   (預設)
/noexecute=optout
/noexecute=alwayson
/noexecute=alwaysoff

修改後需重開機生效。

登錄檔 (執行階段動態調整,需重啟程序)

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\ExecuteDisable (0=OptIn, 1=OptOut, 2=AlwaysOn, 3=AlwaysOff)

相容性問題與解決

  • 舊版應用程式誤判:某些合法程式(舊版壓縮解壓縮、模擬器、即時編譯器、特定防毒掃描引擎)會動態產生程式碼於資料區執行,觸發 DEP 終止。
     → 解決:加入例外清單、聯繫廠商更新、或暫時切換 OptIn 模式。
  • 驅動程式衝突:核心模式驅動程式若在分頁集區執行程式碼會導致系統崩潰 (BSOD)。
     → 解決:更新驅動程式、使用驅動程式驗證器 (verifier.exe) 找出問題驅動。

驗證 DEP 狀態

wmic OS Get DataExecutionPrevention_SupportPolicy
:: 0=AlwaysOff, 1=AlwaysOn, 2=OptIn, 3=OptOut

wmic OS Get DataExecutionPrevention_Available
:: TRUE 表示硬體支援

wmic OS Get DataExecutionPrevention_32BitApplications
:: TRUE 表示 32 位元應用程式受保護

wmic OS Get DataExecutionPrevention_Drivers
:: TRUE 表示核心驅動程式受保護

總結

DEP 是 XP SP2 最重要的安全性增強之一,雖非萬靈丹(無法防禦 ROP、JOP 等進階攻擊),但結合 ASLR (Vista+)、SEHOP、CFG (Windows 8.1+) 形成多層防護。確認 CPU 支援、BIOS 啟用、設定 OptOut 模式、建立例外清單,即可在相容性與安全性間取得最佳平衡。

Copyright © Windows教程網 All Rights Reserved
廠商技術名稱支援處理器(代表)需求
AMDNX (Enhanced Virus Protection)Athlon 64、Opteron、Sempron 64、Turion 64AMD64 架構
IntelXD (Execute Disable Bit)Pentium 4 (Prescott 後期)、Pentium D、Core 2 Duo、Celeron D (部分)EM64T 支援