一、為什么流氓軟件總是刪不掉?
經(jīng)常有網(wǎng)友發(fā)貼子說(shuō)文件刪除不掉,或者流氓軟件清除不了,或者刪除了相關(guān)的文件,但是馬上它又出現(xiàn)了。現(xiàn)在流氓軟件為了保護(hù)自己,采取的手段是五花八門(mén),無(wú)所不用其極:進(jìn)程保護(hù),交叉感染,自啟動(dòng),自我恢復(fù),文件隱藏,進(jìn)程注入,驅(qū)動(dòng)保護(hù)。
到目前為止,所有流氓軟件最終極、最有效的保護(hù)辦法還是底層驅(qū)動(dòng)級(jí)的保護(hù),一般就是在drivers目錄下增加一個(gè)或多個(gè).sys文件(我也見(jiàn)過(guò)一個(gè)用rundll32來(lái)運(yùn)行一個(gè).dll作為驅(qū)動(dòng)的),但本質(zhì)上這個(gè)都會(huì)在Windows的HKLM\SYSTEM\CurrentControlSet\Services\下建一個(gè)相關(guān)的值,如CNNIC建立的就是HKLM\SYSTEM\CurrentControlSet\Services\cdnprot,并且將啟動(dòng)級(jí)別做得很高,在安全模式下也會(huì)自動(dòng)啟動(dòng)。這個(gè)底層的驅(qū)動(dòng)過(guò)濾所有的文件以及注冊(cè)表操作,如果發(fā)現(xiàn)是對(duì)流氓軟件自己的文件/注冊(cè)表操作,就會(huì)直接返回一個(gè)true,如果發(fā)覺(jué)文件被刪除,就會(huì)通過(guò)備份或者網(wǎng)絡(luò)來(lái)下載恢復(fù)。它們的保護(hù)措施已經(jīng)做到這一級(jí),普通用戶(hù)根本沒(méi)有辦法刪除相關(guān)的文件,一般都需要重啟到DOS系統(tǒng)下去刪除文件。
這也是很多網(wǎng)友提的為什么文件刪除不掉,或者刪除了,重啟之后,一會(huì)兒又出現(xiàn)了,陰魂不散的原因。下面我們的要做的,就是找出來(lái)這些流氓軟件的后臺(tái)的驅(qū)動(dòng)保護(hù)。
二、為什么找出驅(qū)動(dòng)保護(hù)很困難?
Windows的驅(qū)動(dòng)文件一般位于system32\drivers目錄下,以.sys文件方式存在,通過(guò)注冊(cè)表的HKLM\SYSTEM\CurrentControlSet\Services\的方式來(lái)啟動(dòng),有一部分屬于服務(wù)的,可以在Windows的服務(wù)的MMC控制窗口里看到。但如果是驅(qū)動(dòng),則在這里看不到。Windows正式情況下,那個(gè)drivers目錄下有200個(gè)左右的文件,如果偷偷往這個(gè)下面塞一個(gè).sys文件,是很難發(fā)現(xiàn)的。象著名的3721這類(lèi)cnsminkp.sys,CNNIC的cdnprot.sys比較容易認(rèn)識(shí),但現(xiàn)在的很多軟件的名字都是不固定的,或者是隨機(jī)生成的,這樣的辨識(shí)的難度就很大。我曾經(jīng)用過(guò)的方式有:
1、通過(guò)保存文件列表,時(shí)常自己手工比較這兩個(gè)文件,看前后差別多出來(lái)的文件肯定有問(wèn)題
2、通過(guò)文件生成的日期。(這點(diǎn)流氓軟件也想到了,日期也只能作為參考)
3、通過(guò)文件的屬性里在的公司信息。早年還行,現(xiàn)在越來(lái)越多的流氓軟件的驅(qū)動(dòng)冒充是M$的,有的連英文單詞都寫(xiě)錯(cuò)了。
4、通過(guò)文件夾監(jiān)視工具。
上面這四種都有一定的缺陷,只能作為參考,都不是太好。并且現(xiàn)在有一些軟件通過(guò)文件系統(tǒng)隱藏,這些驅(qū)動(dòng)文件,通過(guò)資源管理器,根本連看都看不到。
三、如何找出可疑驅(qū)動(dòng)來(lái)?
難道沒(méi)有更好的辦法嗎?有,應(yīng)該有的,這個(gè)就是我們今天要介紹的主角:autoruns
名稱(chēng): autoruns
網(wǎng)址:http://www.sysinternals.com/Utilities/Autoruns.html
大小:326K v8.53
平臺(tái): Windows 95/98/2000/XP/2003
性質(zhì):免費(fèi)軟件
介紹:autoruns是著名的sysinternals出品的一款小軟件,它的主要功能是列出系統(tǒng)自啟動(dòng)的項(xiàng)目。通過(guò)它,你可以輕易查看到所有系統(tǒng)可能啟動(dòng)的地方,非常的全面。跟流氓軟件相關(guān)的是“Services(服務(wù))",“LSA Providers(LSA提供者)”、"Winsock Providers(Winsock提供者)",“Drivers(驅(qū)動(dòng))“。下面重點(diǎn)介紹Drivers這一部分的功能。
運(yùn)行autoruns之后,在它的“Options(選項(xiàng))”菜單中有兩項(xiàng)“Verifiy Code Signatures(驗(yàn)證代碼簽名)“Hide Signed Microsoft Entries(隱藏已簽名的微軟項(xiàng))“,把這兩項(xiàng)都選中了。驗(yàn)證代碼簽名是指驗(yàn)證所有dirvers下的.sys文件的文件簽名。Windows下的硬件有一個(gè)簽名的功能,它是為了保證所有的驅(qū)動(dòng)文件是經(jīng)過(guò)M$測(cè)試,符合HAL兼容性。隱藏已簽名的微軟項(xiàng),就是把那些合法的隱藏起來(lái)。不然200多個(gè),會(huì)看著發(fā)暈的。
這樣autoruns就會(huì)檢查所有已經(jīng)注冊(cè)成為驅(qū)動(dòng)的項(xiàng),并且檢查所有的.sys的文件數(shù)字簽名。所有假冒的或者沒(méi)有通過(guò)代碼簽名的項(xiàng),都會(huì)在這里列出來(lái)。也就可以很容易判斷這個(gè)驅(qū)動(dòng)是不是有問(wèn)題了。如果有問(wèn)題的話,可能通過(guò)冰刀(請(qǐng)參見(jiàn)《清除流氓軟件的第一利器(IceSword)》文件把里面相關(guān)的注冊(cè)表鍵值刪除,重啟機(jī)器,這樣驅(qū)動(dòng)保護(hù)就失效了,然后可以通過(guò)文件刪除工具來(lái)刪除其它的文件,完成最后的清理工作。
四、總結(jié)
最后再總結(jié)一下:
1、流氓軟件刪除不掉或者死灰復(fù)燃,很多時(shí)候是因?yàn)橛序?qū)動(dòng)或服務(wù)保護(hù)
2、通過(guò)autoruns找到這些可疑的驅(qū)動(dòng)
3、通過(guò)冰刀刪除相關(guān)驅(qū)動(dòng)健值或者直接用文件粉碎器刪除相關(guān)的.sys文件,重啟驅(qū)動(dòng)就無(wú)效
4、清理其它文件,完成善后工作。
以上方法通過(guò)各種測(cè)試是證明有效的,但不排除將來(lái)有更進(jìn)一步的隱藏手段來(lái)躲避autoruns的檢查。但原理是一樣的。不過(guò)是通過(guò)程序來(lái)減少工作量。
責(zé)任編輯 趙毅 zhaoyi#51cto.com TEL:(010)68476636-8001


