病毒、木馬的伎倆之一就是攻擊系統進程,或是偽裝或是注入,降低人們的警惕性。如果能對常用的進程有些初步了解,就能掌握判斷惡意進程的基本手段。
自從家里上網后,小蔡中過幾次木馬病毒,每次請高手來檢查,都看到他先按下“Ctrl+Alt+Del”鍵,打開任務管理器查看進程。兩三次后小蔡就學會了,可是當他自己打開以后,哇,這么多奇奇怪怪的名字,都是些什么啊(圖1)?
看來啊,這個高手還不是那么容易當的。還有兩個問題小蔡也想不明白,用戶名為SYSTEM的就是系統進程了吧,為什么病毒木馬經常盯著它們呢?它們為什么那么“脆弱”,一招就死?
小蔡打開任務管理器之后,雖然看不大明白,但也努力去熟悉。怎么有兩個SVCHOST.EXE,不對,是三個……他點了一下按映像名稱排序(圖2),嘩,一共是5個SVCHOST.EXE。這太奇怪了!
小蔡還注意到名稱一樣的“SVCHOST.EXE”對應的“用戶名”卻不相同,又增加了一些可疑。那么,SVCHOST.EXE到底是哪路神仙?是正常的系統進程還是感染了木馬、病毒呢?
放服務的CD機
趕忙打個電話給高手,沒想到他哈哈大笑,然后給小蔡慢慢說明。其實,SVCHOST.EXE是Windows 2000/XP/2003等操作系統中獨有的進程,它是Service Host(服務宿主)的縮寫。
在系統中有很多被稱作“服務”的模塊,當操作系統正常運行時,各個功能都是由這些“服務”合作完成的。這些“服務”是一些擴展名為DLL的動態鏈接庫文件,它們不像可執行程序(*.exe、*.bat等)那樣能夠直接運行,而是要一個專用的程序來啟動,這個程序就是SVCHOST.EXE了。
如果還不容易理解,你可以把系統中的每個服務比喻成一張音樂CD或是VCD光盤,而要想播放這些光盤,就需要相應的播放機,SVCHOST.EXE就是專門用來播放這些光盤(服務)的播放機了。
各司其職
原來如此,小蔡有些明白了,第一個問題解決。那么為什么會同時出現這么多個SVCHOST.EXE?
系統會運行多個SVCHOST.EXE,分別來負責不同性質的服務。就好比光盤分為音樂CD、VCD、SVCD、DVD等,播放這些不同格式的光盤就需要具備相應功能的播放機。這些SVCHOST.EXE相互分工很明確。
打開“ 開始”→“ 運行” 輸入r e g e d i t,打開注冊表編輯器,依次展開“HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Svchost”,在左側窗口便可以看到6個鍵值項,每個都代表一組服務,這樣的每組服務啟動時都會通過單獨的SVCHOST.EXE進程來裝載(圖3)。
這么說來,Windows XP中應該可以看到6個SVCHOST.EXE了,怎么只有5個呢?這6組服務通常并不都是啟動狀態的,WindowsXP會有4~6個SVCHOST.EXE進程,而Windows 2000通常會有兩個。
順藤摸瓜 小蔡決定多了解點關于服務的知識,現在知道了6組服務,那么能查看這么服務做什么嗎?不要再看注冊表了啊,那個嚇人,看得頭暈。
通過注冊表查看服務確實麻煩點,但能查到服務具體的文件。要簡單的方法也有,單擊“開始→運行”,輸入“services.msc”并回車即可打開服務管理器(圖4)。
既然想刨根問底,就推薦你用一款軟件參看。用《全能助手Windows服務管理專家》可以看到更詳細的信息,比如運行文件名,服務文件名、版本號、服務作用以及發行公司。在這里可以清楚地看到運行這些服務的是SVCHOST.EXE(圖5)。
不能放松警惕
雖然了解了SVCHOST.EXE的來龍去脈,但它和病毒也不是完全沒有關系哦。由于它可以啟動服務,所以黑客們也挖空心思地借用它入侵、破壞電腦,將自己編寫的病毒、木馬程序偽裝成SVCHOST.EXE迷惑用戶,或者自身偽裝成服務欺騙SVCHOST.EXE。
如果懷疑系統可能感染了病毒,SVCHOST.EXE異常,可以在系統中搜索一下“SVCHOST.EXE”,該文件只存在于“C:\\Windows\\System32”目錄下,如果在其他目錄下也找到了,那就十分可疑了,最好立即用殺毒軟件掃描系統。
要辨別偽裝成服務的病毒也很方便,對了,就是使用上面介紹的軟件來查看,發行公司、服務作用不明的十有八九是病毒。
還有一個出現很多數量的進程
小蔡想起來還看過有兩個相似的進程,很可疑,現在就有一個“explorer.exe”的進程,以前還看到過iexplore.exe進程,也是同時出現過好幾個。它倆長得如此像,是兄弟嗎?
其實,iexplore.exe是MicrosoftInternet Explorer的主程序,打開IE瀏覽器后,在進程列表中便可以看到它。它的個數與當前打開的IE瀏覽器窗口數目一致。例如,如果你同時打開5個IE瀏覽器窗口,在進程列表中就會有5個“iexplore.exe”進程(圖6)。
而與它長得相似的“explorer.exe”則是系統資源管理器對應的進程。它專門負責Windows系列系統中的開始菜單、任務欄、桌面和文件管理的,只有它正常運行時,才能系統的桌面。如果禁用該進程后,Windows桌面就無法使用,它是系統自動加載的。
因此,iexplore.exe與explorer.exe雖然長得非常相似,但它們卻各自負責著不同的功能,一個是IE瀏覽器的程序,一個是資源管理器程序。
辨別真偽
這兩個進程是系統中常駐的進程,因此,病毒制造者們也將目標瞄準了它們,如何判斷它們是否為病毒的偽裝呢?
方法一
仔細核對進程名稱
很多病毒都使用了障眼法,將它們的名稱更換一個非常相似的字母,例如,將字母“o”更換成數字“0”,將“i”更換為“l”等,如果不細心地看,肯定看不出它們之間的區別,除了使用字母更換偽裝外,一些病毒則使用大、小寫字母的手段來達到迷惑的目的,將“explorer.exe”更改成“EXPLORER.EXE”,甚至還有些病毒根據人們的語感習慣用“iexplorer.exe”。
如果看到進程列表中有疑似進程,首先,仔細地對照其名稱,如果有上述情況之一,那個進程肯定是病毒進程。另外,如果你沒有開啟IE瀏覽器程序,在進程列表中存在外表類似“iexplore.exe”的進程,那百分之百是病毒程序的進程。
方法二
查看系統資源占用情況及文件所在位置
通常,病毒程序一旦運行后會瘋狂地占用系統的資源,如果發現某個可疑進程占用了系統資源(CPU、內存)非常大,可以初步判定其為病毒進程。
正常情況下,iexplore.exe通常占用的內存大小為5MB左右,explorer.exe占用約12MB,這個數據會隨著系統運行的軟件多少而上下浮動,可以作為參考。
另外,iexplore.exe進程對應的可執行程序在IE安裝目錄(通常為C:\\Program Files\\Internet Explorer),如果感覺系統不對勁時,可以使用搜索功能來搜索,如果在其他文件夾中搜索出多個可疑的類似名稱的程序,則說明有可能是病毒程序。
相應的,e x p l o r e r . e x e 通常位于C: \\WINDOWS目錄中,也可以通過這個方法來判斷。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。