荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: skyxnet (陈宇青), 信区: Security
标  题: 打造个性化免杀版防火墙、杀毒软件
发信站: 荔园晨风BBS站 (Thu Sep 15 10:16:06 2005) , 站内信件

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


                              东毒君   2005.7.16


前言:


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

常见的病毒保护技术:


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

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

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

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

… … …

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

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

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

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


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


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


该方式主要是防止此类函数扫描窗口名或类名以此终止安全软件的运行;使用OllyDbg 或 S
oftICE 载入需要打造的防火墙程序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之类的,就难免会感染病毒,既然病毒程式采用多样化的保护方式来达到其入侵
的目的,我们也可以借鉴逆向工程思维处理我们的安全程式,使其具有免疫功能。

--
修身 养性 治国 平天下      心有多高,天空就有多高!
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 211.148.214.191]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店