日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 clamav的病毒库文件的文件头的信息说明(clamav版本号等) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 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版本号等)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。