流氓軟件還是在瀏覽器中加載一個工具條、彈出幾個窗口的小插件么?非也!當(dāng)它們開始使用底層掛接、進(jìn)入系統(tǒng)驅(qū)動層時,就不再是單純的流氓軟件了,而應(yīng)該被稱為亞病毒!
今天要討論的是如何根據(jù)流氓軟件的常見行為、常駐區(qū)域來清理以及預(yù)防他們。不要擔(dān)心,流氓軟件其實都是紙老虎,只要有耐心,完全可以手工清理。
流氓軟件的入侵方式
不同流氓軟件的入侵方式是不同的,但是它們具有一些共通之處。一般來說,它們會在硬盤中寫入某些exe、dll或sys文件,然后篡改注冊表,使這些文件能夠在系統(tǒng)啟動時自動運行,甚至是直接安裝為系統(tǒng)服務(wù)和驅(qū)動。而系統(tǒng)文件夾和注冊表自然就成為了流氓泛濫的“重災(zāi)區(qū)”,比如一些系統(tǒng)默認(rèn)的位置:系統(tǒng)盤根目錄、X:\\Windows\\、X:\\Windows\\System32\\、X:\\Windows\\System32\\Drivers\\、X:\\Program Files\\Common Files\\,以及注冊表中的Run、RunOnce、Services等鍵值。
突破點 進(jìn)程!
一般來說,流氓軟件都會有自己的進(jìn)程,如果在任務(wù)管理器中發(fā)現(xiàn)了可疑的進(jìn)程,最好到網(wǎng)上去搜索一下,一般都能找到相應(yīng)的說明。要注意的是,某些流氓軟件進(jìn)程的名稱和系統(tǒng)默認(rèn)的進(jìn)程很相近,如csrssc.exe、svchot.exe、smss.dll等,不要漏掉或誤判了。
如果你沒有十足的把握,可以用下面兩個方法來判斷。首先要找到這些進(jìn)程的位置,Windows XP下可以用Process Explorer(下載地址http://work.newhua.com/pcd)來幫忙(圖1)。
方法1:打開包含該程序的文件夾,在主菜單上選取“查看→選擇詳細(xì)信息”,選擇“創(chuàng)建日期”,確定后在資源管理器空白處單擊鼠標(biāo)右鍵,選擇“排列圖標(biāo)→創(chuàng)建日期”。這樣,我們就能找到最近幾天創(chuàng)建的新文件,如果這些流氓是新闖進(jìn)來的,那么就能很快地和其他正常文件區(qū)別開來。
方法2:點擊“開始→運行”,輸入“sigverif.exe”并回車。系統(tǒng)會彈出“文件簽名驗證工具”,這個工具可以驗證某個程序是否是Windows自帶的,以及是否被其他程序篡改過。
依次選擇“高級→查找其他未經(jīng)過數(shù)字簽名的文件”,在文件類型中輸入程序名稱,并填入所在的文件夾,點擊確定就可以開始驗證了(圖2)。
一般來說,這個工具只用作驗證Windows和System32下的exe和dll文件,如果驗證不通過,只說明該文件不是微軟提供的,有可能是其他廠商的正常程序。實在拿不準(zhǔn)時,可以看一看這個程序的版本信息,如果沒通過驗證還寫著
Microsoft之類的字眼,那就鐵定是冒牌貨了。
最基本的清理方法 刪除文件
確定流氓軟件的可執(zhí)行文件后,就要結(jié)束該進(jìn)程并刪除它。但是,有時候這些進(jìn)程很難被結(jié)束掉,它們會自動重新運行。這樣就需要到安全模式下刪除,如果還是不行就只能把計算機(jī)啟動到非硬盤系統(tǒng)環(huán)境進(jìn)行徹底地清理。
如今最好使用Windows PE系統(tǒng)光盤來做此類工作,它完全和硬盤上的操作系統(tǒng)獨立,所以再強(qiáng)悍的流氓也逃不過此類絕招。在Windows PE下,我們不但可以輕松地訪問NTFS分區(qū),還可以使用很多第三方工具對計算機(jī)進(jìn)行管理(圖3)。
流氓手段揭密一 偽裝成服務(wù)
如果可疑進(jìn)程的用戶名為“SYSTEM”、“LOCAL SERVICE”或者“NETWORK SERVICE”,就說明它屬于系統(tǒng)進(jìn)程,一般都對應(yīng)某個系統(tǒng)服務(wù)。
在“我的電腦”上點擊右鍵,選擇“管理”,在彈出的“計算機(jī)管理”控制臺窗口中選擇“服務(wù)和應(yīng)用程序→服務(wù)”,仔細(xì)查找一下右邊區(qū)域列出的系統(tǒng)服務(wù)是否有比較可疑的。在每條服務(wù)上點擊右鍵,再選擇“屬性”即可查看詳細(xì)的信息(圖4),注意重點查看“可執(zhí)行文件的路徑”這一條是否和那些任務(wù)管理器中出現(xiàn)的可疑應(yīng)用程序一致。如果兩者完全相同的話,請記下該條服務(wù)的“服務(wù)名稱”(注意不是“顯示名稱”),然后打開注冊表編輯器,并定位到“HKEY_LOCAL_MACHINE\\SYS T EM\\ C u r r e n t C o n t r o l S e t \\Services”,在下面找到與之對應(yīng)的主鍵,刪除后重新啟動計算機(jī),這個服務(wù)就會徹底消失了。
如果你不太確定某個服務(wù)是否是系統(tǒng)默認(rèn)存在的,可以在“運行”對話框中輸入“msconfig”并確定,啟動系統(tǒng)配置實用程序(Windows 2000默認(rèn)不帶此工具,可以從XP下復(fù)制一份來使用)后在其窗口的“服務(wù)”選項卡內(nèi)選擇“隱藏所有Microsoft服務(wù)”,這樣便能看到當(dāng)前所有不屬于系統(tǒng)自帶的服務(wù)。
流氓手段揭密二 隱藏進(jìn)程
前面說的是有進(jìn)程的流氓軟件,然而很多時候我們能明顯地覺察到系統(tǒng)運行緩慢或者總是不斷地彈出廣告窗口,但卻怎么也找不到可疑的進(jìn)程。
現(xiàn)在很多流氓軟件只是一個掛接到系統(tǒng)底層的dll文件,甚至是tmp臨時文件,比如掛接到網(wǎng)絡(luò)底層的SPI程序。這樣就不會有進(jìn)程,他們只是把自身(一般是一個dll庫文件)寫入注冊表,以替代所有網(wǎng)絡(luò)程序都要加載的系統(tǒng)組件(WinSock2服務(wù)模塊,同樣是dll庫文件)。這樣一來,所有的網(wǎng)絡(luò)進(jìn)程都會調(diào)用流氓軟件提供的接口,甚至是系統(tǒng)進(jìn)程也會依賴于它們。還有一種常見的無進(jìn)程流氓軟件形式就是BHO(瀏覽器輔助對象)插件。由于Internet Explorer采取了開放式的設(shè)計,可以讓第三方廠商在瀏覽器中加入很多的輔助功能插件,然而早期的IE在編寫時又對安全性考慮不足,所以便致使很多的惡意瀏覽器插件不請自來,并且賴在用戶系統(tǒng)中無法卸載。
對于前一種情況,我們可以使用一款叫做WinSockFix(下載地址http://work.newhua.com/pcd)的軟件來進(jìn)行修復(fù),由于WinSock2服務(wù)層在注冊表中的結(jié)構(gòu)過于復(fù)雜,所以不推薦手動修改。而后一種情況,我們可以直接在Windows XP SP2下禁用之,打開IE6,選擇“工具→管理加載項”來直接停用(圖5)。一般來說,這樣的修復(fù)就可以使這些插件與系統(tǒng)脫離關(guān)系,只是最后還要刪除這些殘留在硬盤中的垃圾。在此,我們同樣可以用上面提到的兩種方法來進(jìn)行查找和驗證系統(tǒng)中新出現(xiàn)的可疑文件(一般在上面提到的那些系統(tǒng)默認(rèn)文件夾中)。
但是,很多情況下我們都不能直接刪除它們,系統(tǒng)會提示“拒絕訪問”。
這是因為Windows查找到還有打開這些文件的句柄存在(在Windows系統(tǒng)中,每個進(jìn)程打開一次某個文件就會創(chuàng)建一個對應(yīng)的句柄),因此只要關(guān)閉這些句柄即可。
關(guān)閉句柄的操作同樣可以用Proc ess Explor e r來完成,在Proc essExplorer的菜單上選擇“查找→查找句柄或DLL”,并輸入相關(guān)的文件名或路徑便能找到相關(guān)的句柄(圖6),接下來在主窗口的下面一欄點擊右鍵選擇關(guān)閉該句柄即可)。
如果你希望操作更簡單一些,也可以使用“傻瓜式”的Unlocker(下載地址http://work.newhua.com/pcd),來自動查找和關(guān)閉某個文件所對應(yīng)的全部句柄。一般來說,這樣操作之后基本能夠刪除在正常環(huán)境下無法刪除的頑固文件,如果遇到實在無法刪除的,還是老老實實到安全模式下去清理吧。
流氓手段揭密三 偽裝成驅(qū)動
如果懷疑系統(tǒng)中的流氓軟件已經(jīng)進(jìn)入了驅(qū)動層,可以嘗試以下方法來應(yīng)付。同樣是打開“計算機(jī)管理”控制臺,選擇“系統(tǒng)工具→設(shè)備管理器”,并在菜單上選擇“查看→顯示隱藏的設(shè)備”。這樣一來,樹型設(shè)備控件下會多出一欄“非即插即用驅(qū)動程序”,我們可以在此找到一些隱藏的系統(tǒng)驅(qū)動程序。在這些驅(qū)動上點擊鼠標(biāo)右鍵就能查看到其屬性信息,也可以直接停用或卸載它們(圖7)。結(jié)合服務(wù)名稱和其屬性對這些驅(qū)動程序進(jìn)行一一甄別,如果你對某個可疑的驅(qū)動程序沒有把握,可以先停用它,重新啟動計算機(jī)后觀察是否依然有流氓軟件活動的跡象,如果有的話則應(yīng)該恢復(fù)該驅(qū)動程序并轉(zhuǎn)移目標(biāo)。如此反復(fù)操作,直到找到真正的流氓為止,最后直接卸載它們。
本文只是一些個人的心得體會,比較籠統(tǒng),希望可以啟發(fā)大家在識別和清理流氓軟件上的思路。流氓軟件數(shù)量眾多,并且還在不斷地“進(jìn)化”,只有不斷地摸索才能積累出一套對付流氓軟件的完整經(jīng)驗。如果你想成為一名真正的高手,那就拋開反流氓軟件,用自己的力量來對抗這些紙老虎吧。
本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。