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

