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