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