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

進階技巧:修改 SFC_OS.DLL 關閉 Windows XP 系統檔案保護 (WFP)

編輯:XP 系統基礎知識

⚠️ 重要警示

本文涉及修改核心系統檔案與安裝復原主控台,操作風險極高,可能導致系統無法開機、安全防護失效。僅供進階使用者在測試環境研究,嚴禁在生產/重要電嘗試。作者不對任何損壞負責。

背景:Windows 檔案保護 (WFP) 機制

WFP 監控關鍵系統檔案(.dll、.sys、.exe 等),偵測到被取代/修改時,會從 DllCache 或安裝光碟自動還原原版檔案。這保護了系統穩定,但也阻擋合法的系統檔案替換(如修補 Uxtheme.dll 使用第三方主題、替換系統圖示等)。

核心原理:修補 SFC_OS.DLL 繞過檢查

SFC_OS.DLL (位於 %systemroot%\system32) 是 WFP 的核心執行元件。透過十六進位編輯器修改特定位移的機器碼,可使 WFP 檢查邏輯失效(將條件跳轉指令 JNZ 改為 NOP)。

操作環境與工具

  • 測試系統:Windows XP Professional SP0 英文版(不同版本/Service Pack 位移不同)。
  • 工具:UltraEdit-32 (十六進位編輯器)、Windows XP 安裝光碟、啟動軟碟/USB。

詳細步驟

  1. 顯示隱藏系統檔案:「資料夾選項」→「檢視」→ 勾選「顯示隱藏的檔案和資料夾」、取消勾選「隱藏受保護的作業系統檔案」。
  2. 備份原始檔案:複製 C:\WINDOWS\system32\SFC_OS.DLL 為 SFC_OS.DLL.bak。
  3. 十六進位修改:用 UltraEdit 開啟 SFC_OS.DLL:
    • 無 SP1:位移 E2B8 處將 8B C6 改為 90 90。
    • 已裝 SP1:位移 E3BB 處將 8B C6 改為 90 90。
    另存為 SFC_OS1.DLL(修改版)。
  4. 安裝復原主控台:執行 D:\i386\winnt32.exe /cmdcons (D 為光碟機),依提示安裝(選擇不連線 Windows Update)。
  5. 進入復原主控台替換檔案:重開機選擇「Microsoft Windows Recovery Console」→ 登入 Administrator → 執行:
    copy C:\WINDOWS\system32\SFC_OS1.DLL C:\WINDOWS\system32\SFC_OS.DLL
    copy C:\WINDOWS\system32\SFC_OS1.DLL C:\WINDOWS\system32\DllCache\SFC_OS.DLL
    
  6. 修改登錄完全停用 WFP:重開機進入 Windows → 執行 regedit → 定位: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SFCDisable 將值設為 FFFFFF9D (十六進位,即 -99 十進位) → 重開機。

驗證與後續

  • 嘗試取代受保護系統檔案(如 shell32.dll),若無自動還原即成功停用。
  • 此後系統不再自動修復被惡意軟體竄改的核心檔案,安全風險大幅上升,必須配合強力防毒/防火牆/權限管控。
  • 若需恢復 WFP,將 SFCDisable 值改為 0 並替換回原版 SFC_OS.DLL 重開機。

結語

關閉 WFP 是雙面刃:獲得系統檔案完全控制權,卻失去最後一道自動防線。除非您完全理解風險並具備完整備份/還原能力,否則強烈建議保持 WFP 啟用,改用主題修補器、資源檔替換等非侵入式客製化方案。

Copyright © Windows教程網 All Rights Reserved