當前位置:編程學習大全網 - 源碼下載 - 數據執行保護DEP是什麽意思,為什麽有時說DEP保護,就不能上網了

數據執行保護DEP是什麽意思,為什麽有時說DEP保護,就不能上網了

DEP是數據執行保護。64位計算機和賽揚D支持硬件級的保護。壹般的計算機可以用軟件模擬。具體就是防止內存溢出。現在很多的攻擊很多利用的就是內存溢出。所以DEP很大程度上可以防止溢出情況發生。總的說:數據執行保護 (DEP) 是壹組硬件和軟件技術,用來對內存執行附加檢查以幫助防止惡意代碼的入侵。

以下是微軟的技術文檔:數據執行保護

數據執行保護的作用是什麽?

數據執行保護 (DEP) 是壹組硬件和軟件技術,用來對內存執行附加檢查以幫助防止惡意代碼的入侵。在 Windows XP SP2 中,由硬件和軟件強制執行 DEP。

硬件強制的 DEP

硬件強制的 DEP 將壹個進程中所有內存位置均標記為非可執行,除非該位置明確包含可執行代碼。有壹類攻擊程序企圖在非可執行的內存位置中插入代碼並執行代碼。通過截取這些代碼並產生壹個異常,數據執行保護有助於防範這些攻擊。

硬件強制的 DEP 依靠處理器硬件標記內存,使內存帶有壹個屬性,表明不應該執行此處的代碼。數據執行保護以每個虛擬內存頁面為基礎發揮作用,通常會修改頁表項 (page table entry - PTE) 中的壹個數據位,對內存加以標記。

具體的 DEP 硬件實現和虛擬內存頁的標記方式會根據處理器架構的不同而有所變化。但是,從壹個使用相應屬性集標記的頁面上執行代碼,支持硬件強制 DEP 功能的處理器將會產生壹個異常。

Advanced Micro Devices? (AMD) 和 Intel? Corporation 都已定義並推出了針對數據執行保護的 Windows-compatible(兼容)架構。

從 Windows XP Service Pack 2 開始,32 位版本的 Windows 開始使用由 AMD 定義的非執行頁面保護 (NX) 處理器功能或由 Intel 定義的執行禁用位 (Execute Disable bit) 功能。要使用這些處理器功能,處理器必須以“物理地址擴展”(PAE) 模式運行。64 位版本的 Windows XP 使用 64 位擴展上的 NX 處理器功能,以及 IPF 處理器上訪問權限頁表項 (PTE) 字段中的某些值。

可以期望,所有未來的 32 位和 64 位處理器都支持硬件強制實施的數據執行保護功能。Microsoft 將繼續與處理器制造商合作促進 DEP 技術的應用和發展。

軟件強制的 DEP

Windows XP SP2 中已經添加了另壹組數據執行保護的安全檢查。這些檢查功能也稱為軟件強制的 DEP,旨在降低 Windows 異常處理機制的使用。軟件強制的 DEP 能夠在可運行 Windows XP SP2 的任何處理器上運行。默認情況下,軟件強制的 DEP 僅保護有限的系統二進制文件,而不管處理器的硬件強制 DEP 功能如何。

此功能適用於哪些用戶?

應用程序和驅動程序開發人員應該了解數據執行保護以及在壹個支持平臺上運行軟件所應具備的條件。執行實時 (just-in-time - JIT) 代碼生成,或從默認進程堆棧或堆執行內存的應用程序應對 DEP 的要求加以認真對待。

我們鼓勵驅動程序開發人員重視支持硬件強制數據執行保護的平臺上的 PAE 模式。在 Windows XP Service Pack 2 系統中 PAE 模式的行為已發生變更,以便改善驅動程序的兼容性。

Windows XP Service Pack 2 中對此功能添加了哪些新功能?

32 位版本的 Windows 和應用程序中的數據執行保護

詳細說明

硬件強制的 DEP

盡管有幾點不同,數據執行保護的整體行為在 Windows 的 32 位版本和 64 位版本上完全相同。為了向應用程序和驅動程序的開發人員提供壹致性,內存保護模型(包括數據執行保護)被設計為在 32 位和 64 位版本的 Windows 上具有相同的行為。

應用程序開發人員應了解用戶模式中的 DEP 行為。用戶模式下的壹個 DEP 異常會導致 Windows 系統上的壹個 STATUS_ACCESS_VIOLATION (0xc0000005)。ExceptionInformation 的第壹個參數(位於 EXCEPTION_RECORD 結構中)包含了所發生的訪問違例的類型。如果 ExceptionInformation[0] 中值為 8,說明訪問違例是壹個執行違例。

在大多數進程中,STATUS_ACCESS_VIOLATION 異常將是壹個無法處理的異常,會導致進程終止。

DEP 也適用於內核模式的驅動程序。內核模式中內存區域的 DEP 不能有選擇地啟用或禁用。在 32 位版本的 Windows 中,數據執行保護默認情況下應用於堆棧。這和 Windows 64 位版本中的內核模式 DEP 不同,在 64 位版本中,堆棧、頁面緩沖池以及會話池已經采用了數據執行保護。

如果啟用了 DEP,不允許設備驅動程序從堆棧中執行代碼。內核模式中的 DEP 訪問違例會導致壹個檢測錯誤 0xFC:ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY

軟件強制的 DEP

軟件強制的 DEP 對 Windows 中的異常處理機制執行額外的檢查。如果程序的圖像文件是使用安全結構異常處理 (SafeSEH) 功能建立的,則軟件強制的 DEP 將確保在調度異常之前,在圖像文件中的函數表中註冊了異常處理程序。

如果程序的圖像文件不是使用 SafeSEH 建立的,則軟件強制的 DEP 將確保在調度異常之前,位於內存區域中的異常處理程序已經標記為可執行。

  • 上一篇:圖解BERT模型結構輸入輸出
  • 下一篇:海洋環境因子的數值計算與分析技術
  • copyright 2024編程學習大全網