免杀技术详解

您所在的位置:网站首页 点杀技术 免杀技术详解

免杀技术详解

2024-05-24 03:14| 来源: 网络整理| 查看: 265

杀毒软件奈我何                     ——免杀技术详解

逆流风

注:本文是去年投给黑客X档案的,与那期的主题乐园内容重叠,故未被选上,我也不另投其他杂志,转贴请注明出处,保留版权。

一、加壳免杀

壳按照性质不同可分为压缩壳和加密壳,使用压缩壳压缩过的软件体积会减小很多,我们常用的UPX、ASPACK、FSG就是压缩壳,加密壳是防止软件被破解而加的壳,常见的加密壳有tElock、幻影、ASProtect等。加壳免杀是我们常用的免杀方法,操作简单,但是免杀的时间不长,可能很快就被杀。但是经过加花指令、修改特征码后再加壳,免杀效果就相当好了,所以我们还是有必要了解一下。

实例:用NEW、[MSLRH] v0.31a加壳免杀 NEW是一款俄国人写的具有高压缩率的壳。压缩率高,而且压缩后的程序基本不会被查杀,值得一用。以疯狂qq大盗build0709无壳版为例,使用NEW加壳。文件由原来的800K变成411K。接下来我们再用加密壳[MSLRH] v0.31a来加密疯狂qq大盗build0709无壳版。[MSLRH] v0.31a能伪装成其它壳。先用PEiD查下疯狂qq大盗build0709无壳版,没加壳,用[MSLRH] v0.31a加壳,在“令PEiD(V.93)探测为:随便选一个壳名称,用ASPack吧。加好后文件大小变成872K,再用PEiD探测,变成ASPack了(如图1)。

下面对比一下加壳效果和免杀效果。用瑞星查杀,两个加过壳的疯狂qq大盗都躲过了瑞星的表面查杀而没加壳的瑞星查出来了。(如图2、图3)

二、修改入口点免杀

杀毒软件的杀毒引擎大多以文件的入口处来判断文件是否是病毒或木马。我们通过修改文件的入口点能躲过大部分杀毒软件的查杀。

实例:将疯狂qq大盗build0709无壳版的入口点加1免杀 修改入口点,我们使用的是Peditor。首先,用Peditor打开将疯狂qq大盗build0709无壳版,看左上角文件性息中的入口点,疯狂qq大盗build0709无壳版的入口点是00063DC8,00063DC8+1=00063DC9,将入口点改为00063DC9,再点击“应用更改”,就OK了。(如图4)

用瑞星杀毒检测,瑞星查不出来,而我用了几年的北信源VRV杀毒却查出来了,也说明了北信源VRV杀毒的特征码不在入口处。(如图5)

三、手动加花指令免杀

花指令是程序中的无用代码,程序多它没影响,少了它也能正常运行。加花指令后,杀毒软件对木马静态反汇编使,木马的代码就不会正常显示出来,加大杀毒软件的查杀难度。

了解了什么是花指令后,我们来看看加花指令的一般步骤: 1、准备好要加的花指令,可以从网上收集也可以自己写;(最好自己写,这样免杀效果好,公布在网上的花指令大家都在用,免杀效果不太好,我在网上也找了些花指令和免杀的汇编知识,大家可以看看。) 2、准备未加壳的黑客软件; 3、用OllyDbg打开这个黑客软件,记下入口点的内存地址; 4、找到零地址,一句一句写入花指令,再用JMP跳回程序入口点;(如果找不到空白地址,我们可以用zeroadd加区段,E文软件,我汉化好的,操作简单就不演示了。) 5、保存后用Peditor修改文件入口点为开始写花指令的地址。这样运行程序就先运行花指令再跳回程序的原始开头执行程序了; 6、检测程序是否正常运行和免杀效果。

实例:疯狂qq大盗build0709无壳版加花指令免杀 还是用疯狂qq大盗build0709无壳版来免杀吧,不用脱壳那么麻烦。首先,准备花指令,用我自己写的吧。

PUSH EBP MOV EBP,ESP push edx pop edx inc ecx inc ecx add esp,21 add esp,-21 dec ecx dec ecx jmp 原入口点

解释下吧,前两句在大部分程序开头可以经常看到。push edx是把通用寄存器EDX压入堆栈,pop edx是把通用寄存器EDX弹出堆栈,这两句和起来就相当于什么也没做。接下来的inc ecx,ecx用来保存计数值,也是寄存器,INC是加1;下面的dec ecx中的dec是减1,加1减1相抵消,又是什么也没做。add esp,21这是寄存器esp加21,add是加上,下面一句add esp,-21是寄存器esp加-21,小学知识,+21+(-21)=0,还是什么也没做。最后是jmp 原入口点,JMP是无条件转移指令,经常玩Carck都知道吧。

打开OllyDbg“文件”→“打开”选择疯狂qq大盗build0709无壳版,载入后停留在00463DC8,00463DC8就是疯狂qq大盗build0709无壳版的入口点的内存地址,接下来找到图6

这样的空白地址,选中一段,右键→“二进制”→“使用NOP填充”,就可以开始写我们的花指令了,我们从00463E7A这个地址开始写,右键→“汇编”一句一句写,写到“JMP 原入口点”这里是原入口点就是刚才记下的00463DC8。(如图7)

写好后选中代码,右键→“复制到可执行文件”→“所有改动”,弹出对话框,点击“全部复制”。再点击保存文件就OK了(如图8)。

现在来改入口点,打开Peditor,看到入口点是00063DC8,我们把后四位3DC8改成3E7A(文件的内存入口点是00463DC8,我们在00463E7A这个地址开始写花指令,所以将地址改成00063E7A),接下来点击“应用更改”就好了。用OllyDbg再载入,现在停留在00063E7A这个地址,加花成功。用瑞星检测下吧,表面查杀过了,内存查杀也过了(如图9)。

几个做过免杀的疯狂qq大盗build0709无壳版我打包了,大家可以看看。

手动加花指令虽然比较麻烦,但是免杀效果绝对比用网上工具加花指令效果好,希望大家好好掌握。

四、修改特征码免杀

特征码不用说了,大家都知道,现在杀毒软件查杀病毒都是查看文件中的特征码,只要特征码被改掉或加密了,杀毒软件就查杀不出来了,所以改特征码免杀是最有效的。不过修改特征码免杀效果虽好,却仅仅对一款杀毒软件有效,因为不同杀毒软件的病毒库是不同的。

了解特征码免杀免杀原理后,我们来看看特征码免杀的一般操作步骤: 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)

大家再做内存特征码定位可以尽量少开程序,以加快内存查杀。

大家在做免杀时可按先加花指令,再修改入口点,再加壳看看免杀效果,如果还有某一个杀毒软件还查杀到话,我们就针对它做特征码免杀。免杀技术就介绍到这里了,希望大家灵活运用,打造自己的免杀木马。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3