四、修改特征码免杀
特征码不用说了,大家都知道,现在杀毒软件查杀病毒都是查看文件中的特征码,只要特征码被改掉或加密了,杀毒软件就查杀不出来了,所以改特征码免杀是最有效的。不过修改特征码免杀效果虽好,却仅仅对一款杀毒软件有效,因为不同杀毒软件的病毒库是不同的。
了解特征码免杀免杀原理后,我们来看看特征码免杀的一般操作步骤:
1、设置特征码定位器CCL;
2、用要做免杀的杀毒软件查杀CCL生成的文件;
3、使用偏移量定位器转化得到特征码的内存地址;
4、对特征码进行修改或加密达到免杀;
5、检测程序是否正常运行和免杀效果。
实例:修改灰鸽子潜入者MINI的瑞星文件特征码免杀
这里不再使用疯狂qq大盗了,因为疯狂qq大盗太大,不适合做特征码免杀,太麻烦,而潜入者只有3K,做免杀比较方便。首先生成潜入者,用瑞星检测,瑞星可以查到。(如果不能查到就无法定位特征码了)下面来设置CCL,点击“设置”→“手动参数”,弹出对话框,第一个选项“总共生成规定个数的文件”相对应的是“生成个数”;第二个选项“每次替换规定字节大小”对应的是“替换大小”。选中选项“总共生成规定个数的文件”则“每次替换规定字节大小”无效,反之亦然。(如图10)
(CCL定位特征码的原理是用0000一段一段地替换文件中的代码,每替换一段生成一个文件,我们用杀毒软件查杀剩下的文件说明特征码被替换掉,特征码就在里面。)因为潜入者只有3K,我们这里选择“每次替换规定字节大小”在“替换大小”中输入4,就是每次替换4字节。然后我们来设置生成目录,点击“设置”→“总体参数”因为我们是做文件特征码免杀,所以选择“文件特征码手动定位”下面是目录设置,设置我们生成文件的目录。设置好后我们开始生成文件,点击“文件”→“特征码检测”→“文件特征码”打开我们的潜入者。打开后会弹出“PE文件段选择”我们是做文件免杀,不用理它,点确定。CCL会显示生成文件信息,再点运行文件就生成在我们设置的目录中,用瑞星查杀一遍。接着再打开CCL,点击“操作”→“结果定位”打开我们先前设置的目录来定位。定位结果如下:
-------------定位结果------------
序号 起始偏移 大小 结束偏移
0001 00000000 00000004 00000004
0002 0000003C 00000004 00000040
0003 00000100 00000008 00000108
0004 00000114 00000004 00000118
0005 00000128 00000004 0000012C
0006 00000134 00000004 00000138
0007 00000204 0000000C 00000210
0008 00000400 00000008 00000408
0009 00000438 0000002C 00000464
000A 00000558 00000010 00000568
定位好了,我们用偏移量定位器来转化文件地址为内存地址,这里不要选太靠前面的,因为它可能在PE的头部,不方便修改。我们选择00000400,用偏移量定位器打开潜入者,在文件偏移中填上00000438点>>>>,得到内存地址为00401038,特征码大小为0000002C,说明特征码是从00401038到00401064。
下面我们来对特征码进行加密,我们使用的工具是vmprotect,一款虚拟机的加密工具,用vmprotect打开潜入者,在左边空白处单击右键→“添加地址”输入00401038。右边出现一段代码,选择00401038到00401064,点击转储,再点击编译,就是那个绿色的三角符号。保存就加密好了。文件由3K变成9.50 KB。
用瑞星查杀,瑞星已经不认得它了。再测试一下能否运行,打开它,潜入者要求访问网络,下载木马了,(如图11)
免杀成功。
再来讲一种修改方法也能达到免杀效果。方法与加花指令相似,就是先记下特征码起始和结束地址,再将特征码NOP掉,再JMP到空白地址执行后再跳回特征码结束地址执行。
我们用00000558 00000010 00000568这段特征码吧,用偏移量转换器转换得到内存地址为00401158到00401168。然后用OllyDbg载入潜入者,找到特征码,复制下来,再NOP掉。
00401158 > 55 push ebp
00401159 8BEC mov ebp,esp
0040115B 83C4 F0 add esp,-10
0040115E B8 38114000 mov eax,OK.00401138
00401163 E8 D0FEFFFF call OK.00401038
00401168 68 A0114000 push OK.004011A0
找个空白地址,记下地址004011E1,将特征码一句一句写入。写到mov eax,OK.00401138,无法写,我们右键点击“二进制”→“汇编”输入B8 38114000就行了。无法写就用二进制写。写好用JMP跳会特征码的原始结束地址00401168,(如图12)
在特征码的原始开始地址00401158用JMP跳到我们写特征码的地方004011E1,就好了。用瑞星一样查不出来,成功了。
现在简单讲讲内存特征码免杀,一样用CCL定位,设置总体参数是选择“文件/内存特征码自动定位”,自动参数设置4秒较好,最小替换字节数根据文件大小设置。设置好了点“文件”→“特征码检测”→“内存特征码”打开我们要做免杀的文件。来到PE文件段选择,用户输入区添加代码段,区段选段名一般为.CODE或.text,这是代码段区。按确定来到生成文件信息界面,这时要打开瑞星,按下运行,程序开始倒计时,每4秒点下暂停,用瑞星的内存查杀功能查杀。循环操作,直到进度条走完,再用CCL定位特征码就OK了。由于这个过程比较繁琐,而且我的电脑只有128MB的内存,用用瑞星杀一下内存就40多秒实在受不了,就不做演示了,和文件特征码定位差不多,有兴趣的可以自己试试,下面是我的一张截图。(图13)
大家再做内存特征码定位可以尽量少开程序,以加快内存查杀。
大家在做免杀时可按先加花指令,再修改入口点,再加壳看看免杀效果,如果还有某一个杀毒软件还查杀到话,我们就针对它做特征码免杀。免杀技术就介绍到这里了,希望大家灵活运用,打造自己的免杀木马。
上一页 1 2 3