• Author : Samson
  • Date : 01/04/2022

在开源病毒检测工具clamav中,是通过对病毒库中的病毒特征值来进行对比的,病毒库文件存放于/var/lib/clamav目录下,主要是三个cvd文件,如下:

bytecode.cvd  daily.cvd  freshclam.dat   main.cvd

打开cvd文件都能够看到第一行中有一段以冒号相隔的信息,如下:

~$ sed -n '1p' /var/lib/clamav/main.cvd
ClamAV-VDB:16 Sep 2021 08-32 -0400:62:6647427:90:137eccce31aacb21b5a98bb8c21cefd6:twaJBls8V5q64R7QY10AatEtPNuPWoVoxTaNO1jpBg7s5jIMMXpitgG1000YLp6rb0TWkEKjRqxneGTxuxWaWm7XBjsgwX2BRWh/y4fhs7uyImdKRLzQ5y8e2EkSChegF/i8clqfn+1qetq9j4gbktJ3JZpOXPoHlyr2Dv9S/Bg:sigmgr:1631795562

那么这些信息是什么意义呢?可以在clamav的源码中的./libclamav/cvd.c文件中看到对此文件头信息的解析,如下:

struct cl_cvd *cl_cvdparse(const char *head)
{struct cl_cvd *cvd;char *pt;if (strncmp(head, "ClamAV-VDB:", 11)) {cli_errmsg("cli_cvdparse: Not a CVD file\n");return NULL;}if (!(cvd = (struct cl_cvd *)cli_malloc(sizeof(struct cl_cvd)))) {cli_errmsg("cl_cvdparse: Can't allocate memory for cvd\n");return NULL;}if (!(cvd->time = cli_strtok(head, 1, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the creation time\n");free(cvd);return NULL;}if (!(pt = cli_strtok(head, 2, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the version number\n");free(cvd->time);free(cvd);return NULL;}cvd->version = atoi(pt);free(pt);if (!(pt = cli_strtok(head, 3, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the number of signatures\n");free(cvd->time);free(cvd);return NULL;}cvd->sigs = atoi(pt);free(pt);if (!(pt = cli_strtok(head, 4, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the functionality level\n");free(cvd->time);free(cvd);return NULL;}cvd->fl = atoi(pt);free(pt);if (!(cvd->md5 = cli_strtok(head, 5, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the MD5 checksum\n");free(cvd->time);free(cvd);return NULL;}if (!(cvd->dsig = cli_strtok(head, 6, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the digital signature\n");free(cvd->time);free(cvd->md5);free(cvd);return NULL;}if (!(cvd->builder = cli_strtok(head, 7, ":"))) {cli_errmsg("cli_cvdparse: Can't parse the builder name\n");free(cvd->time);free(cvd->md5);free(cvd->dsig);free(cvd);return NULL;}if ((pt = cli_strtok(head, 8, ":"))) {cvd->stime = atoi(pt);free(pt);} else {cli_dbgmsg("cli_cvdparse: No creation time in seconds (old file format)\n");cvd->stime = 0;}return cvd;
}

由以上函数可知,文件头’ClamAV-VDB:16 Sep 2021 08-32 -0400:62:6647427:90:137eccce31aacb21b5a98bb8c21cefd6:twaJBls8V5q64R7QY10AatEtPNuPWoVoxTaNO1jpBg7s5jIMMXpitgG1000YLp6rb0TWkEKjRqxneGTxuxWaWm7XBjsgwX2BRWh/y4fhs7uyImdKRLzQ5y8e2EkSChegF/i8clqfn+1qetq9j4gbktJ3JZpOXPoHlyr2Dv9S/Bg:sigmgr:1631795562’中的信息的意义如下:
第一个是表示是clamav病毒库的标识;
第二个表示此病毒库创建的时间;
第三个表示此病毒库的版本号;
第四个表示此病毒库中的特殊库的条数;
第五个表示功能性级别;
第六个表示此病毒库的md5校验值;
第七个表示此病毒库的数字签名;
第八个表示此病毒库的创建者的名字;
第九个表示此病毒库的创建时的相对于1970.01.01 00:00:00的秒数;

病毒库更新可通过病毒库的版本号的对比来决定是否进行更新的动作;

clamav的病毒库文件的文件头的信息说明(clamav版本号等)相关推荐

  1. 【Android 逆向】ELF 文件格式 ( ELF 文件当前版本号 | 操作系统 ABI 信息 | ABI 版本 | 文件头校验 | 文件头长度信息 )

    文章目录 一.ELF 文件当前版本号 二.操作系统 ABI 信息 三.ABI 版本 四.文件头校验 五.文件头长度信息 总结 一.ELF 文件当前版本号 ELF 文件头第 6 字节 : 版本信息 ; ...

  2. pycharm新建py文件时,自动补充文件头注释信息

    步骤: 1.File -->Settings 2.选择 File and Code Templates -> Files -> Python Script 文件头注释信息代码样式: ...

  3. 各类文件的文件头标志[转]

    各类文件的文件头标志 参见  http://www.garykessler.net/library/file_sigs.html 扩展名 文件头标识(HEX) 文件描述 123 00 00 1A 00 ...

  4. java 文件头_常用文件的文件头(附JAVA测试类)

    1. MIDI (mid),文件头:4D546864 2. JPEG (jpg),文件头:FFD8FF 3. PNG (png),文件头:89504E47 4. GIF (gif),文件头:47494 ...

  5. html的文件头标志,各类文件的文件头标志.docx

    各类文件的文件头标志.docx 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 扩展名 文件头标识( ...

  6. html的文件头标志,各类文件的文件头标志.doc

    各类文件的文件头标志 1.从Ultra-edit-32中提取出来的 JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头TIFF (ti ...

  7. Shapefile文件读取-文件头

    1 介绍 在Shapefile文件格式介绍一文中我们介绍了shapefile文件的结构组成,本文主要介绍如何读取shapefile文件头部分,使用的语言是c++. 2 文件头结构 Shapefile文 ...

  8. 如何备份卡巴斯基的病毒库文件

    我的机子再次重装后,我也再一次的安装了好用的杀软---卡巴斯基. 可是当我升级的时候,升级的时间竟然要两个小时.于是我想要找到备份病毒库文件的方法,在网上寻求了一段时间后,终于找到了令我满意的答案. ...

  9. APE文件学习——文件头(1)

    我没有怎么搜Google关于ape文件格式,一来好像不是很多(或是我没搜到),另一方面是因为下载了Monkey's Audio Codec 的SDK后,里面有定义,所以就自己钻研起来. 原文是酱紫的 ...

最新文章

  1. [CareerCup] 16.5 Semphore 信号旗
  2. Java clone() 浅克隆与深度克隆(转)
  3. java学习(32):巩固练习
  4. uwp 获取listviewitem里的控件_[UWP]占领标题栏
  5. net.java.html.boot.BrowserBuilder
  6. Unity_Demo | 中世纪风3D-RPG游戏
  7. 戴尔服务器r720矩阵卡无响应,戴尔r720阵列卡驱动
  8. MFC中有关鼠标单击双击响应的问题
  9. alter命令的使用
  10. windows系统进程漫谈
  11. js获取当天0时刻,23点59分59秒的时间戳
  12. 使用奥维地图加载星图地球数据云地图数据
  13. c语言课程设计雪花飞舞,雪花飞舞--c语言课程设计.doc
  14. UI的四个实用配色网站
  15. 一飞院飞机总体协同设计系统
  16. 不忘初心,牢记使命!
  17. Python3.6官方文档下载
  18. Ubuntu虚拟机安装手札
  19. 大疆 DJI Mobile SDK 开发:模拟器调试
  20. SU插件情报局 | Enscape for SketchUp 基础入门完全解析

热门文章

  1. Extjs GridPanel 常用属性总结
  2. Ubuntu彻底卸载软件和清理磁盘空间
  3. 以太坊接班人哪家强?——一张图看懂区块链
  4. Machine Reading Comprehension: The Role of Contextualized Language Models and Beyond
  5. 分享2022武体考研一战上岸学习心得
  6. neo4j windows 3.5详细安装教程(附百度云链接)
  7. 刘强东章泽天合体破离婚传闻,网友:有钱人终成眷属
  8. 我们这类学生并不是一无是处
  9. 最新的html标签属性大全,html标签属性大全
  10. 我觉得吧学计算机也没,“其实我觉得吧,学我们艺术专业压力也没那么大!”...