Svchost.exe 位於 %SystemRoot%\System32,是從動態連結庫(DLL)執行服務的通用宿主進程。系統啟動時,它檢查註冊表服務項,建立需載入的服務清單。多個 Svchost 實例可同時運行,每個會話包含一組服務,便於控制與除錯。Svchost 組別由註冊表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost 識別,每個值代表一個獨立組別,在工作管理員中顯示為獨立進程。
Svchost 本身不實作功能,僅作為 DLL 服務的載體。啟動某服務時,由註冊表 Parameters\ServiceDll 指定該服務的 DLL 路徑,該 DLL 必須匯出 ServiceMain() 函式。Windows 2000 通常有 2 個 Svchost,XP 則有 4 個以上。
XP 下在命令提示字元輸入 Tasklist /svc(2000 用 Tlist -s)即可列出每個 Svchost 實例包含的服務。例如:RpcSs(遠端程序呼叫)、Dhcp(DHCP 用戶端)、Netman(網路連線)等。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters\ServiceDll 值為 %SystemRoot%\system32\rpcss.dll。C:\Windows\system32\svchost.exe -k rpcss,-k rpcss 表示屬於 rpcss 服務組。惡意程式常利用 Svchost 機制自動載入,手法包括:新增組別、在現有組加入服務、修改既有服務的 ServiceDll 指向惡意 DLL。典型案例 PortLess BackDoor 即利用此法。
偵測與清除步驟(以 XP 為例):
SvchostDLL.dll)。
Iprip,啟動參數 -k netsvcs。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\ServiceDll 指向後門 DLL 路徑。IPRIP 項,重開機後刪除 DLL 檔案。提醒:修改註冊表前請先備份,以便出錯時還原。