第二,如果多态病毒执行,病毒的解密例程必须能够正确地解密,并且把控制传送给静态的病毒代码。GD法扫描多态文件病毒时是在一个完全封闭的虚拟机中执行目标文件的机器代码,这个仿真程序执行时好像正常运行在DOS系统下一样。然而,因为程序在虚拟机中运行,它根本无法感觉到计算机的实际状态。如果目标文件已经感染病毒,这个仿真程序继续进行直到病毒把它自己解密并且把控制传送给不变的病毒体。在这个解密过程完成之后,扫描程序搜索虚拟机中的被解密的区域以确定病毒的种类。 这种基于GD的技术提供的检测能力最好。它可以检测出使用非常复杂的加密方法的病毒。而且可以在已感染的文件中准确地识别出多态病毒的种类。在许多例子中,检测新的多态病毒所需要的开发时间远远小于传统方法所需要的时间。除此之外,因为病毒在仿真期间解密自己,所以杀毒软件可以找出在病毒内被正常解密的信息并用于修复已感染的文件。 病毒扫描程序要为检测到的每一种新病毒分析并产生一个特征标记。 病毒扫描程序的特点:一种编写得很好的病毒扫描程序能够有潜力检测出每一种病毒;设计正确的扫描程序有很低的误检率和漏检率。 尽管大多数病毒扫描程序用于快速地操作,然而现在的用户有非常多的文件,所以扫描一个几GB的硬盘要花上几分钟甚至更长的时间,内存驻留程序的病毒扫描程序也要使用,这些程序不是很主动,只有访问文件和软盘时才进行检查。
病毒扫描程序必须经常更新,可能要每个季度更新一次;用户可以经常通过电子方式获得更新的病毒特征标记文件,而不用更新实际的可执行的杀毒软件。病毒扫描程序可以用于在病毒渗入计算机之前或之后检测病毒。 4.6.2 内存扫描程序 内存扫描程序采用“病毒扫描”中描述的病毒扫描程序同样的基本原理进行工作。它的工作是扫描内存以搜索内存驻留文件和引导记录病毒。 隐藏病毒不能很容易地在内存中隐藏自己,因为内存扫描程序可以直接搜索内存查找病毒代码。此外,杀毒软件不需要使用一种可能已感染的服务提供者检查内存的内容。这样,在内存扫描期间病毒就不会激活,也不会主动隐藏自己。如果一个反病毒产品不使用内存扫描,其病毒检测技术很危险,而且可能无法检测出特定的病毒。 如果反病毒产品在内存中检测到了快速或隐藏病毒,它就要用户用一块未感染的DOS软盘引导,然后重新扫描硬盘或软盘。在从未感染的软盘冷驱动后,病毒就被从内存中清除了,而且反病毒检查感染不会构成进一步的威胁。 内存扫描程序要求: 1. 内存扫描程序对每一种新的内存驻留病毒分析并产生特征标记。 2. 几乎所有内存驻留病毒都会被内存扫描程序检测出来。 3. 设计正确的扫描程序,误检率、漏检率都必须很低。
4. 内存扫描是一个很快的过程,不会给用户带来很大的不便。 5. 内存扫描程序必须频繁地更新,可能一个月或一个季度就要更新一次。用户经常可以下载得到更新的病毒特征标记数据文件,而用不着操心更新实际可执行的杀毒软件。 6. 当病毒感染计算机并驻留内存后,内存扫描程序固定地检测这些病毒。 4.6.3 完整性检查器 完整性检查器的工作原理基于的假定是:在正常的计算机操作期间大多数程序文件和引导记录不会改变。这样,计算机在未感染状态,取得每个可执行文件和引导记录的信息指纹,将这一信息存放在硬盘的中。这些信息可以用于验证原来记录的完整性。在验证时,如果发现文件中的指纹与中的指纹不同,则说明文件已经改变,极有可能是病毒感染。大多数完整性检查器会从程序文件中保留以下信息:可执行文件内容的循环冗余校验CRC或校验和;程序入口的前几条机器语言指令;程序的长度、日期和时间。 完整性检查器是一种强有力的防病毒保护方式。因为几乎所有的病毒都要修改可执行文件或者引导记录,包括新的未发现的病毒,所以它的检测率几乎百分之百。 另一方面,引起完整性检查器失效的可能有:有些程序执行时必须要修改它自己,把一些配置信息直接存放在可执行程序文件中。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27948-21.html
五年后
不是现在
这可是宙斯盾系统近1万顿的驱逐舰