杀毒

杀毒(Antivirus)是指一类计算机安全软件,旨在检测、阻止和清除计算机系统中的恶意软件,如病毒、蠕虫、木马、间谍软件和广告软件等。这些恶意软件可能会对计算机系统和用户数据造成损害,包括数据丢失、系统崩溃、个人信息泄露等。

应用场景

  1. 杀毒软件编写
  2. 日常杀毒使用
  3. 实时保护
  4. 邮件web扫描
  5. 服务器杀毒

引擎

clamAV

ClamAV(Clam AntiVirus)是一个开源的跨平台杀毒软件,它专注于检测和清除恶意软件,包括病毒、蠕虫、木马、恶意软件和其他恶意代码。

以下是ClamAV的一些特点和功能:

  1. 开源和免费:ClamAV是一个自由开源的杀毒软件,可以在各种操作系统上免费使用,包括Windows、macOS和Linux等。
  2. 多平台支持:ClamAV是跨平台的,可以在多种操作系统上运行,包括Windows、macOS、Linux、FreeBSD等。
  3. 病毒扫描引擎:ClamAV使用强大的病毒扫描引擎来检测和识别各种恶意软件。它可以扫描文件、文件夹和压缩文件等,以查找潜在的威胁。
  4. 多种扫描模式:ClamAV提供不同的扫描模式,包括快速扫描、全盘扫描和定制扫描。用户可以根据需要选择适当的扫描模式。
  5. 实时保护:ClamAV可以提供实时监控和保护功能,可以在文件被访问、下载或执行时即时检测和阻止潜在的恶意软件。
  6. 病毒定义更新:ClamAV定期发布病毒定义数据库的更新,以保持对新出现的病毒和恶意软件变种的识别能力。用户可以手动或自动更新病毒定义文件。
  7. 命令行工具和图形界面:ClamAV提供了命令行工具和图形界面,使用户可以方便地执行扫描、更新和配置等操作。
下载安装

https://www.clamav.net/downloads

选择对应的操作系统

Nodejs 第六十九章(杀毒)-LMLPHP

windows

  1. 下载完成之后安装 然后配置环境变量

安装完成之后目录会有一个 conf_examples 文件夹 它自带的

  1. clamd.conf
  2. freshclam.conf

把文件夹的内容拷贝到根目录

Nodejs 第六十九章(杀毒)-LMLPHP
Nodejs 第六十九章(杀毒)-LMLPHP

然后把这两个文件里面的 Example 注释掉
Nodejs 第六十九章(杀毒)-LMLPHP

  1. 更新病毒库

执行这个命令 freshclam
Nodejs 第六十九章(杀毒)-LMLPHP

启动 clamd 服务

Nodejs 第六十九章(杀毒)-LMLPHP

nodejs 使用

安装 clamscan

npm install clamscan
import NodeClam from 'clamscan'
const clam = new NodeClam().init({
    scanRecursively: true, //深度扫毒
    clamdscan: {
        port: 3310, //连接引擎的端口 端口配置项在这个文件 clamd.conf 默认3310
        host: 'localhost', //连接引擎的IP 
    },
    clamscan: {
        scanArchives: true, //扫描归档文件
        scanFiles: true, //扫描文件
    }
})
clam.then((clamscan) => {
    //批量扫描文件
    clamscan.scanFiles(['./index.js', './package.json','./package-lock.json'], (err, goodfiles, badfiles) => {
        if (err) {
            console.log(err)
        } else {
            console.log('扫描完成')
            //goodfiles 就是没问题的文件
            //badfiles 就是病毒文件
            console.log(goodfiles, badfiles)
        }
    })
    //扫描目录
    clamscan.scanDir('./', (err, goodfiles, badfiles) => {
        if (err) {
            console.log(err)
        } else {
            console.log('扫描完成')
            console.log(goodfiles, badfiles)
        }
    })
    //检查是否是病毒文件
    clamscan.isInfected('./index.js', (err, result) => {
        if (err) {
            console.log(err)
        } else {
            console.log(result)
        }
    })
})

演示

扫描三个文件

Nodejs 第六十九章(杀毒)-LMLPHP

04-29 09:33