特征码免杀
特征码的免杀分为定位和修改两个步骤。定位可以用到的工具为Myccl和multiccl_f,个人感觉还是multiccl比较好用一点,它可以定位出比较准确地一个字符串,修改起来比较容易。
至于特征码的修改可以分为3各方面,字符串,输入表和区段
字符串有多种修改方法
1.拼接strcat()
2.伪造如str="HELLO"变为str="0ELLO";str[0] ='H'
3.分为数组str={'H', 'E',……}
4.逆序strrev()
还有其他就不说了,主要思想就是让查杀处的特征码不同
输入表修改
对于单个API函数来说可以使用动态加载,对于一个库文件来说使用延时加载,VS2010中有延时加载选项,很方便
区段合并,没啥好说的,直接合并就行,能够大面积改变特征码
对付启发式和主动防御
这两种查杀的效果视杀毒软件引擎来定,比较优秀的有卡巴和NOD32。
1.对于这类行为判断查杀方式,可以使用行为替换的方法。如要写入注册表,可以换成使用命令来写入,也可以换成使用开启进程来实现。
2.对于虚拟机的查杀主要是做好反调试和检测虚拟机,检测虚拟机有系统性能,存储空间,内存状态等方面来检测,毕竟虚拟机会比真机性能差很多。
3.最后对于有些弹窗,可以使用模拟按键法,不过这种方法对分辨率要求很高,不同的分辨率必须对应不同数值,所以不是一个比较好的方法
卡巴的主防过去用的是延时绕过,现在貌似不行了,这种方法主要是对付虚拟机的。
对于360可以借鉴空气大牛的方法http://www.aircmd.com/78.htm
BD引擎 最好过 基本查杀API 字符串 以及行为(貌似是虚拟机类的东西)
– 直接MYCCL 正向定位即可
小红伞 启发式行为查杀 主要输入表 敏感API 但跟NOD32还是有区别的
– MYCCL反向定位 由于这杀软启发式 有时候定位不准确就直接广度注释源代码
本地QVM引擎 直接定位很猥琐 不过QVM确实是查杀输入表的杀软 敏感API
虽然数字说QVM是自己研发的 但感觉更像是基于红伞 BD结合出来的产物
– MYCCL直接反向定位 首先填充输入表 如果不杀就直接定位这段
云查杀 尝试填充随机数据 正向定位
另外说说QVM07
始终觉得QVM07是可疑文件的统称,
例如1:获取系统路径,创建LOG文件并写入信息在没有其他操作的情况下
本地BD AntiVir QVM均不报,但数字云杀却报QVM07,当前工程为Mutitheaded DLL
加载了系统的msvcrt.dll文件,改变这个选项之后就不报了!不过体积会变大.
例如2:全局动态api,字符串全加密,当时可免杀,过了一段时间,QVM07出来了
此时无论怎么修改,均报QVM07(这里说的是云杀)他杀的是动态api getprocaddress这句
可能是因为触发了他的规则,然而动态的api是查找不到的,哪怕你不用loadlibrary与
getprocaddress也会出现QVM07现象;
处理方法:
尽量不要使用动态API,可延迟加载dll合并区段,确保PE头干净整洁,
一个正常的Win32程序,抹掉入口点就QVM19了,定位被杀位置更换API
或改写局部代码,由此可达到免杀效果.