http://0rz.net/b502o [04-8-18 10:11] 作者:Calvin
在去年的這個時候「衝擊波」病毒橫行的時候有一種說法就是Svchost.exe都是
病毒,一看到就要刪除。這種說法讓電腦用戶人心惶惶,因為每個使用
Windows XP系統的用戶在按照文章中介紹的檢查有無Svchost.exe的方法都可以
找到幾個Svchost.exe進程。
真的是像網絡上流傳的那樣Svchost.exe是病毒嗎?
我們先看看微軟是怎樣描述Svchost.exe的。在微軟知識庫314056中對
Svchost.exe有如下描述:Svchost.exe 是從動態鏈接庫 (DLL) 中運行的服務的
通用主機進程名稱。
其實Svchost.exe是Windows XP系統的一個核心進程。Svchost.exe不單單只
出現在Windows XP中,在使用NT內核的Windows系統中都會有Svchost.exe的存在
。一般在Windows 2000中Svchost.exe進程的數目為2個,而在Windows XP中
Svchost.exe進程的數目就上升到了4個及4個以上。所以看到系統的進程列表中
有幾個Svchost.exe不用那麼擔心。
Svchost.exe到底是做什麼用的呢?
首先我們要瞭解一點那就是Windows系統的中的進程分為:獨立進程和共享
進程這兩種。由於Windows系統中的服務越來越多,為了節約有限的系統資源微
軟把很多的系統服務做成了共享模式。那Svchost.exe在這中間是擔任怎樣一個
角色呢?
Svchost.exe的工作就是作為這些服務的宿主,即由Svchost.exe來啟動這些
服務。Svchost.exe只是負責為這些服務提供啟動的條件,其自身並不能實現任
何服務的功能,也不能為用戶提供任何服務。Svchost.exe通過為這些系統服務
調用動態鏈接庫(DLL)的方式來啟動系統服務。
那Svchost.exe是病毒這種說法是任何產生的呢?
因為Svchost.exe可以作為服務的宿主來啟動服務,所以病毒、木馬的編寫
者也挖空心思的要利用Svchost.exe的這個特性來迷惑用戶達到入侵、破壞計算
機的目的。
如何才能辨別哪些是正常的Svchost.exe進程,而哪些是病毒進程呢?
Svchost.exe的鍵值是在「
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost」
,如圖1所示。圖1中每個鍵值表示一個獨立的Svchost.exe組。
圖一:
http://0rz.net/5b02o
微軟還為我們提供了一種察看系統正在運行在Svchost.exe列表中的服務的方法
。以Windows XP為例:在「運行」中輸入:cmd,然後在命令行模式中輸入:
tasklist /svc。系統列出如圖2所示的服務列表。圖2中紅框包圍起來的區域就
是Svchost.exe啟動的服務列表。如果使用的是Windows 2000系統則把前面的「
tasklist /svc」命令替換為:「tlist -s」即可。
圖二:
http://0rz.net/2502D
如果你懷疑計算機有可能被病毒感染,Svchost.exe的服務出現異常的話通過搜
索Svchost.exe文件就可以發現異常情況。一般只會找到一個在:「
C:\Windows\System32」目錄下的Svchost.exe程序。如果你在其他目錄下發現
Svchost.exe程序的話,那很可能就是中毒了。
還有一種確認Svchost.exe是否中毒的方法是在任務管理器中察看進程的執
行路徑。但是由於在Windows系統自帶的任務管理器不能察看進程路徑,所以要
索Svchost.exe文件就可以發現異常情況。一般只會找到一個在:「
C:\Windows\System32」目錄下的Svchost.exe程序。如果你在其他目錄下發現
Svchost.exe程序的話,那很可能就是中毒了。
還有一種確認Svchost.exe是否中毒的方法是在任務管理器中察看進程的執
行路徑。但是由於在Windows系統自帶的任務管理器不能察看進程路徑,所以要
使用第三方的進程察看工具。
上面簡單的介紹了Svchost.exe進程的相關情況。總而言之,Svchost.exe是
一個系統的核心進程,並不是病毒進程。但由於Svchost.exe進程的特殊性,所
以病毒也會千方百計的入侵Svchost.exe。通過察看Svchost.exe進程的執行路徑
可以確認是否中毒。