前言:
众所周知,现在越来越多的病毒爱好者为了展示个人能力或一些不可告人的秘密而制作一系列的病毒程式;不过,由于国内大部分用户对网络安全有了更多的了解,都会在自己系统中安装使用防火墙或杀毒软件来保护自己的系统网络安全!因此,这类安全软件的存在成了这些病毒的“拌脚石“。如何扫除这些“拌脚石”也就成了他们所追求的另一种境界:“让病毒程式在系统中如入无人之境”!
常见的病毒保护技术:
加壳压缩或加密(主要是采用网络中流行的加壳程序);
修改病毒程式中的特征码(躲避杀毒软件中的特征码扫描);
在病毒程式激发其功能模块时先检测系统中的安全软件,如存在,则进行清除;
采用内核式、服务级编程方式,使得大部分杀毒软件能查无法清除,此类病毒技术性较强,随着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之类的,就难免会感染病毒,既然病毒程式采用多样化的保护方式来达到其入侵的目的,我们也可以借鉴逆向工程思维处理我们的安全程式,使其具有免疫功能。