首先来简单了解一下杀毒软件查杀病毒的原理,当前杀毒软件对病毒的查杀主要有特征代码法和行为监测法。其中前一个比较方法古老,又分为文件查杀和内存查杀,杀毒软件公司拿到病毒的样本以后,定义一段病毒特征码到病毒库中,然后与扫描的文件比对,如果一致则认为是病毒,内存查杀则是载入内存后再比对,第二个比较新,它利用的原理是某些特定的病毒会有某些特定的行为,来监测病毒。
免杀常用的工具:
Ollydbg 调试器简称OD,动态追踪工具 peid 查壳工具 PEditor PE文件头编辑工具
CCL,伯乐,MYCCL 特征码定位器 oc 地址转换器 reloc 修改EP段地址工具 zeroadd 加区工具 Uedit32 十六进制编辑器
免杀方法
一.文件免杀
1.加花
2.修改文件特征码
3.加壳
4.修改加壳后的文件
二.内存免杀
修改特征码
三.行为免杀
加花
加花是文件免杀的常用手段,加花原理就是通过添加花指令(一些垃圾指令,类似加1减1之类废话)让杀毒软件检测不到特征码。加花可以分为加区加花和去头加花。一般加花工具使用加区加花,当然也是可以手工加的,就是先用zeroadd添加一个区段,然后在新加区段里写入花指令,然后跳转到原入口;去头加花,是先NOP(汇编里的空操作)掉程序的入口几行,然后找到下方0000区,写入NOP掉的代码和一些花指令,再通过JMP(汇编里的无条件跳转)跳到原入口。
举个例子说明一下去头加花:
图1
javascript:resizepic(this) border=0>
这是PcShare服务端入口处的一段代码,原入口地址是00403D7D,因为是演示我就用两句最简单的垃圾代码,花指令可以自己去找或者自己写
push eax;eax寄存器压入堆栈
pop eax;eax寄存器弹出堆栈
图2
javascript:resizepic(this) border=0>
先将入口两句用NOP填充,然后找到一段0000区记下新入口地址0040443C
图3
javascript:resizepic(this) border=0>
写入刚刚NOP掉的入口两句和花指令还有跳转到原入口的指令
图4
javascript:resizepic(this) border=0>
把修改好的代码保存,用PEditor把入口地址修改为新入口0040443C就完成了,代码执行时从新入口开始,先执行花指令然后跳转到原入口执行真正程序,很简单吧?其实花指令可以加在头后同样也可以加在头后,也就是可以先执行花指令,然后再是入口,免杀效果是不一样的!大家可以试一下。加区加花很相似,主要是怕程序的0000区不足,先用工具新加一个区,在新区里写入花指令,其他的和去头加花一样,就不演示了。
[1] [2] [3] 下一页