很多人以为杀毒软件只是后台默默扫描的工具,其实不少杀毒引擎早就提供了API接口,让开发者甚至普通用户也能调用它们的核心能力。
常见的杀毒引擎都支持API
像卡巴斯基、火绒、腾讯电脑管家、ClamAV这些主流杀毒引擎,基本都开放了API接口。比如ClamAV,它是开源的,广泛用于服务器和邮件网关中查毒,直接提供了命令行工具和socket通信接口,开发人员可以通过HTTP服务封装一层API来调用它。
举个例子,你在公司做内部系统,想让用户上传文件前先过一遍病毒检测,就可以自己搭一个ClamAV服务,然后通过API接收文件并返回结果。
curl -X POST http://localhost:3310/scan -F \"file=@/path/to/test.exe\"
商业杀毒软件也有开放方案
像火绒这类国产杀毒软件,虽然不公开完整的API文档,但企业版通常会提供本地DLL调用方式或进程通信机制,允许第三方软件集成查杀功能。一些OA系统或文档管理系统就是这么集成实时查毒的。
不过个人用户直接调用难度大点,毕竟涉及授权和安全策略限制。但如果你是程序员,想给自己的小工具加个查毒功能,完全可以考虑使用支持API的引擎。
API能干什么
有了API,不只是“扫一下”那么简单。你可以让它定时扫描指定目录、监控某个文件夹的新增文件、自动隔离可疑程序,甚至把结果推送到微信或钉钉群里提醒自己。
比如你有个NAS设备存了很多资源,可以写个脚本每天凌晨调用本地杀毒API扫一遍新下载的内容,发现问题直接发通知,比手动点“全盘扫描”省心多了。
怎么开始尝试
建议从ClamAV入手,它免费、跨平台,社区资料多。安装后启用clamd服务,再通过Python写几行代码就能通信:
import clamd
cd = clamd.ClamdUnixSocket()
result = cd.scan('/home/user/download/eicar.com')
print(result)
运行后如果返回{'stream': 'FOUND', 'eicar.com': 'Eicar-Test-Signature'},说明检测成功,连测试病毒都能识别。
别一听“API”就觉得高深,其实就像遥控器控制电视一样,API就是你和杀毒引擎对话的方式。只要你愿意动手,完全可以让杀毒软件为你定制服务。