發新話題
打印

資料執行防止

資料執行防止

資料執行防止的作用是什麼?

資料執行防止 (DEP) 是一組軟硬體技術,這些技術會在記憶體上執行額外的檢查,以協助保護系統不受惡意程式碼的攻擊。在 Windows Server 2003 (含 Service Pack 1) 中,DEP 可由軟體及硬體強制執行。

硬體強制執行 DEP

硬體強制執行 DEP 會將處理程序中的所有記憶體位置標示為不可執行,直到該位置確實包含可執行的程式碼為止。有一種攻擊方法是嘗試從不可執行的記憶體位置插入及執行程式碼。DEP 可攔截這些攻擊並提出例外,以協助防止這些攻擊行為。

硬體強制執行 DEP 會根據處理器硬體,並利用可指出不應該從該記憶體執行程式碼的屬性來標示記憶體。DEP 是以每個虛擬記憶體分頁為基礎來運作,通常只要在分頁表項目 (PTE) 中作一些小改變,就可以標示記憶體分頁。

DEP 實際的硬體執行和標示虛擬記憶體分頁這兩個動作,會因處理器架構而有所不同。不過,在已經使用適當屬性集來標示的分頁上執行程式碼時,支援硬體強制執行 DEP 的處理器可以提出例外。

Advanced Micro Devices (AMD) 及 Intel Corporation 兩家公司都定義並發行了與 DEP 相容的 Windows 相容架構。

32 位元版本的 Windows Server 2003 (含 Service Pack 1) 使用非執行分頁保護 (NX) 處理器功能 (由 AMD 定義),或使用執行停用位元 (XD) 功能 (由 Intel 定義)。若要使用這些處理器功能,處理器必須在實體位置延伸實體位址擴充 (PAE) 模式中執行。 Windows 的 64 位元版本會在 64 位元擴充的處理器上使用 NX 或 XD 處理器功能,並使用 IPF 處理器上的分頁表項目 (PTE) 欄位之存取權限的特定值。

我們希望未來所有的 32 位元和 64 位元處理器都支援硬體強制執行 DEP。Microsoft 會繼續與處理器廠商合作,期望未來可以更進一步採用及開發 DEP 技術。

軟體強制執行 DEP

Windows Server 2003 (含 Service Pack 1) 中額外新增一組 DEP 安全性檢查。這些檢查 (也稱為軟體強制執行 DEP) 是設計來減輕 Windows 中例外處理機制受到攻擊的危險。軟體強制執行 DEP 可以在任何能夠執行 Windows Server 2003 (含 Service Pack 1) 的處理器上執行。在預設情況下,不論處理器是否具有硬體強制執行 DEP 功能,軟體強制執行 DEP 僅會保護有限的系統二進位檔案。

這個功能的適用對象?

應用程式和驅動程式開發人員必須瞭解 DEP 以及在支援平台上執行的軟體需求。執行 JIT (Just-In-Time) 程式碼產生或從預設處理程序堆疊或堆積執行記憶的應用程式,必須特別注意 DEP 需求。

驅動程式開發人員更需要瞭解在支援硬體強制執行 DEP 平台上的 PAE 模式。在執行 Windows Server 2003 Standard Edition (含 Service Pack 1) 之系統上的 PAE 模式行為會變成增進驅動程式功能。

Windows Server 2003 Service Pack 1 中這個功能的新增功能為何?

Windows 32 位元和 64 位元版本與應用程式上的資料執行防止

詳細描述

硬體強制執行 DEP

為了對應用程式和驅動程式開發人員提供一致性,設計的記憶體保護模型 (包括 DEP) 在 Windows 的 32 位元和 64 位元版本中都相同。

應用程式開發人員應該瞭解使用者模式中的 DEP 行為。使用者模式 DEP 例外會在 Windows 系統上導致 STATUS_ACCESS_VIOLATION (0xc0000005)EXCEPTION_RECORD 結構內的第一個參數 ExceptionInformation 包含了發生的存取違規類型。值為 8 的 ExceptionInformation[0] 指出存取違規是例外違規。

在大部分處理程序中,STATUS_ACCESS_VIOLATION 例外是無法處理的例外,並且會導致處理程序終止。

DEP 也會套用到核心模式中的驅動程式。在核心模式中,記憶體區域的 DEP 無法選擇為啟用或停用。在 Windows 32 位元版本中,依預設,DEP 會套用到堆疊。這與 Windows 64 位元版本上的核心模式 DEP 不同。在 64 位元版本上,堆疊、分頁集區以及工作階段集區都套用了 DEP。

啟用 DEP 時,不允許裝置驅動程式從堆疊執行程式碼。核心模式中的 DEP 存取違規會導致錯誤 0xFC: ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

軟體強制執行 DEP

軟體強制執行 DEP 會在 Windows 中的例外處理機制上,執行額外的檢查。如果程式的映像檔是以 SafeSEH (Safe Structured Exception Handling) 建置,軟體強制執行 DEP 會確定在發送例外之前,已在位於映像檔內的函式表中登錄例外處理常式。

如果程式的映像檔不是以 SafeSEH 建置,軟體強制執行 DEP 會確定在發送例外之前,位在記憶體區域內的例外處理常式已標示為可執行。

DEP 應用程式關閉行為

多數應用程式都不會遇到 DEP 問題。但當應用程式確實出現 DEP 問題時,會向使用者呈現資料執行防止訊息,讓使用者注意該問題。

資料執行防止訊息指出 DEP 問題因應用程式而發生,並讓使用者能夠更瞭解 DEP,而能選擇是否要對已關閉的應用程式停用 DEP。

重要事項:

如果 DEP 問題是因為應用程式而發生,Microsoft 建議您聯絡應用程式供應商以取得更新。針對應用程式停用 DEP 之前,必須徹底考量對應用程式停用 DEP 蘊涵的安全性含意。

使用 [資料執行防止] 訊息視窗的 [變更設定] 按鈕來為已關閉的應用程式變更 DEP 設定的能力,端視系統範圍的 DEP 設定而定。只有當系統範圍的 DEP 設定設為 [OptOut] 模式時,才能為應用程式變更 DEP 保護。

資料執行防止訊息會立即出現在 [Windows 錯誤報告] 視窗之前,它可讓您將 DEP 問題的報告提交給 Microsoft。

在 Windows Server 2003 (含 Service Pack 1) 中,資料執行防止訊息會在系統管理員下一次以互動方式登入系統時出現。與 Windows XP Service (含 Service Pack 2) 相比,Windows Server 2003 (含 Service Pack 1) 已變更此行為,這是由於 Windows 錯誤報告預設是在佇列模式下設定。下一次系統管理員以互動方式登入系統之前,佇列模式會將錯誤報告訊息排入佇列內。

若要更清楚瞭解 [Windows 錯誤報告] 或設定 [Windows 錯誤報告] 為 DEP 和 [Windows 錯誤報告] 訊息會緊接在應用程式問題之後顯示,請參閱<在受管理的環境中使用 Windows Server 2003:Windows 錯誤報告>文件 (英文),位於 Microsoft 網站 (網址是 http://go.microsoft.com/fwlink/?LinkId=38443)。

當應用程式因為 DEP 的緣故而關閉時,Windows 錯誤報告會產生錯誤簽章。透過 [Windows 錯誤報告] 對話方塊中的 [按這裡] 連結可以檢視錯誤簽章。DEP 問題的錯誤簽章有下列屬性:

參數 範例值 描述

EventType

BEX

表示緩衝區溢位 (/GS) 或 DEP 例外狀況 (BEX64 表示 64 位元版本 Windows 的緩衝區溢位 (/GS) 或 DEP 例外狀況)

P1

DEPDemo.exe

遇到問題之應用程式的執行檔名稱

P2

5.1.2600.2180

遇到問題之應用程式的執行檔版本

P3

416725f2

錯誤應用程式戳記

P4

DEPDemo.exe

錯誤模組名稱

P5

5.1.2600.2180

錯誤模組版本

P6

416725f2

錯誤模組戳記

P7

00002060

錯誤位移 (如果沒有在錯誤位址載入模組,則會指示位址)

P8

C0000005

表示 STATUS_ACCESS_VIOLATION 例外狀況 (如果此參數為 c0000409,則該問題是與 /GS 相關的錯誤)

P9

00000008

表示執行 STATUS_ACCESS_VIOLATION (00000002 表示 Intel Itanium 架構之 64 位元版本 Windows 中的執行 STATUS_ACCESS_VIOLATION)

最後,不管 [Windows 錯誤報告] 的設定為何,當應用程式發現 DEP 問題時,有些應用程式可能不會顯示資料執行防止訊息。這些應用程式會處理 DEP 引發的 STATUS_ACCESS_VIOLATION 例外狀況,或安裝會覆寫預設 Win32 UEF 的未處理例外篩選器 (UEF)。預設的 Win32 UEF 主要是負責觸發資料執行防止和 [Windows 錯誤報告] 訊息。如果應用程式已使用 SEM_NOGPFAULTERRORBOX 旗標來呼叫 SetErrorMode() 函式,可能不會顯示資料執行防止訊息。

為何這個變更很重要?它可協助減輕哪些威脅?

DEP 的主要優點在於可幫助防止從資料頁 (例如預設堆積、各種堆疊和記憶體集區) 執行程式碼。在系統的正常作業中,通常不會從預設堆積和堆疊執行程式碼。硬體強制執行 DEP 會偵測正在從這些位置執行的程式碼,並在發生執行時提出例外。如果尚未處理例外,將會終止處理程序。在核心模式的受保護記憶體中執行程式碼會導致錯誤。

儘管終止處理程序或造成系統失敗並產生錯誤不是理想的經歷,但這樣可協助防止執行惡意的程式碼。防止在系統上執行惡意的程式碼可以制止系統遭到損害或傳播惡意程式碼,而這些傷害無疑是超過終止處理程序或系統錯誤所造成的損害。

有時病毒或其他攻擊會將可執行程式碼插入處理程序中,隨後試圖執行所插入的程式碼,DEP 可以協助防止這樣的攻擊。在具有 DEP 的系統上,執行插入的程式碼會發生例外。軟體強制執行 DEP 可以降低 Windows 內的例外處理機制攻擊。

DEP 次要的優點與應用程式和驅動程式開發人員良好的工程與最佳作法相關。DEP 可強迫開發人員避免在資料頁外執行程式碼,而不會明確地將頁面標示為可執行。

運作方法有什麼不同?

應用程式相容性

有些應用程式行為預期會與 DEP 不相容。執行動態程式碼產生 (例如 Just-In-Time 程式碼產生) 和沒有明確地將產生的程式碼以「執行」權限來標示的應用程式,都可能有 DEP 相容性的問題。不是以 SafeSEH 建置的應用程式在可執行的記憶體區域中必須有自己的例外處理常式。

試圖違反 DEP 的應用程式將收到例外,狀態碼為 STATUS_ACCESS_VIOLATION (0xC0000005)。如果應用程式需要可執行的記憶體,它必須在 Virtual* 記憶體配置函式之記憶體保護引數中指定 PAGE_EXECUTE PAGE_EXECUTE_READ PAGE_EXECUTE_READWRITE PAGE_EXECUTE_WRITECOPY,才能在適當的記憶體上明確地設定這個屬性。使用 malloc()HeapAlloc() 函式的堆積配置為不可執行。

驅動程式相容性

DEP 的驅動程式相容性問題大部分集中在由 PAE 模式引起的相容性問題。

注意:

只有在執行 Windows 32 位元版本的系統上且具有支援硬體強制執行 DEP 的處理器上才需要 PAE。

以它本身來說,DEP 可能會因為執行程式碼產生或使用其他技術來即時產生可執行程式碼的驅動程式,而引起相容性問題。儘管已修正許多具有這類行為的驅動程式 (因為 DEP 永遠會對在 Windows 64 位元版本上載入的驅動程式開啟),但不能保證已更新所有驅動程式。不過,有少數驅動程式已經使用這些技術,而且就算只有 DEP 也不會造成大量的驅動程式相容性問題。

主要驅動程式相容性有關的問題是在 32 位元系統上執行實體位址擴充 (PAE) 模式。PAE 模式會讓處理器定址大於 4 GB 的記憶體。PAE 記憶體分頁和非 PAE 記憶體分頁配置之間主要的差異在於,PAE 模式中需要額外的分頁層 (需要三層而非兩層)。

啟用 PAE 時有些驅動程式可能無法載入,因為裝置可能無法執行 64 位元定址,或驅動程式可能假設 PAE 模式需要 4 GB 以上的隨機存取記憶體 (RAM)。這種驅動程式預期在 PAE 模式中時永遠會接收 64 位元的位址,但這些驅動程式或它們的裝置無法解譯此位址。

其他驅動程式可能在 PAE 模式中載入,但會因直接修改系統分頁表項目 (PTE) 而造成系統不穩。這些驅動程式預期 32 位元的 PTE,但在 PAE 模式中卻會接收 64 位元的 PTE。

最大的驅動程式 PAE 相容性問題牽涉到直接記憶體存取 (DMA) 傳輸和對應登錄配置。支援 DMA 的許多裝置 (通常是 32 位元的配接卡) 無法執行 64 位元實體定址。在 32 位元模式中執行時,裝置可以定址所有實體位址空間。在 PAE 模式中,它可能會在大於 4 GB 的實體位址處顯示資料。為使具有這些限制的裝置得以在此案例中執行,Windows 2000 Server 及更新版本作業系統會藉由提供由對應暫存器所指出的 32 位元位址,為 DMA 交易提供雙重緩衝。裝置可以執行 32 位元位址的 DMA 交易,而核心會將記憶體複製到提供給驅動程式的 64 位元位址。

在停用 PAE 的情況下執行系統時,32 位元裝置的驅動程式永遠不需要實際記憶體傳回其對應登錄。這表示不需要雙重緩衝處理,因為 32 位元位址空間中已包含所有裝置和驅動程式。根據在 64 位元處理器電腦上測試 32 位元裝置的驅動程式,如預期所料,大部分用戶端測試過的 DMA 驅動程式需要無限制的對應登錄。

若要限制相容性問題,Windows  Server  2003 Standard Edition (含 Service Pack 1) 包含仿效 32 位元 HAL DMA 行為的硬體抽象層 (HAL) 變更。系統在 PAE 模式中執行時,變更的 HAL 授予無限制的對應登錄。此外,核心記憶體管理員會忽略任何高於 4 GB 的實體位址。超過 4 GB 界限的系統 RAM 會使 Windows 無法無法定址,且無法在系統中使用。將位址空間限制為 4 GB,具有 32 位元 DMA 匯流排主要功能的裝置便看不到具有 4 GB 以上的界限位址的交易。由於這些變更會除去雙重緩衝交易的需求,會免去在某些驅動程式中 (與雙重緩衝處理支援的適當實作相關) 的錯誤類別。

請注意,與不含 Service Pack 的版本相比,Windows Server 2003 Enterprise Edition (含 Service Pack 1) 及 Windows Server 2003 Datacenter Edition (含 Service Pack 1) 的 PAE 行為並沒有變更。

變更 HAL 和記憶體管理員所帶來的結果是,在執行已啟用 DEP 之 Windows  Server  2003 (含 Service Pack 1) 的系統上,對裝置驅動程式相容性的影響預期會是最小。

系統相容性

最終的 DEP 相容性問題會從啟用 PAE 模式的系統衍生,雖然這些系統可能不是針對具有 4 GB 以上的實體 RAM 來設計的。在內部測試期間,Microsoft 已注意到在 PAE 模式中執行處理器時,具有支援硬體強制執行 DEP 的處理器之某些系統無法啟動,或有其他穩定性問題。

PAE 模式是保留 NX 處理器功能的必要條件。因此,系統設計人員和韌體工程師必須瞭解,即使系統的晶片組和韌體可能不是設計為支援 4 GB 以上的實體 RAM,系統也許是在 PAE 模式中執行。

特別需要注意的是系統韌體,它會解譯分頁表項目以判斷作業系統所執行的指令。當處理器在 PAE 模式中執行時,分頁表項目的長度會擴充為 64 位元。系統設計人員和韌體開發人員將持續與處理器和晶片組供應商聯繫,以取得如何安全地判斷作業系統所執行之指令的相關資訊。

使用 AMD 處理器的系統設計人員,可以從《AMD Athlon 64 及 AMD Opteron 處理器的 BIOS 及核心開發人員指南》(英文) 中獲得詳細資訊。若要取得該指南,請前往 AMD Athlon 64 網站 (英文) (網址是 http://go.microsoft.com/fwlink/?LinkId=28165),並按一下 [BIOS and Kernel Developer' s Guide for AMD Athlon 64 and AMD Opteron Processors]。

Intel 沒有公開可使用的系統管理模式 (SMM) 詳細資訊。 使用 Intel 處理器的系統設計人員可直接與 Intel 聯繫,即可取得詳細資訊。

如需 PAE 模式之 Windows 支援的相關資訊,請參閱 Microsoft 網站 上的<實體位址延伸 - PAE 記憶體及 Windows>(英文) (網址是 http://go.microsoft.com/fwlink/?LinkId=45912)。

我要怎麼解決這些問題?

在配置記憶體時,需要記憶體可執行區域的應用程式必須使用 PAGE_EXECUTEPAGE_EXECUTE_READPAGE_EXECUTE_READWRITEPAGE_EXECUTE_WRITECOPY 屬性。此外,應用程式無法從預設處理程序堆積或堆疊執行。大部分需要執行與 DEP 不相容的動作之應用程式都必須更新過才會相容。也必須以 SafeSEH 來建置應用程式,或確定它們的例外處理常式位於明確標示為可執行的記憶體中。

應用程式可以使用 VirtualAlloc() 應用程式發展介面 (API) 功能,以適當的記憶體保護選項來配置可執行的記憶體。至少應該使用 PAGE_EXECUTE 記憶體保護選項。產生可執行的程式碼之後,建議應用程式集記憶體保護不允許寫入存取已配置的記憶體。應用程式可以使用 VirtualProtect() API 功能,不允許寫入存取已配置的記憶體。不允許寫入存取可以確保處理程序位址空間之可執行區域最大的保護程度。

如果惡意的處理程序嘗試將程式碼插入可執行的區域,這個存取便會產生 STATUS_ACCESS_VIOLATION 寫入例外。應用程式應該嘗試將位址空間的可執行區域儘可能的縮小。這樣會使可執行記憶體插入處理程序位址空間並被執行的攻擊面變小。

此外,複雜的應用程式可以控制虛擬記憶體的佈置,並建立可執行的區域。這些應用程式應該嘗試在比不可執行的區域中更低的記憶體空間中,尋找可執行的區域。尋找低於不可執行區域的可執行區域之目的是要保護緩衝區溢位不會滿到可執行的記憶體中。

小量的可執行檔和程式庫可能在映像檔的資料區段中包含可執行程式碼。在某些案例中,應用程式會將小段程式碼片段 (通常稱為 Thunk) 放置到資料區段中。然而,DEP 會將記憶體中載入的映像檔區段標示為不可執行 (除非該區段已套用可執行屬性)。

因此,資料區段中的可執行程式碼應該移到程式碼區段,或者包含可執行程式碼的資料區段應該明確地標示為可執行。可執行的屬性 (IMAGE_SCN_MEM_EXECUTE (0x20000000)) 應該對包含可執行程式碼的區段,加入相對應區段標頭的 [特性] 欄位。

與 Microsoft Visual Studio 產品一起散發的 Microsoft 連結器可以使用 /SECTION 連結器選項,將可執行屬性加入區段。/SECTION 連結器選項的格式如下:

/SECTION: Name ,[E][R][W][S][D][K][L][P][X][,ALIGN=#]

E 值指出可執行屬性 (0x20000000)。/SECTION 及其他 Microsoft 連結器選項的相關資訊位於 MSDN 網站 (英文) (網址是 http://go.microsoft.com/fwlink/?LinkId=28167)。

此外,Microsoft COFF Binary File Editor (Editbin.exe) 公用程式可用來變更現有映像的區段屬性。 Editbin 公用程式具有下列格式的 /SECTION 選項:

/SECTION: Name [= newname ][,[[!]{CDEIKOMPRSUW}][A{1248PTSX}]]

C E 值分別指出程式碼和可執行屬性。如需 Editbin 公用程式及 /SECTION 選項的相關資訊,請參閱 MSDN 網站 (英文) (網址是 http://go.microsoft.com/fwlink/?LinkId=28168)。

Microsoft 已提供 Microsoft .NET Framework 1.0 版及 1.1 版的 Service Pack,以利用 Windows Server 2003 (含 Service Pack 1) 中的 DEP。使用 Microsoft .NET Framework 的應用程式將繼續正常運作,但不會受益於 DEP (如果已啟用),除非已安裝適當的 Microsoft .NET Framework Service Pack。

Microsoft 鼓勵轉散佈 Microsoft .NET Framework 的應用程式開發人員更新至 Microsoft .NET Framework 1.0 版 Service Pack 3 或 1.1 版 Service ack 1,以取得使用 DEP 所帶來的好處。

Windows Server  2003 Service Pack  1 中新增或變更了哪些設定?

DEP 的系統範圍設定

與 Windows XP Service Pack 2 (SP2) 相比,Windows Server 2003 Service Pack 1 之 DEP 行為的主要不同之處在於,在伺服器作業系統上,預設設定會保護所有應用程式及服務。在 Windows XP SP2 中,預設僅為必要的 Windows 作業系統程式及服務啟用 DEP。

可透過 Boot.ini 參數控制系統的 DEP 設定。此外,已對 [控制台] 的 [系統] 做一些變更,可在使用者以管理員身分登入系統時,讓使用者能夠很容易地設定 DEP 設定。

在 Windows 32 位元或 64 位元版本上執行時,只對 32 位元的應用程式和處理程序套用系統 DEP 設定。在 Windows 64 位元版本上,如果可使用硬體強制執行 DEP,則永遠會套用到 64 位元處理程序和核心記憶體空間,並且沒有可停用它的系統設定。

Windows 支援適用於硬體強制執行和軟體強制執行 DEP 的四個系統範圍設定。

DEP 設定


設定 描述

OptIn

(Windows XP SP2 及 Windows XP 64 位元版本的預設值)

在具有硬體強制執行 DEP 之處理器的系統上,依預設會對參加的受限制系統二進位碼檔案和應用程式啟用 DEP。使用這個選項時,依預設 DEP 只會涵蓋 Windows 系統二進位碼檔案。

OptOut

(Windows Server 2003 Service Pack 1 的預設值)

依預設,會對所有處理程序啟用 DEP。使用者可以手動建立特定的應用程式清單,這些應用程式沒有使用 [控制台] 的 [系統] 來套用 DEP。IT 專家可以使用應用程式相容性工具組,從 DEP 保護中退出一或多個應用程式。DEP 的系統相容性修正程式 (shims) 會生效。

AlwaysOn

這個會為整個系統提供完整的 DEP 涵蓋範圍。所有處理程序一律會在啟用 DEP 時執行。從 DEP 保護中免除的特定應用程式例外清單將無法使用。DEP 的系統相容性修正程式 (shims) 不會生效。使用應用程式相容性工具組來退出的應用程式會在套用 DEP 時執行。

AlwaysOff

不管硬體 DEP 支援為何,這個選項不會為系統的任何部分提供 DEP 涵蓋範圍。然而,除非開機項目中的 /noexecute=alwaysoff 選項已取代為 /execute 選項,否則處理器會以 32 位元版本 Windows 的 PAE 模式執行。

會以相同的方式來設定硬體強制執行和軟體強制執行 DEP。如果整個系統的 DEP 原則設為 OptIn,則相同的 Windows 核心二進位檔案及應用程式將受到硬體及軟體強制執行 DEP 的保護。如果系統不具有硬體強制執行 DEP 功能,則 Windows 核心二進位檔案及應用程式將僅受到軟體強制執行 DEP 保護。

同理,如果整個系統的 DEP 原則設為 OptOut,則不受 DEP 保護的應用程式也將不受硬體及軟體強制執行 DEP 管轄。

將透過 Boot.ini 參數控制這四個系統範圍 DEP 設定。Boot.ini 設定如下:

/noexecute=policy_level

其中 policy_level 定義為 AlwaysOnAlwaysOffOptInOptOut

如果已安裝 Windows Server 2003 Service Pack 1,或 Windows 作業系統映像在具有及不具有硬體強制執行 DEP 支援的電腦間移動,則 Boot.ini 檔案中的現有 /noexecute 設定不會變更。

安裝 Windows Server 2003 Service Pack 1 期間,除非在自動安裝中指定了其他原則層級,否則預設會啟用 OptOut 原則層級。如果在支援 DEP 之 Windows 版本的開機項目中沒有出現 /noexecute=policy_level 設定,該行為會和包含 /noexecute=OptIn 選項時相同。

以管理員身分登入的使用者可以在 OptIn OptOut 原則之間,使用 [效能選項] 對話方塊內的 [資料執行防止] 索引標籤,手動設定 DEP。下列程序描述如何在電腦上手動設定 DEP。

若要設定 DEP 設定

1.

請按一下 [開始]、 [控制台],然後按兩下 [系統]。

2.

按一下 [進階] 索引標籤。然後在 [效能] 底下按一下 [設定]。

3.

按一下 [資料執行防止] 索引標籤。

4.

按一下 [只為基本的 Windows 程式和服務開啟 DEP],以選取 [OptIn] 原則。

5.

按一下 [為所有的程式和服務開啟 DEP,除了我選擇的這些],以選取 [OptOut] 原則。

6.

如果已選取 [OptOut] 原則,請按一下 [新增],然後新增您不要與 DEP 搭配使用的應用程式。

IT 專家有多種方法可以控制系統範圍的 DEP 設定。可以使用 Windows Server 2003 Service Pack 1 中所含的 Bootcfg.exe 工具,或使用指令碼處理機制直接修改 Boot.ini 檔案。

而在自動安裝 Windows Server 2003 (含 Service Pack 1) 時,可以使用 Unattend.txt 檔案來預先填入特定 DEP 設定。您可以使用 Unattend.txt 檔案之 [Data] 區段中的 OSLoadOptionsVar 項目,以指定系統範圍 DEP 設定。

個別應用程式 DEP 設定

針對當 DEP 設為 OptOut 原則層次時的應用程式相容性目的,可能可以對個別的 32 位元應用程式停用 DEP。不過,永遠會對 64 位元應用程式啟動 DEP。

針對使用者,可使用 [系統內容] 中的 [資料執行防止] 索引標籤,選擇性地對應用程式停用 DEP。

對於 IT 專業人員,Windows Server 2003 Service Pack 1 中含有名為 DisableNX 的新應用程式相容性修正程式。DisableNX 相容性修正程式可停用套用至程式的 DEP。

DisableNX 相容性修正程式可以使用應用程式相容性工具組套用到應用程式。如需 Windows 應用程式相容性的相關資訊,請參閱 Microsoft 網站 上的<Windows 應用程式相容性>(英文) (網址是 http://go.microsoft.com/fwlink/?LinkId=23302)。

TOP

發新話題