從我上面列舉的方法已經(jīng)差不多可以形成好幾款流氓軟件了。但是你別高興太早,因為這些技術(shù)只是應(yīng)用層的,現(xiàn)在出現(xiàn)了一堆驅(qū)動層的反流氓軟件工具,譬如超級兔子,完美卸載,木馬克星,雅虎助手,還有現(xiàn)在火熱的360安全衛(wèi)士。
這些反流氓軟件的方法刪除以上流氓軟件軟件就比較簡單。優(yōu)先于流氓軟件啟動,截獲所有訪問流氓軟件文件的irp,然后刪除注冊表項,刪除文件。輕松的完成了反流氓任務(wù)。
為了針對這些反流氓軟件,流氓軟件出現(xiàn)了內(nèi)核層的了。
1。首先是使用文件過濾驅(qū)動,保護自己的文件,流氓軟件過濾了create里對于自己文件的所有fileopen外的所有irp和SetInformation下所有的irp,從而有效的保護了自己的文件。
2。內(nèi)核級hook技術(shù),可hook住所有公開的或者未公開的內(nèi)核函數(shù),譬如zwcreatefile,zwSetInformation,也可以有效的保護文件。
3。驅(qū)動層下的流氓軟件還使用內(nèi)核級hook技術(shù),替換Regdeletekey,RegDeleteValueKey,RegSetValueKey從而有效的保護了注冊表
4。利用內(nèi)核級hook技術(shù)還有隱藏進程,或者監(jiān)控進程,重起進程。
對于上面的流氓軟件的方法一些驅(qū)動層下的反流氓軟件工具又有點束手無策了。因為同是驅(qū)動程序相互攔截irp等于大家都無法操作,反流氓軟件工具的刪除irp會被攔截,或者刪除函數(shù)會被替換。刪除注冊表函數(shù)會被替換。雖然驅(qū)動的加載有先后,但是無法保證能完全的刪除流氓軟件,從而出現(xiàn)了一些更頂級的反流氓軟件,他直接發(fā)刪除文件irp到文件系統(tǒng).,刪除注冊表也直接發(fā)送到文件系統(tǒng)。這類流氓軟件又能有效的完成了反流氓任務(wù),但是根據(jù)我了解,這樣的軟件不多。現(xiàn)在火熱的360安全衛(wèi)士都還只是使用了笨辦法,優(yōu)先于驅(qū)動流氓軟件啟動,創(chuàng)建一個驅(qū)動流氓軟件同設(shè)備名的設(shè)備,,使流氓驅(qū)動創(chuàng)建不成功。具我了解他優(yōu)先于流氓驅(qū)動啟動是把自己創(chuàng)建于PNP_TDI這個組下面,就是簡單的ndis就能優(yōu)先于360啟動。如果前面的組,那360就束手無策了。所以對付這類流氓驅(qū)動只能用直接發(fā)irp到文件系統(tǒng)。
流氓軟件又怎么來防止直接發(fā)irp到文件系統(tǒng)的反流氓軟件呢?rootkit,我看很多對于rootkit有誤解,很多都認為hook也是rootkit.呵呵,rootkit說白了就是嵌入操作系統(tǒng)文件。你不是發(fā)irp到文件系統(tǒng)嗎?,可是我把文件系統(tǒng)給改了,不過rootkit根據(jù)我的觀察unix或者linex下比較多,在windows下還是比較少的,因為需要使用匯編了,哎太晚了,不寫了,我想如果流氓軟件做到這個技術(shù)程度,它也沒必要做流氓了,直接做操作系統(tǒng)得了。