√判斷真假Svchost.exe進(jìn)程
√清除偽裝成Svchost.exe的病毒、木馬
關(guān)于“系統(tǒng)藍(lán)色檔案”欄目
Svchost.exe、lsass.exe、wdfmgr.exe,打開(kāi)進(jìn)程列表后你會(huì)發(fā)現(xiàn)一大堆不知用途的進(jìn)程,究竟是系統(tǒng)進(jìn)程還是木馬病毒?如果打開(kāi)系統(tǒng)文件夾,一大堆奇奇怪怪名稱的文件,更是會(huì)把你弄得暈頭轉(zhuǎn)向。很多朋友因此而始終抱有一種未知的恐懼,認(rèn)為木馬、黑客無(wú)處不在,即使是高手,也不能把這些陌生的系統(tǒng)文件說(shuō)個(gè)明明白白。為消除大家的疑惑,從這期開(kāi)始為大家?guī)?lái)一檔新的連載欄目——系統(tǒng)藍(lán)色檔案為大家曝光這些隱秘文件的秘密。兩位主人公,現(xiàn)在就來(lái)認(rèn)識(shí)一下。
主人公介紹
小菜:剛接觸電腦不久的菜鳥(niǎo),但對(duì)電腦知識(shí)有著非常濃厚的學(xué)習(xí)興趣,常說(shuō)的一句話是“菜鳥(niǎo)先飛”。
大嘴:樂(lè)于助人的老鳥(niǎo),經(jīng)常被別人冠以“大嘴高手”稱號(hào),不過(guò)這并不是指他嘴特別大,而是一談到電腦知識(shí)就滔滔不絕。
一、緊急狀況:系統(tǒng)發(fā)現(xiàn)嚴(yán)重病毒
小菜剛剛學(xué)習(xí)了進(jìn)程的概念和知識(shí),于是就打開(kāi)“任務(wù)管理器”觀察系統(tǒng)中的進(jìn)程,這一看不要緊,還真發(fā)現(xiàn)了一個(gè)“病毒”——Svchost.exe,這家伙在系統(tǒng)進(jìn)程列表中竟然有5個(gè)之多(見(jiàn)圖1),于是小菜就逐個(gè)結(jié)束這些進(jìn)程,沒(méi)想到第二個(gè)進(jìn)程結(jié)束后還會(huì)再生,而結(jié)束第四個(gè)進(jìn)程時(shí)更離譜,系統(tǒng)提示“系統(tǒng)即將關(guān)機(jī),離關(guān)機(jī)還有60秒”,進(jìn)程再生、錯(cuò)誤提示,這些典型的病毒“癥狀”更讓小菜相信“Svchost.exe”是病毒無(wú)疑,但無(wú)法結(jié)束進(jìn)程,又該怎么清除病毒呢?小菜只好請(qǐng)來(lái)了大嘴。
圖1 數(shù)量眾多的SVCHOST進(jìn)程
大嘴過(guò)來(lái)后還沒(méi)看電腦,就先告訴小菜,系統(tǒng)中的Svchost.exe進(jìn)程是正常系統(tǒng)進(jìn)程,不是病毒,不僅僅是你,其他朋友一看到系統(tǒng)中這么多的Svchost.exe進(jìn)程,第一反應(yīng)也感覺(jué)它是病毒,雖然系統(tǒng)中有多個(gè)Svchost.exe進(jìn)程是正常的,但也不保證都是正常的。聽(tīng)起來(lái)似乎有些矛盾?這讓小菜更有些迷糊,大嘴坐下后給小菜詳細(xì)講了起來(lái)。
二、松了口氣:Svchost.exe是臺(tái)“CD機(jī)”
1.服務(wù)裝在“CD機(jī)”里
Svchost.exe是NT內(nèi)核操作系統(tǒng)(Windows 2000/XP/2003都屬于NT內(nèi)核操作系統(tǒng))獨(dú)有的進(jìn)程,“Svchost”其實(shí)就是“Service Host”(服務(wù)宿主)的縮寫(xiě)。微軟官方對(duì)它的定義是:Svchost.exe是從動(dòng)態(tài)鏈接庫(kù)(DLL)中運(yùn)行的服務(wù)的通用主機(jī)進(jìn)程名稱,通俗講,它就是一個(gè)服務(wù)裝載器。大家可以把每個(gè)服務(wù)想象成一張音樂(lè)CD,而Svchost.exe就是用來(lái)播放這種CD的CD機(jī)。
2.為什么用“CD機(jī)”裝服務(wù)
由于Windows 2000/XP系統(tǒng)服務(wù)越來(lái)越多,以EXE單獨(dú)進(jìn)程的形式啟動(dòng)所有服務(wù)會(huì)大大增加系統(tǒng)負(fù)擔(dān),為節(jié)省系統(tǒng)資源,微軟將一些系統(tǒng)服務(wù)以動(dòng)態(tài)鏈接庫(kù)(DLL)形式實(shí)現(xiàn),而Svchost.exe就是用來(lái)裝載這些DLL文件以啟動(dòng)系統(tǒng)服務(wù)的程序。沒(méi)有人會(huì)為了發(fā)行一張CD而制作一臺(tái)專用播放此CD的CD機(jī),微軟也一樣。
3.系統(tǒng)里有幾臺(tái)這樣的“CD機(jī)”
那為什么系統(tǒng)進(jìn)程列表中的Svchost.exe會(huì)有多個(gè)呢?微軟為了讓系統(tǒng)能更好地進(jìn)行服務(wù)控制,就允許多個(gè)Svchost.exe進(jìn)程同時(shí)運(yùn)行,每個(gè)Svchost.exe進(jìn)程可以包含一組服務(wù),想像一下可以同時(shí)容納3張甚至更多CD的多碟CD機(jī)。打開(kāi)注冊(cè)表[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost]主鍵,在窗口右側(cè)可以看到許多鍵值,這里的每個(gè)鍵值都代表一組服務(wù),鍵值數(shù)據(jù)則包含了該組服務(wù)下面運(yùn)行的服務(wù)名稱列表,每組服務(wù)啟動(dòng)時(shí)都會(huì)通過(guò)單獨(dú)的Svchost.exe進(jìn)程來(lái)裝載。Windows XP中默認(rèn)共有六組服務(wù)(見(jiàn)圖2),其中imgsvc、NetworkService、rpcss、termsvcs四個(gè)組,它們都只有一個(gè)服務(wù)運(yùn)行,這些服務(wù)啟動(dòng)后的Svchost.exe進(jìn)程用戶名為“SYSTEM”。而LocalService和netsvcs組都啟動(dòng)了多個(gè)服務(wù),它們的Svchost.exe進(jìn)程用戶名分別為“LOCAL SERVICE”和“NETWORD SERVICE”,從圖1中可以看到這種區(qū)別。

圖2 眾多svchost進(jìn)程的區(qū)別
當(dāng)然了,這六組服務(wù)通常并不都是啟動(dòng)狀態(tài)的,根據(jù)系統(tǒng)啟動(dòng)的服務(wù)不同,反映在系統(tǒng)進(jìn)程列表中的Svchost.exe進(jìn)程數(shù)量也是不同的,Windows XP會(huì)有四個(gè)到六個(gè)Svchost.exe進(jìn)程,而Windows 2000通常則會(huì)有兩個(gè)Svchost.exe進(jìn)程。
小提示:點(diǎn)擊“開(kāi)始→運(yùn)行”,在運(yùn)行框中輸入“CMD”回車,然后在打開(kāi)的命令行窗口中輸入“Tasklist /svc”(不含引號(hào))命令,可以更直觀地看到每個(gè)Svchost.exe進(jìn)程裝載的服務(wù)名稱列表(見(jiàn)圖3)。

圖3 查看svchost進(jìn)程裝載的服務(wù)名稱