你的電腦中病毒了嗎?
其實它只是利用了“任務管理器”無法查看進程對應可執行文件這一缺陷。我們知道svchost.exe進程對應的可執行文件位于“c:\windows\system32”目錄下(windows2000則是c:\winnt\system32目錄),如果病毒將自身復制到“c:\windows\”中,并改名為svchost.exe,運行后,我們在“任務管理器”中看到的也是svchost.exe,和正常的系統進程無異。你能辨別出其中哪一個是病毒的進程嗎? 3.借尸還魂 除了上文中的兩種方法外,病毒還有一招終極大法——借尸還魂。所謂的借尸還魂就是病毒采用了進程插入技術,將病毒運行所需的dll文件插入正常的系統進程中,表面上看無任何可疑情況,實質上系統進程已經被病毒控制了,除非我們借助專業的進程檢測工具,否則要想發現隱藏在其中的病毒是很困難的。 系統進程解惑 上文中提到了很多系統進程,這些系統進程到底有何作用,其運行原理又是什么?下面我們將對這些系統進程進行逐一講解,相信在熟知這些系統進程后,就能成功破解病毒的“以假亂真”和“偷梁換柱”了。 svchost.exe 常被病毒冒充的進程名有:svch0st.exe、schvost.exe、scvhost.exe。隨著windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共享方式,交由svchost.exe進程來啟動。而系統服務是以動態鏈接庫(dll)形式實現的,它們把可執行程序指向scvhost,由cvhost調用相應服務的動態鏈接庫來啟動服務。我們可以打開“控制面板”→“管理工具”→服務,雙擊其中“clipbook”服務,在其屬性面板中可以發現對應的可執行文件路徑為“c:\windows\system32\clipsrv.exe”。再雙擊“alerter”服務,可以發現其可執行文件路徑為“c:\windows\system32\svchost.exe -k localservice”,而“server”服務的可執行文件路徑為“c:\windows\system32\svchost.exe -k netsvcs”。正是通過這種調用,可以省下不少系統資源,因此系統中出現多個svchost.exe,其實只是系統的服務而已。 在windows2000系統中一般存在2個svchost.exe進程,一個是rpcss(remoteprocedurecall)服務進程,另外一個則是由很多服務共享的一個svchost.exe;而在windowsxp中,則一般有4個以上的svchost.exe服務進程。如果svchost.exe進程的數量多于5個,就要小心了,很可能是病毒假冒的,檢測方法也很簡單,使用一些進程管理工具,例如windows優化大師的進程管理功能,查看svchost.exe的可執行文件路徑,如果在“c:\windows\system32”目錄外,那么就可以判定是病毒了。 spoolsv.exe 常被病毒冒充的進程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系統服務“print spooler”所對應的可執行程序,其作用是管理所有本地和網絡打印隊列及控制所有打印工作。如果此服務被停用,計算機上的打印將不可用,同時spoolsv.exe進程也會從計算機上消失。如果你不存在打印機設備,那么就把這項服務關閉吧,可以節省系統資源。停止并關閉服務后,如果系統中還存在spoolsv.exe進程,這就一定是病毒偽裝的了。 限于篇幅,關于常見進程的介紹就到這里,我們平時在檢查進程的時候如果發現有可疑,只要根據兩點來判斷:1.仔細檢查進程的文件名;2.檢查其路徑。通過這兩點,一般的病毒進程肯定會露出馬腳。 找個管理進程的好幫手 系統內置的“任務管理器”功能太弱,肯定不適合查殺病毒。因此我們可以使用專業的進程管理工具,例如procexp。procexp可以區分系統進程和一般進程,并且以不同的顏色進行區分,讓假冒系統進程的病毒進程無處可藏。 運行procexp后,進程會被分為兩大塊,“system idle process”下屬的進程屬于系統進程, explorer.exe”下屬的進程屬于一般進程。我們介紹過的系統進程svchost.exe、winlogon.exe等都隸屬于“system idle process”,如果你在“explorer.exe”中發現了svchost.exe,那么不用說,肯定是病毒冒充的。 至于病毒采用的“借尸還魂”大法——dll插入技術,我們曾講解過破解方法,通過查看其dll文件的簽名即可,這點同樣可以在procexp中做到,在此不再闡述。 小貼士:在軟件的主界面我們可能看不到進程名和進程所對應的可執行文件,我們可以點擊其“查看”菜單→“選擇列”,勾選“進程名稱”和“映像路徑”,確定保存即可。