禁用 Windows Defender 并使用 ClamAV 守住电脑的入口

肉丁土豆园地 / 2024-10-11 / 原文

众所周知, Windows Defender 是个大烂软件。

在被其折磨了这么多年(尤其是最近经常把我的 steamcommunity302 给清掉)后,我终于是忍无可忍了。
上网搜索发现有个叫 ClamAV 的开源病毒扫描工具——总比没有强——决定用来代替 Defneder 了。

禁用 Defender

禁用 Windows Defender 非常简单。
我在 GitHub 上搜索了一下子就找到了相关的程序,需要的可以自取。

安装 ClamAV

下载

去官网下了个 msi 文件。

配置

安装好后,把安装文件夹里的 ./conf_examples/clamd.conf.sample./conf_examples/freshclam.conf.sample 分别移动成 ./clamd.conf./freshclam.conf 并删除两个文件的第 7 行——就是那行 Example

环境变量

把整个文件夹弄到 Path 里。

更新数据库

freshclam

然后

就安装完了

配置数据库服务

ClamAV 有数据库服务这种东西。
就是说你可以冷启动杀毒,也可以先预热数据库再连接。二者相比肯定是预热后更快。

具体来说,冷启动就是运行 clamscan ;而预热就是先运行 clamd 挂在后台,再运行 clamdscan 来杀毒。

考虑到我是个急躁的人,我选择预热。

注册服务用户

我这里使用任务计划程序来在开机时启动数据库服务。
那么为了防止出现服务的黑框框,这里可以以另一个用户的身份运行任务计划程序。

net user ClamAV a /add
net localgroup administrators ClamAV /add

其中,第一行命令的 a 表示 ClamAV 这个用户的密码。之所以这么简单,是因为我懒。

创建任务

那么就来创建任务。

需要注意的是用 ClamAV 用户来运行程序,且选择 不管用户是否登录都要运行 才能隐藏黑框框。

注册右键菜单

我的设想是,对着一个文件或者文件夹右键,能有个扫描病毒的选项,然后我一点就可以扫描里头有没有病毒,以此来防止我下载到危险的东西。

扫描病毒脚本

我试过右键直接 clamdscan 扫描病毒,但是扫的太快容易看不清内容!还是弄个右键运行小脚本比较好。
脚本就放在安装文件夹里,名字是 dscan.bat ,内容也很简单,像这样:

@echo off
"C:\Program Files\ClamAV\clamdscan.exe" %1
pause

右键菜单

更改右键菜单需要操作注册表,那么有如下注册表项。
你可以直接把内容复制到文本文件里,改后缀为 .reg ,然后双击运行,即可导入注册表项。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\使用 ClamAV 扫描]
"Icon"="C:\\Program Files\\ClamAV\\clamd.exe,0"

[HKEY_CLASSES_ROOT\Folder\shell\使用 ClamAV 扫描\command]
@="C:\\Program Files\\ClamAV\\dscan.bat %1"

[HKEY_CLASSES_ROOT\*\shell\使用 ClamAV 扫描]
"Icon"="C:\\Program Files\\ClamAV\\clamd.exe,0"

[HKEY_CLASSES_ROOT\*\shell\使用 ClamAV 扫描\command]
@="C:\\Program Files\\ClamAV\\dscan.bat %1"

控制台

其实 ClamAV 还有个类似 linux 系统 top 命令的控制台叫做 clamdtop
我本来觉得没太有用,后来发现如果文件太大,它扫得太慢,黑框框一直没反应,会有一种卡住的感觉,让我非常焦虑。
所以我还是给桌面上放了个快捷方式,指向 C:\Program Files\ClamAV\clamdtop.exe ,这样子我如果着急了,可以看看控制台缓解焦虑的症状。

完成

效果看起来还不错,至少没 Defender 那么烦了!
而且貌似确实管用,因为我用它扫 steamcommunity302 也扫出来了两个异常——相较之下 Defender 只给我拦截了一个异常。

唯一的缺点就是有的时候扫得有点慢( \(1.12\ \mathrm{GB}\) 的网易我的世界文件夹我扫了 \(290\) 秒)。
可惜 ClamAV 的随选文件扫描不能在 Windows 上运行,太可惜了!