前言:
眾所周知,現在越來越多的病毒愛好者為了展示個人能力或一些不可告人的秘密而製作一系列的病毒程式;不過,由於國內大部分使用者對網路安全有了更多的瞭解,都會在自己系統中安裝使用防火牆或殺毒軟體來保護自己的系統網路安全!因此,這類安全軟體的存在成了這些病毒的“拌腳石“。如何掃除這些“拌腳石”也就成了他們所追求的另一種境界:“讓病毒程式在系統中如入無人之境”!
常見的防毒保護技術:
加殼壓縮或加密(主要是採用網路中流行的加殼程式);
修改病毒程式中的特徵碼(躲避殺毒軟體中的特徵碼掃描);
在病毒程式激發其功能模組時先檢測系統中的安全軟體,如存在,則進行清除;
採用核心式、服務級編程方式,使得大部分殺毒軟體能查無法清除,此類病毒技術性較強,隨著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
004EA2B9 |. 8BEC mov ebp,esp
004EA2BB |. 53 push ebx
004EA2BC |. 8B5D 08 mov ebx,dword ptr ss:[ebp+8]
004EA2BF |. 53 push ebx ; /lParam
004EA2C0 |. 8B5D 0C mov ebx,dword ptr ss:[ebp+C] ; |
004EA2C3 |. 53 push ebx ; |hInst
004EA2C4 |. 8B5D 10 mov ebx,dword ptr ss:[ebp+10] ; |
004EA2C7 |. 53 push ebx ; |hMenu
004EA2C8 |. 8B5D 14 mov ebx,dword ptr ss:[ebp+14] ; |
004EA2CB |. 53 push ebx ; |hParent
004EA2CC |. 8B5D 18 mov ebx,dword ptr ss:[ebp+18] ; |
004EA2CF |. 53 push ebx ; |Height
004EA2D0 |. 8B5D 1C mov ebx,dword ptr ss:[ebp+1C] ; |
004EA2D3 |. 53 push ebx ; |Width
004EA2D4 |. 8B5D 20 mov ebx,dword ptr ss:[ebp+20] ; |
004EA2D7 |. 53 push ebx ; |Y
004EA2D8 |. 8B5D 24 mov ebx,dword ptr ss:[ebp+24] ; |
004EA2DB |. 53 push ebx ; |X
004EA2DC |. 51 push ecx ; |Style
004EA2DD |. 52 push edx ; |WindowName ;視窗標題
004EA2DE |. 50 push eax ; |Class ;程式類名
004EA2DF |. 6A 00 push 0 ; |ExtStyle = 0
004EA2E1 |. E8 7C010>call ; CreateWindowExA
004EA2E6 |. 5B pop ebx
004EA2E7 |. 5D pop ebp
004EA2E8 . C2 2000 retn 20