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