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