前言:
眾所周知,現(xiàn)在越來越多的病毒愛好者為了展示個(gè)人能力或一些不可告人的秘密而制作一系列的病毒程式;不過,由于國內(nèi)大部分用戶對網(wǎng)絡(luò)安全有了更多的了解,都會在自己系統(tǒng)中安裝使用防火墻或殺毒軟件來保護(hù)自己的系統(tǒng)網(wǎng)絡(luò)安全!因此,這類安全軟件的存在成了這些病毒的“拌腳石“。如何掃除這些“拌腳石”也就成了他們所追求的另一種境界:“讓病毒程式在系統(tǒng)中如入無人之境”!
常見的病毒保護(hù)技術(shù):
加殼壓縮或加密(主要是采用網(wǎng)絡(luò)中流行的加殼程序);
修改病毒程式中的特征碼(躲避殺毒軟件中的特征碼掃描);
在病毒程式激發(fā)其功能模塊時(shí)先檢測系統(tǒng)中的安全軟件,如存在,則進(jìn)行清除;
采用內(nèi)核式、服務(wù)級編程方式,使得大部分殺毒軟件能查無法清除,此類病毒技術(shù)性較強(qiáng),隨著Rootkit源碼的公開,該方式也迅速傳播…
… … …
這里討論病毒保護(hù)方式3中的防護(hù)方法“打造個(gè)性化免殺版安全軟件”
1、避開“進(jìn)程掃描式”追殺;
要避開這種方式的追殺只需要修改主程序文件名就可以避開病毒所采用的“進(jìn)程掃描式”追殺;
2、避開FindWindow()FindWindowExA()函數(shù)的追捕;
hwnd = FindWindow("TApplication", vbNullString) ;查找特征窗口類名
hwnd = FindWindow(vbNullString, "Pfw") ;查找特征窗口標(biāo)題
該方式主要是防止此類函數(shù)掃描窗口名或類名以此終止安全軟件的運(yùn)行;使用OllyDbg 或 SoftICE 載入需要打造的防火墻程序PFW.ExE ,設(shè)置斷點(diǎn)USER32.CreateWindowExA()
部分代碼:
004EA2B8 /$Content$nbsp; 55 push ebp |
堆棧數(shù)據(jù):
0012FD6C 00000000 |ExtStyle = 0 |
修改操作:
右鍵功能:"進(jìn)數(shù)據(jù)窗口",然后在Hex dump 窗口中選擇右鍵功能: " 二進(jìn)制\編輯(或快捷鍵Ctrl+E)" 修改類名字符串!
接下來,我們用VC++或其他資源編輯器打開 String Table 修改ID為10001的值:天網(wǎng)防火墻個(gè)人版 (將其修改為其他字符,這里改為免.殺.版..東毒君) ,保存。
最后使用Spy++ 查看成果:Window Caption: 免.殺.版..東毒君 Class Name: skyXnet
總結(jié):
本例只是處理了主流個(gè)人版天網(wǎng)防火墻,同樣道理我們可以繼續(xù)打造修改其他的殺毒軟件… … 其實(shí)這并不算什么較新技術(shù),不過,只要是經(jīng)常在網(wǎng)絡(luò)上走動,或常使用網(wǎng)絡(luò)通信工具如QQ、MSN之類的,就難免會感染病毒,既然病毒程式采用多樣化的保護(hù)方式來達(dá)到其入侵的目的,我們也可以借鑒逆向工程思維處理我們的安全程式,使其具有免疫功能。