◆自由風工作室徐海斌
實例一:和進程的“表演者”交個朋友
很多時候,我們並沒有注意到係統中到底有多少進程。如果想了解進程的秘密,首先就必須和一些常見係統進程交個朋友,一旦掌握了它們,就能像偵探一樣迅速從進程名單中發現可疑的家夥。
在Windows 2000/XP中,Ctrl+Shift+Esc組合鍵能快速調出任務管理器,而Windows 9X為Ctrl+Alt+Del組合鍵。
1.“主角”進程
首先來熟悉一下係統中的基本進程,它們是係統運行的基本條件,一般情況下不能關閉它們,否則會導致係統崩潰。
Windows 2000/XP:smss.exe、csrss.exe、winlogon.exe、services.exe、lsass.exe、svchost.exe(可以同時存在多個)、spoolsv.exe、explorer.exe、System Idle Process;
Windows 9x:msgsrv32.exe、mprexe.exe、mmtask.tsk、kenrel32.dll。
你知道嗎
進程與程序
簡單地說,每啟動一個程序,就啟動了一個進程。在Windows 3.x中,進程是最小運行單位。在Windows 9X/2000/XP中,每個進程還可以啟動幾個線程,比如每下載一個文件可以單獨開一個線程。在Windows 9X/2000/XP中,線程是最小單位。程序是永存的,進程是暫時的。舉一個例子說:如果程序是劇本,那麼表演過程就是進程;如果程序是菜譜,那麼烹調過程就是進程。
人鬼情未了——Svchost.exe
它位於係統目錄的System32文件夾,是從動態鏈接庫(DLL)運行服務的一般性宿主進程。在任務管理器中,可能會看到多個Svchost.exe在運行,不要大驚小怪,這可能是多個DLL文件在調用它。不過,正因為如此,它也成為了病毒利用的對象,以前的“藍色代碼”病毒就是一例。另外,如果感染了衝擊波病毒,係統也會提示“Svchost.exe出現錯誤”。
如果要查看哪些服務正在使用Svchost.exe,對於Windows 2000可從其安裝光盤的SupportToolsSupport.cab壓縮包中,將Tlist.exe解壓縮至任意目錄,接著在“命令提示符”中進入Tlist.exe所在目錄,輸入“tlist -s”並回車(“tlist pid”命令可看到詳細信息)。而在Windows XP則直接輸入“Tasklist /SVC”查看進程信息(“Tasklist /fi "PID eq processID"”則可看到詳細信息)。
2.“配角”進程
這些係統進程雖然不是係統運行必須的,但也經常在進程列表中拋頭露麵。如internat.exe、systray.exe、rundll32.exe、loadwc.exe、ddhelp.exe、mstask.exe、ctfmon.exe、taskmagr.exe、msnmsgr.exe、wmiexe.exe,它們都是正常的係統進程。
建議在安裝完Windows後,點擊“開始→程序→附件→係統工具→係統信息”,在打開的“係統信息”窗口中再點擊“軟件環境→正在運行任務”(在此進程列表中,可看到更詳細的屬性,其中程序路徑是非常重要的信息),接著點擊“操作→另存成文本文件”,以後係統出現異常時則對照進行分析。另外,“優化大師”也提供了保存進程快照的功能●。
實例二:查找木馬的蛛絲馬跡
許多木馬和一些防護工具采用了雙進程保護手段,例如“Falling Star”木馬就采用雙進程模式,下麵來看看如何發現它們。
第一步:打開任務管理器。根據和常見進程比較,很明顯會發現兩個“熟悉的陌生人”(和係統基本進程名稱相似,但不相同):“internet.exe”和“systemtray.exe”。請和上一實例中的”配角“進程比較。
第二步:打開“係統信息”的“軟件環境→正在運行任務”,查看路徑信息,兩者均指向WindowsSystem32目錄,而且文件大小、日期均相同,但從文件日期來看並不屬於微軟的係統文件。進入資源管理器查看其版本屬性,雖然公司標明為Microsoft,但與係統文件中的微軟公司名稱書寫並不相同,基本可斷定是非法進程,並且為雙進程模式。
第三步:在嚐試結束進程時,第一次選擇“systemtray.exe”來結束進程樹,結果進程馬上就再生了,任務管理器中又顯示出這兩個進程!於是再次選擇“internet.exe”,然後結束進程樹●。進程沒有再生,從而將木馬進程從係統中清除。
實例三:真真假假係統進程
許多病毒和木馬為避免從進程名稱中發現它們的蹤影,往往會采用“障眼法”,使用和係統文件或係統進程名稱類似的進程名稱。
1.文件名偽裝
(1)修改常見程序或進程個別字符
例如,上麵介紹的“Falling Star”木馬的進程名稱“internet.exe”就與輸入法進程“internat.exe”十分相似。“WAY無賴小子”的服務端進程名稱為“msgsvc.exe”,與係統基本進程“msgsrv32.exe”類似,還有Explorer.exe和Exp1orer.exe的區別,不仔細的話你能看出來嗎?(數字“1”取代了字母“l”)
(2)修改擴展名
著名的冰河木馬的服務端進程為Kernel32.exe,乍一看很熟悉,好像是哪個係統進程,其實係統根本不存在這樣一個文件,Windows 9x的基本進程中卻有一個叫做“Kernel32.dll”的。諸如此類的還有“Shell32.exe”的木馬進程是從“Shell32.dll”這個大家都很熟悉的文件“演變”而來的,實際在係統中都是不存在的。
2.路徑偽裝
Windows目錄和System目錄是係統核心文件所在地,一般是“閑人免進”。因此,出入它們的文件一般都被人們認為是係統文件,而病毒和木馬就借機將源文件放在這兩個目錄中。對於這類情況,一般隻需要通過係統信息找到其源文件路徑,打開文件的屬性,從日期(這個非常重要,可以看是否與係統文件日期一樣)、版本、公司名稱信息中即可看出破綻。沒有哪個病毒、木馬文件能設計得與係統文件完全一致。