令病毒集合为A,特征码集合为B,如果按照某种对应法则f,对于集合A中的病毒,在集合B中有特征码和它对应, 这样的法则f即为杀毒引擎。
若f为函数,满射非单射为上;双射次之;非满射非单射再次;非满射单射最末。
若f非函数,A全命中为上;否则一对一为上,一对多为下。
A中病毒是否命中为最本质区别,无论采用什么技术,其次特征码冗余度小为善,再次为速度等。
如何提高杀毒引擎扫描速度
1. 明白什么样的文件不可能存在什么样的病毒。
2. 明白什么样的文件可能会产生什么样的病毒。
3. 明白扫描什么时不需要扫描什么。
4. 明白什么样的算法更适合引擎。
5. 明白cache的重要性。
6. 明白多核和多引擎的关系。
7. 明白虚拟机的适用范围。
8. …
速度是衡量杀毒引擎优劣的基本指标之一。
80386初始化实例清单
使机器从复位状态开始,经初始化装入操作系统之后成为可用的系统,并调用第一个用户任务执行。本程序的主要任务使建立适当的段表及页表。实例由以下15步完成:
1. 引导地址冷启动;
2. 禁用中断、装入DS及使IDT为空;
3. 建立GDT及LGDT;
4. 进入32为代码的保护方式;
5. 转入段寄存器;
6. 建立LDT、LLDT;
7. 建立IDT、LIDT;
8. 建立页目录;
9. 建立页表;
10. 启动分页机制;
11. 装入OS栈;
12. 建立TSS、LTR;
13. 装入用户任务;
14. 为调用用户任务做准备;
15. 调用用户任务;
选至《保护方式下的80386及编程》,周明德主编,田云、何德书、宗耀堂编著,P409。
这是一本好书!现在的书越来越多,但好书越来越少了。
我一直在想什么是最好的引擎。做为引擎设计者,我思量至少应该做到“从心所欲,不逾矩”吧。引擎为病毒所做,也应随着病毒的变化而变化。
杀毒引擎和主动防御是两个概念,主动防御不可能替代杀毒引擎的特征码匹配,但做为辅助是必要的。主动防御的归宿是杀毒引擎,无论病毒检测率多高,终不会高过杀毒引擎中100%的特征码匹配。
就目前的各家杀软来看,主动防御还只是一个模块,不做为杀毒引擎的一部分。
什么样的特征码优秀很难说,几年前,你可以说全文匹配很好,能查变种,但随着这几年病毒的增多,散列匹配逐渐体现出他的优势,并且能控制误报等等,病毒发展或许会回溯,例如感染类的病毒,虽占比较很小,但总数在增加,这些变化是复杂的,不是单靠“主动防御”一个概念就能解决的了的,依我看特征码过时言之过早。
病毒行为分析需要很多相关领域的技术,不过病毒作者们也会想办法穿透他,就看谁的速度快了。