【原创】改造优化免费杀软 Dr.Web Cureit 实现自动更新和其他需求 - CCF技...

来源:百度文库 编辑:神马文学网 时间:2024/05/06 16:34:26
【原创】改造优化免费杀软 Dr.Web Cureit 实现自动更新和其他需求  
重装系统后没装杀毒软件裸奔了一段时间,感觉还不错,但也还需要一个杀毒软件以备不时之需,特别倾向于可以免安装的免费软件,只在需要时启动查杀病毒。经过挑选试用,免费的 Dr.Web Cureit 基本能满足以上要求,而且凭 Dr.Web 的威名应该是不错的。

初试有几点不满意:1、不支持自动更新;2、一个文件,运行时解压后执行,效率不高;3、默认执行后不载入引擎,而要手工选择是“升级”还是“开始”杀毒;4、一上来就开始扫描;5、会弹广告(虽然很简洁弹出也不频繁--这点虽然不喜欢,但还可以忍受,毕竟是免费软件。)

下面以我解决问题的先后顺序来说明:

一、第2、3点的解决

经过监视进程,知道运行后是解压到临时目录,通过执行 _start.exe 来载入杀毒引擎(setup.exe),但手工解压到自定义目录后执行 setup.exe 却不成功,而用 _start.exe 就可以启动。

通过看用户目录下的 log 文件,看到实际上 setup.exe 加个参数指明配置文件(/ini:setup_XP.ini)就能运行了。而且这样一来原来的广告也不再出现了,可见 _start.exe 不过是加参数运行 setup.exe + 广告。

因此,只要启动 setup.exe 时加上参数就行了

setup.exe /ini:setup_XP.ini

或者用快捷方式加参数、或者用Hoekey 等快捷工具加参数、或者在TC里新建工具按钮加参数......凭习惯自己选择吧。


二、第4点的解决

软件一上来就开始扫描,每次都要手工停止后再干自己想干的事,比较烦人。软件的界面有设置项,但里面没有任何这方面的设置。

看其解压后的目录,内有 setup_XP.ini (就是上面提到的文件了),浏览一遍其中的参数,有一个 TestStartup = Yes 项,猜测差不多就是它,改成 TestStartup = No 之后,果然启动后处于等待指令状态。

顺便把
LogFileName = %USERPROFILE%\DoctorWeb\CureIt.log
MoveFilesTo = %USERPROFILE%\DoctorWeb\Quarantine\
ExcludePaths = %USERPROFILE%\DoctorWeb\Quarantine\
项改成解压后的工作目录(默认在系统用户目录)

其他的如排除文件列表
ExcludeFiles = "FAR.exe","mirc.exe","LanHelper.exe","LanSee.exe"
也可以在这里一并把需要排除的文件加上(上面几个都是在第一次扫描时查出来的可疑文件,当时还把自己吓了一跳,把几个文件上传到网上的杀毒引擎,多数的杀软都没查出问题,看来和 Dr.Web 独特的引擎有关,也好,宁可错杀不可漏过^_^,不过还是需要设置一下查杀病毒的规则的,由于我对自己的机器比较自信,因此设成了只查不杀,最后自己手工排除)


三、自动更新的实现

1、自动下载

Cureit 的升级需要手工下载,由于它打包成了一个可执行文件,当然如果不介意上面的几点不满意的地方,要实现自动下载很简单,很多工具都可以实现。这里用了命令行下载工具 wget 结合计划任务程序来实现。

建立一个计划任务定时执行下面的命令就可以了,这里为了后面解压方便,直接把扩展名改为 .zip了:

wget.exe -N -O d:\temp\cureit.zip http://msk.drweb.com/pub/drweb/cureit/cureit.exe

2、删除目标目录中老的病毒库文件

这里我的目标目录是 d:\Program Files\DoctorWeb\,由于免费的 Cureit 每次都改变病毒定义文件的名称,升级后原来的文件就没用了,需要先清除掉,但又必须保留原来的配置文件 setup_XP.ini,这就需要按排除列表来删除无用文件了。

要实现这个目的,有各种不同的办法,复杂点可以编写一小段批处理文件,我这里用到了系统自带的 del 命令的排除指定类型文件的功能。首先把需要排除的 CureIt.log、setup_XP.ini 和下面讲到的 xfilelist.txt 文件类型设为“系统”,结合计划任务运行下面的命令:

del /A:-S "d:\Program Files\DoctorWeb\"* /Q

3、按忽略列表自动解压文件

自动解压至目标目录,需要解决的问题是不能覆盖相关配置文件 setup_XP.ini,同时原包中还有其他的语言文件和俄文帮助等等无用的东西,也可以一并忽略掉(谁叫我是完美主义者呢^_^)

找来找去,7zip 就支持按忽略列表解压文件,建立一个忽略文件列表 xfilelist.txt,包含上面所说的文件和 xfilelist.txt 本身。

也是用计划任务运行命令行来实现:

7z.exe x d:\temp\cureit.zip -o"d:\Program Files\DoctorWeb\" -x@"d:\Program Files\DoctorWeb\xfilelist.txt" -aoa

以上三点都要求结合计划任务来实现,可以按时间来安排在系统比较空闲的时段,并按顺序执行。考虑下载可能会因为网速原因影响完成时间,可以把1的命令安排在后面两个命令之前一段时间(特别是要在解压之前留出足够的下载时间)。

也可以每天多次执行以上升级的过程。这样你就可以随时拥有一个免费好用的杀毒工具了