任何病毒和木馬存在於系統中,都無法徹底和進程脫離關系,即使采用了隱藏技術,也還是能夠從進程中找到蛛絲馬跡,因此,查看系統中活動的進程成為我們檢測病毒木馬最直接的方法。但是系統中同時運行的進程那麼多,哪些是正常的系統進程,哪些是木馬的進程,而經常被病毒木馬假冒的系統進程在系統中又扮演著什麼角色呢?
病毒進程隱藏三法
當我們確認系統中存在病毒,但是通過“任務管理器”查看系統中的進程時又找不出異樣的進程,這說明病毒采用了一些隱藏措施,總結出來有三法:
1.以假亂真
系統中的正常進程有:svchost.exe、explorer.exe、iexplore.exe、winlogon.exe等,可能你發現過系統中存在這樣的進程:svch0st.exe、explore.exe、iexplorer.exe、winlogin.exe。對比一下,發現區別了麼?這是病毒經常使用的伎倆,目的就是迷惑用戶的眼睛。通常它們會將系統中正常進程名的o改為0,l改為i,i改為j,然後成為自己的進程名,僅僅一字之差,意義卻完全不同。又或者多一個字母或少一個字母,例如explorer.exe和iexplore.exe本來就容易搞混,再出現個iexplorer.exe就更加混亂了。如果用戶不仔細,一般就忽略了,病毒的進程就逃過了一劫。
2.偷梁換柱
如果用戶比較心細,那麼上面這招就沒用了,病毒會被就地正法。於是乎,病毒也學聰明了,懂得了偷梁換柱這一招。如果一個進程的名字為svchost.exe,和正常的系統進程名分毫不差。那麼這個進程是不是就安全了呢?非也,其實它只是利用了“任務管理器”無法查看進程對應可執行文件這一缺陷。我們知道svchost.exe進程對應的可執行文件位於“C:WINDOWSsystem32”目錄下(Windows2000則是C:WINNTsystem32目錄),如果病毒將自身復制到“C:WINDOWS”中,並改名為svchost.exe,運行後,我們在“任務管理器”中看到的也是svchost.exe,和正常的系統進程無異。你能辨別出其中哪一個是病毒的進程嗎?
3.借屍還魂
除了上文中的兩種方法外,病毒還有一招終極大法——借屍還魂。所謂的借屍還魂就是病毒采用了進程插入技術,將病毒運行所需的dll文件插入正常的系統進程中,表面上看無任何可疑情況,實質上系統進程已經被病毒控制了,除非我們借助專業的進程檢測工具,否則要想發現隱藏在其中的病毒是很困難的。
系統進程解惑
上文中提到了很多系統進程,這些系統進程到底有何作用,其運行原理又是什麼?下面我們將對這些系統進程進行逐一講解,相信在熟知這些系統進程後,就能成功破解病毒的“以假亂真”和“偷梁換柱”了。
svchost.exe
常被病毒冒充的進程名有:svch0st.exe、schvost.exe、scvhost.exe。隨著Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務做成共享方式,交由svchost.exe進程來啟動。而系統服務是以動態鏈接庫(DLL)形式實現的,它們把可執行程序指向scvhost,由cvhost調用相應服務的動態鏈接庫來啟動服務。我們可以打開“控制面板”→“管理工具”→服務,雙擊其中“ClipBook”服務,在其屬性面板中可以發現對應的可執行文件路徑為“C:WINDOWSsystem32clipsrv.exe”。再雙擊“Alerter”服務,可以發現其可執行文件路徑為“C:WINDOWSsystem32svchost.exe -k LocalService”,而“Server”服務的可執行文件路徑為“C:WINDOWSsystem32svchost.exe -k netsvcs”。正是通過這種調用,可以省下不少系統資源,因此系統中出現多個svchost.exe,其實只是系統的服務而已。
在Windows2000系統中正常存在svchost.exe進程,一個是RPCSS(RemoteProcedureCall)服務進程,另外一個則是由很多服務共享的一個svchost.exe;而在WindowsXP中,則一般有4個以上的svchost.exe服務進程。如果在xp和之前的系統中svchost.exe進程的數量多於5個,就要小心了,很可能是病毒假冒的。但是到了Vista和Windows7時代,8-12個svchost進程都是正常的!是否為系統正常進程的檢測方法也很簡單,使用一些進程管理工具,例如Vista優化大師的進程管理功能,查看svchost.exe的可執行文件路徑,如果在“C:WINDOWSsystem32”目錄外,那麼就可以判定是病毒了。