萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

Windows XP SP2緩衝區溢出防護機制深度剖析

SP2核心防護技術概覽

Windows XP SP2針對緩衝區溢出攻擊引入多項底層防護,使傳統利用全域指標、結構化例外處理(SEH)的漏洞利用代碼(Exploit)難以穩定運作。本文深入解析四大核心機制:

1. PEB基址隨機化(ASLR前身)

進程環境塊(PEB)映射起始位址經隨機化處理。雖隨機熵值較低,但已足以讓依賴固定PEB位址的Exploit失效或不穩定。流程涉及_NtCreateProcessEx→_PspCreateProcess→MmCreatePeb→MiCreatePebOrTeb,最終由MmMapViewOfSection映射隨機基址。

2. 頂層SEH保護

線程環境塊(TEB)頂層的預設例外處理器(Top-level SEH)受到保護,防止攻擊者覆寫SEH鏈指向Shellcode。任何嘗試覆寫將導致進程終止。

3. VEH鏈表指標_RtlpCalloutEntryList保護

向量化例外處理(VEH)鏈表頭指標_RtlpCalloutEntryList加入完整性校驗,阻止惡意註冊VEH處理器劫持控制流。

4. 堆塊Cookie防護

堆分配器在關鍵結構(如_HEAP_ENTRY)插入隨機Cookie,釋放時驗證。偽造堆塊或覆寫元數據將觸發檢查失敗,終止進程。

技術細節:PEB隨機化實現追蹤

PAGE:004B43E5 lea eax, [ebx+1B0h]   ; EPROCESS+1B0h = PEB指標位置
PAGE:004B43F1 call MmCreatePeb@12
; MmCreatePeb內部調用 MiCreatePebOrTeb
; 最終透過 MmMapViewOfSection 映射隨機基址的Section物件

此機制雖非完整ASLR(僅針對PEB),但顯著提升了漏洞利用難度,迫使攻擊者尋找資訊洩漏漏洞配合繞過。

未涵蓋範疇

  • 繞過技術(如資訊洩漏、ROP鏈構造)
  • 堆管理器內部演算法細節(SP2變化不大)

理解這些防護原理,有助於開發人員編寫更安全的代碼,也為安全研究人員評估漏洞利用可行性提供基準。

copyright © 萬盛學電腦網 all rights reserved