夜晚是黑虫子的天下

打造个性化免杀版防火墙、杀毒软件

上一篇 / 下一篇  2008-05-08 18:10:30

众所周知,现在越来越多的病毒爱好者为了展示个人能力或一些不可告人的秘密而制作一系列的病毒程式;不过,由于国内大部分用户对网络安全有了更多的了解,都会在自己系统中安装使用防火墙或杀毒软件来保护自己的系统网络安全!因此,这类安全软件的存在成了这些病毒的“拌脚石“。如何扫除这些“拌脚石”也就成了他们所追求的另一种境界:“让病毒程式在系统中如入无人之境”!
常见的病毒保护技术

加壳压缩或加密(主要是采用网络中流行的加壳程序);

修改病毒程式中的特征码(躲避杀毒软件中的特征码扫描);

在病毒程式激发其功能模块时先检测系统中的安全软件,如存在,则进行清除;

采用内核式、服务级编程方式,使得大部分杀毒软件能查无法清除,此类病毒技术性较强,随着Rootkit源码的公开,该方式也迅速传播…

… … …

这里讨论病毒保护方式3中的防护方法“打造个性化免杀版安全软件”

1、避开“进程扫描式”追杀;

要避开这种方式的追杀只需要修改主程序文件名就可以避开病毒所采用的“进程扫描式”追杀;

2、避开FindWindow()\FindWindowExA()函数的追捕;

hwnd = FindWindow("TApplication", vbNullString)    ;查找特征窗口类名

hwnd = FindWindow(vbNullString, "Pfw")          ;查找特征窗口标题

该方式主要是防止此类函数扫描窗口名或类名以此终止安全软件的运行;使用OllyDbg 或 SoftICE 载入需要打造的防火墙程序PFW.ExE ,设置断点USER32.CreateWindowExA()

部分代码:

004EA2B8  /$  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


堆栈数据:

0012FD6C    00000000    |ExtStyle. = 0

0012FD70    004ACEAC    |Class = "TApplication"  ; 只需修改这里有类名为:skyxnet

0012FD74    00F61B28    |WindowName = "Pfw"      ; 这里可以不用修改,因为修改了也没有作用... 嘿嘿...

0012FD78    84CA0000   

|Style. = WS_POPUP|WS_MINIMIZEBOX|WS_CLIPSIBLINGS|WS_SYSMENU|WS_CAPT>

0012FD7C    00000200    |X = 200 (512.)

0012FD80    00000180    |Y = 180 (384.)

0012FD84    00000000    |Width = 0

0012FD88    00000000    |Height = 0

0012FD8C    00000000    |hParent = NULL

0012FD90    00000000    |hMenu = NULL

0012FD94    00400000    |hInst = 00400000

0012FD98    00000000    \lParam = NULL

修改操作:

右键功能:"进数据窗口",然后在Hex dump 窗口中选择右键功能: " 二进制\\编辑(或快捷键Ctrl+E)" 修改类名字符串!

接下来,我们用VC++或其他资源编辑器打开 String Table 修改ID为10001的值:天网防火墙个人版  (将其修改为其他字符,这里改为免.杀.版..东毒君) ,保存。

最后使用Spy++ 查看成果:Window Caption: 免.杀.版..东毒君 Class Name: skyXnet

总结:

本例只是处理了主流个人版天网防火墙,同样道理我们可以继续打造修改其他的杀毒软件… … 其实这并不算什么较新技术,不过,只要是经常在网络上走动,或常使用网络通信工具如QQ、MSN之类的,就难免会感染病毒,既然病毒程式采用多样化的保护方式来达到其入侵的目的,我们也可以借鉴逆向工程思维处理我们的安全程式,使其具有免疫功能。



浅谈免杀经验技巧
今天给大家谈一下免杀的小技巧。技术不大,全是经验。希望大家看完后有所收获。
1:
004B3920:  64:8910                    MOV FS:[EAX],EDX
004B3923:  68 35454B00                PUSH 4B4535  -------------替换处(2)
004B3928:  E8 83D3FFFF                CALL 004B0CB0
004B392D:  C3                        RETN
004B392E:  E9 E9FDF4FF                JMP 0040371C
004B3933:  EB F3                      JMP SHORT 004B3928
004B3935:  33C0                      XOR EAX,EAX
004B3937:  5A                        POP EDX
004B3938:  59                        POP ECX
004B3939:  59                        POP ECX
004B393A:  64:8910                    MOV FS:[EAX],EDX
004B393D:  68 5D454B00                PUSH 4B455D  -------------假设特征码处(1)
004B3942:  8D85 64FDFFFF              LEA EAX,SS:[EBP-29C]
004B3948:  E8 4F04F5FF                CALL 00403D9C
004B394D:  8D45 FC                    LEA EAX,SS:[EBP-4]
004B3950:  E8 4704F5FF                CALL 00403D9C
004B3955:  C3                        RETN

假设特征码处(1),大家看下是不是觉得很难改,改了有些可能出错,跳转一般都不行。我们可以试一下和(2)处交换下。看是不是是能免杀上线。如何可以吧。因为他们都是压入堆栈,我们只是换了个地址而已。
2:
004B3920:  64:8910                    MOV FS:[EAX],EDX
004B3923:  68 35454B00                PUSH 4B4535
004B3928:  E8 83D3FFFF                CALL 004B0CB0  ------假设特征码处(1)
004B392D:  C3                        RETN
004B392E:  E9 E9FDF4FF                JMP 0040371C
004B3933:  EB F3                      JMP SHORT 004B3928
004B3935:  33C0                      XOR EAX,EAX
004B3937:  5A                        POP EDX
004B3938:  59                        POP ECX

在看这个特征码处 ,假设跳转不行,无法上线。那么我们和下面或上面的代码交换下位置试一试。看下是否上线了,而且功能全齐吧!


还有些比较厉害的杀毒软件把你ccl或myccl生成出的特征码全都给杀了,是吧。你可以试一试加壳,再查。如果你想做无壳的。怎么办?办法还是有。你去头加区。试一试不用新加的哪个区段去CCL或MYCCL去生成特征码试一试。有些可能不行,比如黑防。
在这只是给大家介绍些经验,希望各位多多研究,多想些办法。不要放弃。肯定是有办法的。只要你肯研究我不相信你就免杀不了。
不说了,今天就到这,这只是说说经验,当然上面的方法是我自己想出来的,我不保证100%成功。只想给大家一个启发。
送大家免杀6字真言:不放弃,多研究!


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-05-17  
    123
45678910
11121314151617
18192021222324
25262728293031

我的存档

数据统计

  • 访问量: 274
  • 日志数: 22
  • 图片数: 1
  • 建立时间: 2008-05-06
  • 更新时间: 2008-05-09

RSS订阅

Open Toolbar