4.獲取每張“CD”的詳細信息
如果想更進一步了解Svchost.exe裝載的這些服務都是什么功能,可以記下鍵值數據中的服務名稱,例如“RpcSs”,接著打開注冊表的[HKEY_LOCAL_MACHINESystemCurrentControlSetServices],再打開下面的“RpcSs”子鍵,在右邊的“Description”鍵值中就可以看到該服務的描述,而在“ImagePath”鍵值數據中則可以看到這個服務的運行命令正是“%SystemRoot%system32svchost -k rpcss”(見圖4)。而在“RpcSs”子鍵下還有一個“Parameters”(參數)子鍵,其右邊的“ServiceDll”鍵值數據“%SystemRoot%system32rpcss.dll”則表明了RpcSs服務啟動時調用的是系統目錄下的“Rpcss.dll”文件,這就好像你原來只知道CD中歌曲的歌名,現在又讓你能夠查到這首歌的演唱者。

圖4 查看svchost的具體功能
如果覺得通過注冊表查詢服務名稱了解其屬性不太方便,也可以使用“全能助手用Windows服務管理專家”(以下簡稱“服務管理專家”)來查詢,運行軟件后單擊“All Win32 Services”分支,在右側服務列表中根據服務名稱索引即可快速找到要查詢的服務,單擊服務名稱,即可看到該服務的啟動命令以及調用的DLL文件等相關信息(見圖5)。同時軟件還專門設計了Svchost Group分支,可以快速查詢LocalService和netsvcs組中的服務詳細信息。

圖5 用工具查看svchost的情況
全能助手用Windows服務管理專家 小檔案
軟件名稱:
全能助手用Windows服務管理專家
軟件版本:1.02
軟件大小:164KB
軟件授權:免費
適用平臺:Windows 2000/XP
三、危機仍在:小心病毒的騙局
由于Svchost.exe進程的特殊性,它隱藏了真正運行的程序的名稱,在表面看到的只是Svchost.exe進程,這個特性同時也讓許多病毒、木馬有空可鉆,企圖以此迷惑用戶。那么如何判斷系統中的多個Svchost.exe進程是否正常呢?下面針對這類病毒常用的幾種欺騙手法來進行分析。
騙局1:利用假冒Svchost.exe名稱的病毒程序
火眼金睛:這種方式運行的病毒并沒有直接利用真正的Svchost.exe進程,而是啟動了另外一個名稱同樣是Svchost.exe的病毒進程,由于這個假冒的病毒進程并沒有加載系統服務,它和真正的Svchost.exe進程是不同的,只需在命令行窗口中運行一下“Tasklist /svc”,如果看到哪個Svchost.exe進程后面提示的服務信息是“暫缺”(見圖6),而不是一個具體的服務名,那么它就是病毒進程了,記下這個病毒進程對應的PID數值(進程標識符),即可在任務管理器的進程列表中找到它,結束進程后,在C盤搜索Svchost.exe文件,也可以用第三方進程工具直接查看該進程的路徑,正常的Svchost.exe文件是位于%systemroot%System32目錄中的,而假冒的Svchost.exe病毒或木馬文件則會在其他目錄,例如“w32.welchina.worm”病毒假冒的Svchost.exe就隱藏在WindowsSystem32Wins目錄中,將其刪除,并徹底清除病毒的其他數據即可。

圖6 查看可疑svchost進程
騙局2:一些高級病毒則采用類似系統服務啟動的方式,通過真正的Svchost.exe進程加載病毒程序,而Svchost.exe是通過注冊表數據來決定要裝載的服務列表的,所以病毒通常會在注冊表中采用以下方法進行加載:
- 添加一個新的服務組,在組里添加病毒服務名
- 在現有的服務組里直接添加病毒服務名
- 修改現有服務組里的現有服務屬性,修改其“ServiceDll”鍵值指向病毒程序
判斷方法:病毒程序要通過真正的Svchost.exe進程加載,就必須要修改相關的注冊表數據,可以打開[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionSvchost],觀察有沒有增加新的服務組,同時要留意服務組中的服務列表,觀察有沒有可疑的服務名稱,通常來說,病毒不會在只有一個服務名稱的組中添加,往往會選擇LocalService和netsvcs這兩個加載服務較多的組,以干擾分析,還有通過修改服務屬性指向病毒程序的,通過注冊表判斷起來都比較困難,這時可以利用前面介紹的服務管理專家,分別打開LocalService和netsvcs分支,逐個檢查右邊服務列表中的服務屬性,尤其要注意服務描述信息全部為英文的,很可能是第三方安裝的服務,同時要結合它的文件描述、版本、公司等相關信息,進行綜合判斷。例如這個名為PortLess BackDoor的木馬程序,在服務列表中可以看到它的服務描述為“Intranet Services”,而它的文件版本、公司、描述信息更全部為空(見圖7),如果是微軟的系統服務程序是絕對不可能出現這種現象的。從啟動信息“C:WINDOWSSystem32svchost.exe -k netsvcs”中可以看出這是一款典型的利用Svchost.exe進程加載運行的木馬,知道了其原理,清除方法也很簡單了:先用服務管理專家停止該服務的運行,然后運行regedit.exe打開“注冊表編輯器”,刪除[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesIPRIP]主鍵,重新啟動計算機,再刪除%systemroot%System32目錄中的木馬源程序“svchostdll.dll”,通過按時間排序,又發現了時間完全相同的木馬安裝程序“PortlessInst.exe”,一并刪除即可。

圖7 利用多項信息進行綜合判斷