clamav 使用clamdscan检测病毒
我们使用 eicar.com作为测试用例。
# ./clamdscan/clamdscan eicar.com
/home/jack/code/clamav-0.104.2/build/eicar.com: Eicar-Signature FOUND----------- SCAN SUMMARY -----------
Infected files: 1
Time: 0.006 sec (0 m 0 s)
Start Date: 2022:05:19 05:03:25
End Date: 2022:05:19 05:03:25
eicar.com文件内容如下:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
使用md5在线转换工具计算出对应的值为:
44d88612fea8a8f36de82e1278abb02f
这个值与daily.cvd中的daily.hdb内容一致:
44d88612fea8a8f36de82e1278abb02f:68:Eicar-Test-Signature
但是与我们的检测输出不一致,输出打印的病毒名为Eicar-Signature。查看clamd的日志有如下日志:
LibClamAV debug: Bytecode found virus: Eicar-Signature
通过使用sigtool定位出来是bytecode.cvd中6327695.cbc文件的第二行中的一个病毒。如下:
Eicar-Signature.{};Engine:56-255,Target:0;0;0:58354f2150254041505b345c505a58353428505e2937434329377d2445494341522d5354414e444152442d414e544956495255532d544553542d46494c452124482b482a
名字也对上了。
上面的没有hdb报病毒是因为代码原因,读取病毒文件内容时,使用的长度与病毒库中的不对应,本来因该是69, 使用69去计算的,所以导致md5的结果对不上。改完之后就行了。我改成68,
fmap_get_MD5和cli_hm_scan,长度-1,代码如下:
cl_error_t fmap_get_MD5(fmap_t *map, unsigned char **hash)
{cl_error_t status = CL_ERROR;size_t todo, at = 0;void *hashctx = NULL;todo = map->len;if (!map->have_maphash) {/* Need to calculate the hash */hashctx = cl_hash_init("md5");if (!(hashctx)) {cli_errmsg("fmap_get_MD5: error initializing new md5 hash!\n");goto done;}while (todo) {const void *buf;size_t readme = todo < 1024 * 1024 * 10 ? todo : 1024 * 1024 * 10;if (!(buf = fmap_need_off_once(map, at, readme))) {cli_errmsg("fmap_get_MD5: error reading while generating hash!\n");status = CL_EREAD;goto done;}todo -= readme;at += readme;cli_dbgmsg("xxx buf :%s, readme :%u\n", (char *)buf, readme);if (cl_update_hash(hashctx, (void *)buf, readme-1)) {cli_errmsg("fmap_get_MD5: error calculating hash!\n");status = CL_EREAD;goto done;}}cl_finish_hash(hashctx, map->maphash);hashctx = NULL;map->have_maphash = true;}*hash = map->maphash;cli_dbgmsg("hash :%s, str :%s\n", *hash, cli_str2hex(*hash, 16));status = CL_SUCCESS;done:if (NULL != hashctx) {cl_hash_destroy(hashctx);}return status;
}
/* cli_hm_scan will scan only size-specific hashes, if any */
int cli_hm_scan(const unsigned char *digest, uint32_t size, const char **virname, const struct cli_matcher *root, enum CLI_HASH_TYPE type)
{const struct cli_htu32_element *item;struct cli_sz_hash *szh;cli_dbgmsg("xxxx digest :%s\n", cli_str2hex(digest, 16));if (!digest || !size || size == 0xffffffff || !root || !root->hm.sizehashes[type].capacity)return CL_CLEAN;item = cli_htu32_find(&root->hm.sizehashes[type], size -1);if (!item)return CL_CLEAN;szh = (struct cli_sz_hash *)item->data.as_ptr;return hm_scan(digest, virname, szh, type);
}
编译后匹配如下:
d# ./clamdscan/clamdscan eicar.com
/home/jack/code/clamav-0.104.2/build/eicar.com: Win.Test.EICAR_HDB-1 FOUND----------- SCAN SUMMARY -----------
Infected files: 1
Time: 0.011 sec (0 m 0 s)
Start Date: 2022:05:19 08:16:07
End Date: 2022:05:19 08:16:07
这个是main.cvd报的病毒
如果指定病毒库为daily.cvd,结果如下:
# ./clamdscan/clamdscan eicar.com
/home/jack/code/clamav-0.104.2/build/eicar.com: Eicar-Test-Signature FOUND----------- SCAN SUMMARY -----------
Infected files: 1
Time: 0.009 sec (0 m 0 s)
Start Date: 2022:05:19 08:22:55
End Date: 2022:05:19 08:22:55
clamav 使用clamdscan检测病毒相关推荐
- 用Java整合Clamav病毒库检测病毒
1. 下载Clamav (具体步骤参考上篇https://blog.csdn.net/qq_47619291/article/details/120050536, 本文不再赘述) 2. 安装依赖包,命 ...
- clamav --reload 加载病毒库源码分析
基本流程可以参考clamav中clamdscan --version 不生效 我们直接从解析command开始.parse_command函数返回COMMAND_RELOAD类型.然后进入execut ...
- Science:便携式DNA测序仪在检测病毒疫情中大显身手
Metagenomic sequencing at the epicenter of the Nigeria 2018 Lassa fever outbreak 2018年尼日利亚拉沙热疫情中心的宏基 ...
- PHP文件在线检测病毒,VIRSCAN 在线病毒检测客户端
/**** 本程序以及提供的源码仅供技术交流使用. 作者不作任何类型担保,在任何情况下都不对使用本软件造成的任何损失或任何相应而生. 间接.附带的损失承担任何责任. ****/importwin.ui ...
- [Python图像处理] 使用 HSV 色彩空间检测病毒对象
使用 HSV 色彩空间检测病毒对象 前言 检测病毒对象 相关链接 前言 在本节中,我们将学习如何使用 OpenCV 在 HSV 色彩空间中使用特定颜色检测感兴趣对象.我们需要通过指定颜色值范围识别和提 ...
- 一般杀毒软件检测病毒原理
一般杀毒软件检测病毒原理 2014年09月05日 ⁄ 综合 ⁄ 共 3171字 ⁄ 字号 小 中 大 ⁄ 评论关闭 常用的反病毒软件技术 特征码技术:基于对已知病毒分析.查解的反病毒技术 目前的大多数 ...
- 杀毒软件已经 OUT 了!未来 CPU 也可以检测病毒
传统的杀毒软件似乎已经无法抵挡黑客越来越高的攻击力了.如果杀毒软件不顶用的话,雷锋网小编想说,那换做杀毒硬件呢? 根据国外科技网站 Digital Trends 报道,目前已经有研究人员获得了一项补助 ...
- linux检测病毒工具,Linux下查杀病毒工具
top: 0px; margin-bottom: 16px; color: rgb(44, 44, 44); line-height: 28px; text-align: justify; word- ...
- 美国检测病毒3270美元,中国仅40,问题出在哪?
2月27日,中国日报曝出一则新闻,美国一名男子因出现疑似新冠状肺炎的症状,于是跑去美国一所医院做了一个病毒的核酸检测,结果为阴性,回家后他收到了医院寄来的账单,金额显示他需要支付3270美元,折合人民 ...
最新文章
- “它将改变一切”,DeepMind AI解决生物学50年来重大挑战,破解蛋白质分子折叠问题...
- java结丹期(15)----javaweb(maven(1))
- 【译】Java中的对象序列化
- python类汇总_Python 类总结
- android自定义表盘部件,Android自定义view仿支付宝芝麻信用表盘
- 和python哪个容易胖_为什么有些人特别容易胖?
- 虚拟机VMware下安装Linux系统,Python3.7之TensorFlow安装
- Python -- abc module
- sqlserver存储过程加锁后怎么解锁_MySQL 的加锁处理,你都了解的一清二楚了吗?...
- springboot 集成redis实现session共享
- JavaWeb在线商城系统(java+jsp+servlet+MySQL+jdbc+css+js+jQuery)
- Java IO流处理 面试题汇总
- 2018.6清北学堂day3上午笔记
- 问佛 (佛是過來人,人是未來佛)
- JUC强大的辅助工具类
- MCE | 靶向 cGAS-STING 通路或可治疗渐冻症
- linux磁盘配额测试,Linux磁盘配额测试过程完全攻略
- CentOS7.9通过RealVNC实现多人使用服务器桌面
- python设计模式(一)创建型模式
- windows环境中Python中调用matlab