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

利用登錄映像劫持(IFEO)反制病毒:將計就計讓惡意程式失效

編輯:系統常見問題解答

病毒常濫用「映像檔執行選項」(Image File Execution Options, IFEO)登錄機碼,將合法程式(如防毒軟體)重導向惡意程式。此機制雙向運作:我們也可以利用 IFEO,將已知惡意程式(如 KAVSVC.EXE)重導向無害程式(如空的 1.exe),達到「以毒攻毒」的緊急阻斷效果。本文詳細說明原理、操作步驟與防禦建議。

原理:IFEO 機制

  • 路徑:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<可執行檔名>
  • 值:Debugger (REG_SZ) = 替代目標程式完整路徑
  • 運作:當系統嘗試啟動 <可執行檔名> 時,核心改為啟動 Debugger 指定的程式,並將原程式路徑作為參數傳遞。

操作範例:封鎖惡意程式 KAVSVC.EXE

  1. 建立無害程式:
    新建文字檔 → 輸入 @echo off & exit /b 0 → 存為 1.bat → 重命名為 1.exe(放在 D:\ 或任意路徑)。
  2. 建立登錄檔 block_kavsvc.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\KAVSVC.EXE]
"Debugger"="D:\\1.exe"
  1. 雙擊匯入登錄,確認成功。
  2. 測試:執行 Win+R → 輸入 KAVSVC.EXE → 應無任何反應(實際執行 D:\1.exe 立即結束)。

進階應用:記錄嘗試執行的惡意程式

將 Debugger 指向記錄腳本(PowerShell/Batch),記錄時間、參數、父進程,再決定是否放行:

"Debugger"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoProfile -Command \"$log='C:\\IFEO_Log.txt'; $arg=$args[0]; Add-Content $log \"$(Get-Date) Attempt: $arg\"; exit 0\""

防禦與清理

  • 定期檢查 IFEO 機碼下是否有非預期的 Debugger 值(合法軟體極少使用)。
  • 使用 Autoruns (Sysinternals) → 「Image Hijacks」索引標籤快速掃描。
  • 發現異常立即刪除對應機碼或清除 Debugger 值。
  • 結合 AppLocker / WDAC (Windows Defender Application Control) 白名單機制,從根源阻擋未授權程式執行。

注意事項

  • IFEO 僅影響使用者模式程式啟動,不影響核心驅動、服務啟動(服務由 SCM 直接建立進程)。
  • 64 位元系統上,32 位元程式對應 HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\。
  • 濫用 IFEO 可能導致合法程式無法啟動,請謹慎測試後再部署。

IFEO 是把雙面刃:駭客用它劫持防毒軟體,我們用它封鎖已知惡意程式。掌握此機制,並在 Autoruns 定期巡檢,能有效提升端點防禦彈性。

Copyright © Windows教程網 All Rights Reserved