病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

杀毒软件是被人们熟知的常用安全软件,杀毒软件可以检测各种各样的病毒木马,依赖的是其庞大的病毒库。病毒库中动辄就存放有几十万甚至上百万的特征码。但是,这么大的匹配量,为什么扫描文件还很快呢?

下面就来研究下关于杀毒软件,关于病毒库、特征码的技术。

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

Ty2y杀毒

要研究的杀毒软件是:Ty2y杀毒,这是一款小众的、功能不错的、而且开源的国产杀毒软件。

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

在使用它进行文件病毒扫描时,会发现扫描速度是很快的。

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

软件是开源的,那么我们可以很方便的从源码中了解杀毒软件的各种功能。

病毒扫描原理

Ty2y杀毒的特征码规则是:

哈希值(PE文件的节大小+节的哈希值)+病毒名。

注:哈希值类似于MD5。

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

杀毒扫描的原理是:打开文件,获取文件的所有节,并逐一匹配所有特征码,以检测病毒。

Ty2y这款软件病毒库特征码量达200多万。

百万级的特征码,是如何做到快速匹配检测的呢?

从源码分析可以知道:

1、特征码分别存放在16个病毒库中(1-9、a-f).sig。

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

打开这些文件,会发现一个特点,即:文件名,与病毒库中特征码首字母是一致的:

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

再结合软件源码:

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

病毒库的秘密:杀毒软件百万特征码,为什么扫描文件那么快?

两者结合可以发现关键信息:

1、扫描时,先获取文件每个节的特征(节大小+节的哈希值),再进行一次哈希,即得到一个类似MD5的字符串。

2、对比此哈希值字符串首字母,首字母范围是0-9,A-F。根据首字母,分别与分隔开的病毒库去匹配。为什么这样做?就是为了提高扫描速度。原本200万的特征码,需要匹配200万次。进行首字母分隔后,只需要匹配200/16,大约12万次。相当于效率提高了16倍,这是个非常不错、很值得借鉴的提效思路。

这就是Ty2y杀毒扫描速度很快的秘密。

其实,依据这个思路,还可以更进一步,将16个文件再次分隔,匹配时,先对比前两个字母。这样扫描效率还可以进一步大幅提升。

原创文章,不限转载。欢迎分享学习,大家一起进步。

展开阅读全文

页面更新:2024-05-26

标签:病毒库   杀毒软件   特征   文件   字符串   源码   思路   效率   原理   大小   速度   秘密   病毒   功能   发现   数码   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top