Windows系統的Svchost.exe和Explorer.exe是非常重要的兩種進程,上次我們介紹了Explorer.exe進程的應用技巧,今天我們介紹Svchost.exe進程的特點以及在各個操作系統中的應用。
Svchost.exe是NT核心系統的非常重要的進程,對於2000、XP來說,不可或缺。很多病毒、木馬也會調用它。所以,深入了解這個程序,是玩電腦的必修課之一。
大家對Windows操作系統一定不陌生,但你是否注意到系統中“Svchost.exe”這個文件呢?細心的朋友會發現Windows中存在多個 “Svchost”進程(通過“ctrl+alt+del”鍵打開任務管理器,這裡的“進程”標簽中就可看到了),為什麼會這樣呢?下面就來揭開它神秘的面紗。
在基於NT內核的Windows操作系統家族中,不同版本的Windows系統,存在不同數量的“Svchost”進程,用戶使用“任務管理器”可查看其進程數目。一般來說,Win 2000有兩個Svchost進程,Win XP中則有四個或四個以上的Svchost進程(以後看到系統中有多個這種進程,千萬別立即判定系統有病毒了喲),而Win 2003 server中則更多。這些Svchost進程提供很多系統服務,如:rpcss服務(remote procedure call)、dmserver服務(logical disk manager)、dhcp服務(dhcp clieNT)等。〕
查看Svchost中的多個服務
如果要了解每個Svchost進程到底提供了多少系統服務,可以在Win 2000的命令提示符窗口中輸入“tlist -s”命令來查看,該命令是Win 2000 support tools提供的。在Win XP則使用“tasklist /svc”命令。
Windows系統進程分為獨立進程和共享進程兩種,“Svchost.exe”文件存在於“%systemroot% system32”目錄下,它屬於共享進程。隨著Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共享方式,交由 Svchost.exe進程來啟動。
但Svchost進程只作為服務宿主,並不能實現任何服務功能,即它只能提供條件讓其他服務在這裡被啟動,而它自己卻不能給用戶提供任何服務。那這些服務是如何實現的呢?
原來這些系統服務是以動態鏈接庫(dll)形式實現的,它們把可執行程序指向 Svchost,由Svchost調用相應服務的動態鏈接庫來啟動服務。那Svchost又怎麼知道某個系統服務該調用哪個動態鏈接庫呢?這是通過系統服務在注冊表中設置的參數來實現。
從啟動參數中可見服務是靠Svchost來啟動的。
查看Svchost中是否有病毒進程
因為Svchost進程啟動各種服務,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的。但Windows系統存在多個Svchost進程是很正常的,在受感染的機器中到底哪個是病毒進程呢?這裡僅舉一例來說明。
假設Windows XP系統被病毒感染了。正常的Svchost文件存在於“c:\Windows\system32”目錄下,如果發現該文件出現在其他目錄下就要小心了。病毒存在於“c:\Windows\system32\Wins”目錄中,因此使用進程管理器查看Svchost進程的執行文件路徑就很容易發現系統是否感染了病毒。
Windows系統自帶的任務管理器不能夠查看進程的路徑,可以使用第三方進程管理軟件,通過這些工具就可很容易地查看到所有的Svchost進程的執行文件路徑,一旦發現其執行路徑為不平常的位置就應該馬上進行檢測和處理。