杀软是如何检测出恶意代码的?
经过特征码:对已存在的流行代码特征的提取与比对
经过行为:是否有更改注册表行为、是否有设置自启动、是否有修改权限等等shell
免杀是作什么?
植入恶意代码,防止被杀毒软件检测出来,并能成功控制被植入机编程
免杀的基本方法有哪些?
对恶意代码进行加壳、用其余语言或编译器进行再编译,利用shellcode进行编码,减小对系统的修改,多在内存里进行操做,多使用反弹式的链接安全
在本次实验中,主要是对恶意代码进行免杀操做。能够看出,对于如今的杀毒软件来讲,着重的是恶意代码的特征值与行为,一旦咱们给出的恶意代码避免了被查杀的特征值、减小了对系统的一些行为,那么杀毒软件将没法判断此代码是病毒;更别说一些恶意代码捆绑到了有用的应用软件上,更甚是本身创造的一个新病毒。因此,对于杀毒软件的应用上,咱们不能盲目的绝对相信,也仍是须要本身去多积累些防毒杀毒的知识与方法,尽可能作到有毒可知,有毒可删。
虽然说在实验中咱们作出的不少恶意代码都能避免被杀毒软件的查杀,可是杀毒软件也在不断更新、扩充病毒库,因此若是想真正的进行实战的话,最好的方法就是本身去研究各个软件的源代码,寻找到漏洞,而且可以写出攻击该漏洞的恶意代码,同时还须要了解计算机是如何运做的、杀毒软件是如何查杀的方面的,来进一步的避免本身生成的恶意代码在半道上被“截获”。
有一个风险,但它和咱们刚生成的恶意代码无关ruby
存在10个风险,且咱们生成的恶意代码被查出网络
为何杀毒范围大了,不少病毒就查不出来了?说明这款杀毒软件可能有它的局限性,大范围的查找可能精确度、效率不高,因此之后仍是多多一个盘一个盘的单独杀毒吧tcp
查出恶意代码工具
当把生成的可执行文件一传到win7,电脑管家就自动对其进行检测并删除掉了测试
一样的,一传送到win7上,就被电脑管家检测出并删除了编码
未检测出恶意代码code
未检测出恶意代码
成功控制靶机
有12%的杀毒软件检测到该可执行文件为病毒,说明使用编程方式的病毒免杀强度仍是挺高的
未检测出恶意代码
此次只有5%的杀毒软件检测出来了,说明对shellcode进行初次的再编译对于免杀来讲仍是颇有必要的
未检测出恶意代码
同只用shikata_ga_nai编译一次的免杀效果是同样,那就可能能够说,不管咱们用同一个编译器对shellcodea编译了多少次,只要杀毒软件认定该编译器生成的文件就是有问题,那么最终都会被查杀出来