开源的杀毒软件
有“免费的午餐”我们为什么不吃呢?杀毒软件一定要购买或用D版吗?先别忙着下结论,请耐心看完本文,然后再告诉我你是怎么想的。
(一)、ClamWin Free Antivirus 开源反病毒软件 GPL协议
SourceForge页面:http://sourceforge.net/projects/clamwin
正如其名,这是款运行于Windows下的软件,我想下载安装包、运行Setup之类的就不用多说了。由于ClamWin本身是不带病毒数据库的(整个安装文件才 5M 多)所以安装完毕后可能会(根据你安装时的选项)自动连接Internet去下载病毒库:
放心,它的病毒库也不大,稍等片刻就OK了:
当病毒库下载完成后,就可以开始使用ClamWin AntiVirus免费大餐了:双击系统托盘区的ClamWin图标可以弹出ClamWin的主界面:
很简洁对吧?工具栏只有三个图标。第一个是Preferences也就是我们常说的“首选项”:
在General选项夹中可以选择ClamWin如何处置被感染的文件(Infected Files),这里有三个选项:分别为
Report Only(仅仅报告,提醒我们一下);
move(删除,注意不是删除到回收站,所以谨慎使用哦);
Move To Quarantine Folder(移动到隔离区,可以自己选择隔离文件夹的路径)
你可能说怎么就这三个选项啊,他不能对感染病毒的文件进行“杀毒/解毒”吗,我必须遗憾地告诉你,没有。其实也不必失望,你可以回忆一下,那些所谓的“杀毒/解 毒”功能到底能有多少用处?能不能杀干净?就我个人的经验来说,电脑病毒重在“防”而不是“杀”,一旦预防工作没有做好,有文件被感染了,杀毒软件又有几 成胜算可以真正把病毒“杀”得干净?就算杀毒软件报告全部杀掉了,我们自己的心中又有几分的信任?那些被“解毒”的程序又有几个能正常运行?到最后我们还 不是得格了重装?所以我认为反病毒软件的“杀/解毒”功能形同鸡肋,有没有都可以的。
然后看一下在线升级功能:
ClamWin可以根据我们的设置定期到clamav.net的病毒数据库下载最先的病毒特征码,以保持其自身的“战斗力”。
定期自动扫描:
扫描压缩包内的病毒:
其他的选择我就不一一贴图了,只要你使用过别的杀毒软件,你就会发现这些设置都差不多。
第二个工具栏图标是“在线升级”功能,点击这个图标就可以在线升级病毒库。
第三个图标就是病毒扫描了:
选定一个驱动器或双击打开该驱动器选择一个文件夹,然后开始扫描:
ClamWin还和Windows的资源管理器有机结合,可以方便地使用右键菜单对选中的文件进行病毒扫描:
如果扫描过程中发现了被感染的文件,ClamWin会按照我们上面设定的方式进行处理(报告,删除,隔离)
下面是我用EICAR测试的结果:
同时托盘区也会有气球提示
平时使用时,也可以用鼠标右击托盘区的ClamWin图标,可以弹出右键菜单,进行快捷操作:
ClamWin最大的缺陷是没有“即时扫描”功能,也就是说我们必须主动调用ClamWin来扫描可疑的文件、文件夹、磁盘,而ClamWin不会在后台自动过滤我们正在操作的文件。你可能又失望了,没有即时扫描功能,还怎么“防”病毒啊!不要失望,ClamWin虽然不能做到,但是它有一个好邻居、好朋友、好搭档WinPooch。WinPooch可是专业搞系统监控的“看家狗”哦。呵呵,“术业有专攻”嘛,很多开源软件都是这样。
(二)Winpooch Watchdog 忠实的系统“看家狗” GPL协议
SourceForge页面:http://sourceforge.net/projects/winpooch
正如其名,WinPooch是一条忠实的“看家狗”,说其忠实,是因为它使用API Hook技术,可以对几乎所有的可疑操作进行监控、报告或阻止。
初次安装完毕后WinPooch会自动检查你的机器上是否安装了ClamWin,如果正确安装了ClamWin了,他会自动把ClamWin作为它的Antivirus(要不怎么说它是ClamWin的好邻居、好朋友、好搭档):
有了WinPooch为ClamWin保驾护航,我们不怕了,这次直接双击运行EICAR测试文件:
我们的看家狗会自动调用ClamWin进行病毒扫描,由于EICAR是标准的测试文件,任何合格的反病毒软件都应该有所反应,ClamWin也不例外。于是狗狗发现了敌情,一声大叫“汪”,便跳了出来:
注意,此时我们面临三个选择Accept, Feign,或Reject。点击后面两个按钮(“Feign”或“Reject”)可以阻止该操作,但是效果稍有差别。Reject的话,Windows会报告一个错误:
---------------------------
EICAR.com
---------------------------
Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。
---------------------------
确定
---------------------------
而点击Feign的话则不会报告这个错误(文件同样没有被运行)。
但是有的时候我们很清楚某个“病毒文件”实际上是正常文件,就比如我现在运行的这个ERICA.com文件,只是一个用于测试反病毒软件的文本文件而已。这种情况下我们就可以点击第一个按钮Accept,允许这个操作。
如果我们在40秒内没有进行任何操作,则默认为Reject。
WinPooch的所有操作都是基于过滤规则(filters)的,我们来看一下它的filters:双击系统托盘中的WinPooch图标,打开主界面。
WinPooch的一个过滤器(filter)是由右上方的一个进程文件路径(Program)和对它的若干条规则组成的。点击上面一个“+”可以添加一个Program,选择该Program然后点击下面的“+”可以给它制定一条规则,支持通配符*和?。WinPooch的Filter添加有点麻烦,我们在添加自定义Filter之前还是先来分析一下它的默认Filters:
比如下面几条规则:
由于是应用于“*”即所有进程的,所以,第一行可以解释如下:“当任何进程(“*”)新建或更改(Write)“C:/Windows/”系统目录下的任何dll文件时,弹出对话框询问(Ask),如果在规定的时间内没有做出选择就默认拒绝该操作(default Reject),并在日志文件记录(Log)。”第二~六条和第一条类似,只是分别针对exe,bat,ocx,pif和src文件的。后面的就不一一解释了。
把右下方的ListView滚动到最后,可以看到这样一条规则:
Sys::Execute * Accept Log Virus scan
它的含义为在任何进程执行任何其他进程(*)时,调用ClamWin进行病毒扫描(Virus scan),如果没有病毒就允许该操作(Accept),否则提示用户处理。该动作及处理结果还要记录入日志(Log)。这也是WinPooch和ClamWin之所以能合作的根本原因了。
除了修改Windows目录文件、程序被病毒感染外,WinPooch还可以监控一些危险性操作,比如修改注册表(Reg::SetValue)、监听特定端口(Net::Listen)、通过某个端口建立网络连接(Net::Connect)等。WinPooch的所有过滤规则都是可以自定义的,具体可以打开WinPooch的Filters自己摸索一下。
由于WinPooch的过滤规则可以自定义,所以他要比一般的监控软件更灵活(当然配置起来也会有一定的难度)。比如默认情况下,我们修改了系统的“环境变量”(“我的电脑”右键,“属性”,“高级”),WinPooch就会报警:
如果由于某些原因,需要频繁地修改这个,每次都要手工去点“确定”的确比较烦。对于这种情况,我们可以点击“Other options”中的“New filter”按钮,新建一个Filter如下:
然后,我们再通过“我的电脑”右键菜单修改“环境变量”,WinPooch就不会跳出来烦我们了,而是在后台默默记录。
再举一个例子,如果你使用过RealPlayer,你可能知道,每次启动RealPlayer后都会有一个realsched.exe进程启动并驻留系统。通过WinPooch可以禁止该进程的启动:
然后,选中新加的Rule,使用上箭头图标把它移动到“Sys::Execute *”规则之上防止被该通配符规则屏蔽就可以了:
然后看一下这两个软件的内存占用:
怎么样?这个开源套餐还算丰盛吧?是不是心动了?赶快下载安装自己体验吧:)另外,如果你是C/C++或Python程序员,你也可以为它们出一份力的哦,“吃水不忘挖井人”嘛!