對(duì)任務(wù)管理器中的svchost進(jìn)程不甚了解,看見存在許多svchost進(jìn)程就以為自己中了病毒,其實(shí)不然。
筆者經(jīng)常在一些反病毒論壇上瀏覽時(shí),發(fā)現(xiàn)一些朋友對(duì)任務(wù)管理器中的svchost進(jìn)程不甚了解,看見存在許多svchost進(jìn)程就以為自己中了病毒,其實(shí)不然。
svchost.exe是NT核心系統(tǒng)非常重要的文件,對(duì)于Win2000/XP來說,不可或缺。這些svchost進(jìn)程提供很多系統(tǒng)服務(wù),如:rpcss服務(wù)(remote procedure call)、dmserver服務(wù)(logical disk manager)、dhcp服務(wù)(dhcp client)等等。
如果要了解每個(gè)svchost進(jìn)程到底提供了多少系統(tǒng)服務(wù),可以在WinXP的命令提示符窗口中輸入“tasklist /svc”命令來查看。
工作原理
一般來說,Windows系統(tǒng)進(jìn)程分為獨(dú)立進(jìn)程和共享進(jìn)程兩種。svchost.exe文件存在于%systemroot%system32目錄下,屬于共享進(jìn)程。
隨著Windows系統(tǒng)服務(wù)不斷增多,為了節(jié)省系統(tǒng)資源,微軟把很多服務(wù)都做成共享方式,交由svchost進(jìn)程來啟動(dòng)。但svchost進(jìn)程只作為服務(wù)宿主,并不能實(shí)現(xiàn)任何服務(wù)功能,即它只能提供條件讓其他服務(wù)在這里被啟動(dòng),而它自己卻不能給用戶提供任何服務(wù)。
這些服務(wù)是如何實(shí)現(xiàn)的呢?原來這些系統(tǒng)服務(wù)是以動(dòng)態(tài)鏈接庫(dll)形式實(shí)現(xiàn)的,它們把可執(zhí)行程序指向svchost,由svchost調(diào)用相應(yīng)服務(wù)的動(dòng)態(tài)鏈接庫來啟動(dòng)服務(wù)。
那svchost又怎么知道某個(gè)系統(tǒng)服務(wù)該調(diào)用哪個(gè)動(dòng)態(tài)鏈接庫呢?這是通過系統(tǒng)服務(wù)在注冊(cè)表中設(shè)置的參數(shù)來實(shí)現(xiàn)的。
具體實(shí)例
下面以Remote Registry服務(wù)為例,來看看svchost進(jìn)程是如何調(diào)用DLL文件的。在WinXP中,點(diǎn)擊“開始→運(yùn)行”,輸入“services.msc”命令,會(huì)彈出服務(wù)對(duì)話框,然后打開“Remote Registry”屬性對(duì)話框,可以看到Remote Registry服務(wù)的可執(zhí)行文件的路徑為“C:WindowsSystem32svchost -k LocalService”,這說明Remote Registry服務(wù)是依靠svchost調(diào)用“LocalService”參數(shù)來實(shí)現(xiàn)的,而參數(shù)的內(nèi)容則是存放在系統(tǒng)注冊(cè)表中的。
在運(yùn)行對(duì)話框中輸入“regedit.exe”后回車,打開注冊(cè)表編輯器,找到“HKEY_LOCAL_MACHINESystemcurrentcontrolsetservicesRemote Registry”項(xiàng),再找到類型為“reg_expand_sz”的“Imagepath”項(xiàng),其鍵值為“%systemroot%system32svchost -k LocalService”(這就是在服務(wù)窗口中看到的服務(wù)啟動(dòng)命令),另外在“parameters”子項(xiàng)中有個(gè)名為“ServiceDll”的鍵,其值為“% systemroot%system32 egsvc.dll”,其中“regsvc.dll”就是Remote Registry服務(wù)要使用的動(dòng)態(tài)鏈接庫文件。這樣svchost進(jìn)程通過讀取“Remote Registry”服務(wù)注冊(cè)表信息,就能啟動(dòng)該服務(wù)了。
也正是因?yàn)閟vchost的重要性,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達(dá)到感染、入侵、破壞的目的。那么應(yīng)該如何判斷到底哪個(gè)是病毒進(jìn)程呢?正常的svchost.exe文件應(yīng)該存在于“C:Windowssystem32”目錄下,如果發(fā)現(xiàn)該文件出現(xiàn)在其他目錄下就要小心了。
提示:svchost.exe文件的調(diào)用路徑可以通過“系統(tǒng)信息→軟件環(huán)境→正在運(yùn)行任務(wù)”來查看