現代木馬多採用核心嵌入、遠程線程注入、API Hooking 等隱蔽技術,不再生成獨立 EXE,傳統掃毒難以偵測。本文提供系統性的手動排查與清除方法。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run*HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run*HKEY_LOCAL_MACHINE\Software\Classes\exefile\shell\open\command 是否被修改為惡意路徑。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下可疑主鍵。services.msc,將可疑服務「啟動類型」改為「已停用」,或直接刪除註冊表主鍵。檢查 開始→程式→啟動 及註冊表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup。
執行 msconfig,檢查 Win.ini 的 [Windows] 區段 load/run 欄位,以及 System.ini [boot] 區段 Shell=Explorer.exe 後是否有附加程式。
Win9x 系統檢查 C:\AUTOEXEC.BAT、C:\WINDOWS\Winstart.bat,警惕 @ 隱藏指令與 echo off 掩飾惡意行為。
乾淨開機後執行 tasklist /svc > clean_process.txt 建立基準。懷疑中毒時再執行一次對比,關注新增/異常進程。
進入 system32 目錄執行 dir *.dll > clean_dll.txt。事後對比或使用 fc clean_dll.txt current_dll.txt 快速找出新增/變更的 DLL。
執行 msinfo32,展開「軟體環境」→「載入的模組」,匯出文字檔對比。
執行 netstat -ano(WinXP 以上支援 -o 顯示 PID),找出異常連線對應的進程,再用 tasklist 定位程式路徑。
此類木馬載入後將自身注入系統進程,刪除自身檔案與啟動項,關機前重建。上述「進程/DLL/模組對比法」配合 netstat -ano 可有效揭露其蹤跡。