防病毒技术

1.杀毒、防毒软件原理

消毒/杀毒软件主要是由扫描器、特征信息库、消毒器三部分组成。扫描器是研制者事先编制好的一段程序,它能够对用户所要求的检测的对象进行病毒特征串扫描,即将特征信息库中的病毒征串逐个与检查对象中的数据进行比较,如果相符,则认为有病毒,如果一条都不符,则认为无毒。特征信息库中存放的是消毒软件研制者通过对具体病毒分析后所得到的该病毒最具代表性的特征串。消毒器的消毒过程是按事先约定好的过程将有关信息恢复到原来位置,此过程是研制者通过对具体病毒分析后设计出来的。

病毒的消毒/杀毒过程是病毒传染的逆过程,它主要依赖于消毒/杀毒软件研制者对具体某个病毒剖析后选取的病毒特征串。特征串是病毒扫描、检测、消毒的基础。特征串的选取是一个关键因素,选取具有代表性的特征串, 有可能覆盖一类病毒的许多变种病毒,而选取普通化的特征串,有可能造成“误报”现象,如:SCAN8 会对 2.13H 汉字系统中的 PRINTA.COM 误报有“FamR”病毒。

消毒是被动的,只有在发现病毒后,对其剖析、选取特征串,才能设计出该“已知”病毒的消毒软件,当发现新病毒或变种病毒时,又要对其剖析、选取特征串,才能设计出新的消毒软件。它不能检测和消除研制者未曾见过的“未知”病毒,甚至对已知病毒的特征串稍作改动,就可能无法检测出这种变种病毒或者在消毒时会出错。

发现病毒——→剖析特征串——设计扫描、消毒软件——变种或新病毒2.反病毒系统选用标准

防范工作的首要一条就是:绝不运行未作病毒检查的软件。由此,每个电脑用户至少应备有一个安全、可靠的反病毒系统。目前国内市场不断推出抗病毒、反病毒系统,这些系统大多各具特色,都能诊治常见病毒,但也有些系统编写很不严格,在消毒时破坏了关键信息,结果会使数据更加无望。如:染上“米氏”病毒的 DOS2.0 格式化的硬盘应立即消毒。有些抗病毒程序在消毒前,却往硬盘拷入程序或创建标志文件,而破坏了 FAT 副本,严重时会毁坏 BOOT 区。

如何选择一个理想的反病毒系统?以下几点是应该首先考虑的:

  1. 安全性和可靠性:该系统是否具有完善的系统安全保护措施?系统本身是否具有抗击病毒感染的能力?系统在预期的情况下是否能够正确地工作,而在意外的情况下,是否也能作出适当的处理?有的系统对磁盘检测,

    而不先检查内存,结果磁盘虽消毒,却又被存在于内存中的病毒重新感染上, 这样的系统就不是一个可靠的抗病毒系统。

  2. 诊治能力和防护能力:该系统能够诊治多少种病毒?防护措施是否合理?错误报警的频率是多少?在安装防病毒系统之前必须彻底地对系统诊治,以免已受病毒感染的程序也得到合法的保护。对于一个新系统,防治工作就显得更为重要,从“黑色星期五”产生一系列变异病毒这一现实中可以看出,开发更多的诊治程序也无济于事,只有积极地采取防治方法,才能争取主动。防治才是抑制、根治病毒的理想手段,特别是对未发现过的新病毒。SCAN

    是一个功能较强的抗病毒软件,它能诊治 2000 多种病毒,但它对国人修改过的变异病毒却无能为力。例如:有人把“大麻 007”病毒强行占有 0

面 0 道第 7 个扇区修改为占用 0 面 0 道第 8 个扇区,制造出其变异病毒—— “大麻 008”,若用 CLEAN 对其消毒,硬盘数据就被毁坏,甚至硬盘无法启动。

  1. 适应国情的程度:该系统是否适应汉字操作系统的特殊要求?是否可选用汉字提示?是否适合国产电脑?汉字信息处理技术是我国电脑应用的重要基础,汉字操作系统通过扩充或修改显示器、键盘和打印机等设备要求的中断驱动程序,使电脑能够处理汉字信息。国外许多著名的防病毒系统,

    如 VGUARD,VIRUSAFE 等,都不适合在国内使用,原因就在于它们都把汉字操作系统对中断的合理修改看成是“非法”的,而频频错误报警。

从系统的角度,更具体地说,病毒防护策略必须具备下列准则:

①拒绝访问能力

来历不明的入侵软件(尤其是通过网络传过来的)不得进入系统。

②病毒检测能力

应当认识到,病毒总是有可能进入系统的,系统中应设置检测病毒的机制。除了检测已知类病毒外,能否检测未知病毒是一个重要的指标。

③控制病毒传播的能力

应当认识到,没有一种方法能检测出所有的病毒。一旦病毒进入了系统, 应不让病毒在系统中到处传播。系统一定要有控制病毒传播的能力。

④清除能力

如果病毒突破了系统的防护,即使它的传播受到了控制,也要有相应的措施将它清除掉。对于已知病毒,可以使用专用消毒软件,对于未知类病毒, 在发现后使用软件工具对它进行分析,尽快编写出消毒软件。当然,如果有后备文件,也可使用它直接覆盖受感染文件,但一定要查清楚病毒的来源。

⑤恢复能力

有可能在消除病毒以前,病毒就破坏了系统中的数据,系统应提供一种高效的方法来恢复这些数据。

⑥替代操作

可能会遇到这种情况:当发生问题时,手头没有可用的技术,任务又必须执行下去。系统应该提供一种替代操作方案。在恢复系统时可用替代系统工作,等问题解决以后再换回来。这一准则对于战时的军事系统是必需的。在考虑上述病毒防护策略和评价准则的情况下,多选用一些新近开发的

杀毒/消毒/扫毒软件,是有益的。扫描病毒的关键是已知病毒的特征串,出现一个新病毒不可能所有的扫毒软件开发者同时发现,因此,有的杀毒软件对一些病毒有效,而有的扫毒软件对另一些病毒有效,譬如,KILL 软件能够及时扫描、杀除国产病毒。而对国外的大部分病毒则应借助于国外的 SCAN、CPAV、TNT、NAV 等软件。在本章后面将介绍这些软件的使用技术和注意要点。

值得注意的是,防病毒系统并非多多益善,如果使用多种防病毒系统, 可能会出现相互之间抢占资源和判断失误等问题,因此,必须慎重地选择一到两个安全、可靠的防病毒系统。

如:用 CPAV 对可执行文件加免疫保护外壳后,若再用其它软件加免疫外壳,就不能正常工作。

  1. KILL 使用方法

DOS 系统启动后,将 KILL 盘插入 A 或 B 软盘驱动器,输入命令:

KILL[驱动器][路径名][文件名]

方括号中各项内容可根据用户要处理的盘号、路径及文件名填入。如果只输入盘号,KILL 则对指定盘进行处理。可以填入盘号和路径,此时只处理指定的路径。也可输入文件名,KILL 只对这个文件进行处理。

例如:

KILL C:\DOS KILL C:\TC\LIB

KILL C:\FZ\WPS.EXE KILL A:

若用户只输入文件名,则默认当前驱动器和当前目录。例如:

KILL FILENAME.EXE

若只输入: KILL

则对整个当前盘进行处理。KILL 开始运行时若显示提示:

FIND VIRUS IN MEMORY,REBOOF SYSTEM

则说明系统已被病毒感染,应该使用干净的 DOS 系统盘重新启动系统。软件运行后,主屏幕上会有 6 个可选项,可使用功能键←和→进行选择。

{ewc MVIMAGE,MVIMAGE, !15900250_0115_1.bmp}(1)SCAN 项:KILL

只检查病毒是否存在,若发现病毒,屏幕会显示被感染的文件名及病毒种类, 不做杀毒处理。

  1. CLEAN 项:KILL

    将对病毒进行清除,屏幕会显示被清除的病毒种类和被感染的文件名。

  2. RESIDENT 项:软件常驻功能,该功能暂不向用户提供。

  3. TOOLS 项:辅助分析工具,该功能暂不向用户提供。

  4. DRIVE

    项:用户可以用此项功能随时改变原来指定的驱动器号或目录或文件名,而不必退出 KILL 重新运行。用 RETURN 键选中此项后,屏幕上出现一个小窗口,此时可输入新的驱动器号或目录或文件名,与 KILL 加载时命令行参数的格式要求相同,如:

A:

C:\DOS C:\FZ\WPS.EXE

内容输入后,显示小窗口消失,即可进行其它操作。(6)QUIT 项:选中此项时,程序将结束运行,正常退出。

KILL 运行过程中可随时用功能键 ESC 中止运行或强行退出。

当检查出系统内存含有病毒时,则尽可能予以清除,然后开始检查操作驱动器的引导记录。如果发现感染有系统引导型病毒,则立即予以清除,并恢复引导记录状态,然后检查磁盘中的文件。

屏幕在运行过程中会不断显示发现的病毒种类数和已检查处理过的文件个数。

  1. KILL 使用注意要点
  1. 建议先制作一个〈DOS 管理盘〉,该盘是一个与硬盘中的 DOS 同版本的 DOS

    系统盘,并且必须消毒后贴上“写保护”标签。

  2. KILL 必须在干净无毒的系统环境下才能可靠运行。因此用户在使用 KILL

    软件前,必须用干净无毒的 DOS 系统盘,(如:DOS 管理盘)启动系统。

  3. 选用 CLEAN 功能项杀毒时,若用户用自己的 DOS 启动系统并且CONFIG.SYS

    中要求扩展内存管理,则可能与 KILL 软件有冲突,此时可先将CONFIG.SYS 文件改名为CONFIG,重新启动即可杀毒。杀毒后,恢复CONFIG.SYS文件。

  4. KILL 盘使用前应贴封写保护。

  5. 关于 KILL 本身加密情况的说明,只针对加密版而言。

①KILL.EXE 是加密后的程序,该程序所在软盘为“密钥盘”。

②该程序可拷贝至其它盘中(如:C、D)执行,但必须将该“密钥盘” 插入 A 或 B 驱动器。

③若不插入“密钥盘”,运行 KILL 时会引起系统死机,须重新启动方可再次运行。

  1. SCAN 命令参数

在 DOS 提示符下打入命令: A:〉SCAN/?

可以得到该软件的命令行用法的参数说明。下面是 SCAN 的参数说明和中文大意。

Usage:SCAN:dl:...d26:/A/ADx/AFfilename/AGfile- name/AVfilename

/BELL/BMP/CERTIFY/CFfilename/CHKHI/CG/CV/D DATE/E.xxx.yyy/EXT.d:filename/HISTORYfilename/ MAINT/NLZ/NOBREAK

/NOEXPIRE/NOMEM/NOPAUSE/REPORTfilename

/RFfilename/RG/RV/SAVE/SHOWDATE

/SUB/filename其中

d1:...d26:为进行操作的驱动器符,可以同时设定 26 个操作的驱动器。例如:SCANC:扫描 C:整个硬盘SCANC:\TEST\*.*D:\E:\扫描 C:盘子目录\TEST 及 D:和 E:

根目录。

SCAN/BELL 扫描当前盘,发现病毒时响铃警报。可选的参数说明和中文大意:

\-Scanrootdirectryandbootareaonly 只扫描引导区和根目录。

/A-Scanallfiles,includingdata,forviruses 扫描所有文件(包括数据)

/ADX-Scanalldrives(‘L’=Local,‘N’=net-wook,’’=both) 扫描所有驱动器(L=本地,N=网络,”=两者)

/BELL-Ringalarmifvirusfound 发现病毒时响铃警报

/CERTIFY-Listfilesthathavenotbeenvalidated 列出未确认的文件。

/CHKHI-CheckmemoryfromOKBto1088KB 检查内存 0--1088KB

/D-Overwriteanddeleteinfectedfile 删除受病毒感染的文件

/DATE-Logdateandtimeofsystemscan 登记扫描系统日期和时间

/E.xxx.yyy.xxx-Scanoverlayextensions.xxx.yyy.zzz 扫 描 扩 展名.xxx.yyy.zzz 覆盖程序

/EXTd:filename-Scanusingexternalvirusinformationfile 使用外部的病毒信息文件扫描

/HISTORYfilename-Createorappendtoexistinginfectionreport 建立或追加现存感染报告

/M-Scanmemoryforallviruses 对内存进行所有病毒的扫描

/MAINT-Scan“invalidmedia”error(damaged)disk 扫描“非法介质” 错误(损坏)的磁盘

/NLZ-SkipinternalscanofLZ.EXEcompressedfiles 跳过 LZ.EXE 压缩文件的内部扫描

/NOBREAK-DisableCtrl+C/Ctrl+Brkduringscanning 在扫描过程中禁止按〈Ctrl+C〉/〈Ctrl+Break〉

/NOEXPIRE—Donotdisplay“SCANoutofdate”message 不显示“SCAN 过时”的信息

/NOMEM-Skipmemorychecking 跳过内存检测

/NOPAUSE-disablescreenpausewhenscanning 在扫描过程中不要屏幕暂

/REPORTd :

filenameCreatereportofinfectedfiles,overwritingoldreport,ifany 建立感染文件报告

/SAVE-Setcurrentcommandlineoptionsasthedefault 设置当前命令行参数为缺省的

/SHOWDATE-ShowdateandtimeSCANwaslastrun

(use/DATEtosavedatedndtime)显示最后一次将近运行 SCAN 的日期和时间

(使用/DATE 存)

/SUB-Scansubdirectories 扫描子目录

/filename-Scanusingoptionsfromconfigurationfile 使用配置文件中的参数进行扫描

  1. SCAN 使用要点
  1. 对驱动器进行检查

使用如下命令(假定 SCAN 程序在 C 盘当前目录下)格式: C:\>SCAN[A:][B:][C:][D:][..]

用户给定需要检查的驱动器符(对于软盘驱动器,还要有在其中插入待检查的磁盘),然后按回车键,程序开始运行。

首先检查系统内存,然后对指定的驱动器进行检查,当发现有病毒时在屏幕上显示出病毒的名称。

如:SCANA:C:扫描 A:驱中的软盘和 C:盘。

  1. 对指定目录进行检查使用如下命令格式: C:\SCAN[d:]\path

d:为指定的驱动器符,path 为指定的操作目录。如果 d:缺省,则为当前操作驱动器。如 SCANC:\DOS 扫描 C:盘子目录\DOS。

  1. 对指定文件进行检查使用如下命令格式:

C:\>SCAN[d:][\path][filename]

d:为指定的驱动器符 path 为文件所在的子目录,filename 为指定的文件名。d:和 path 缺省时,则当前操作驱动器和当前目录操作的路径。

如 SCANC:\DOS\COMMAND.COM 扫描C:盘子目录\DOS 中的COMMAND.COM

文件。

  1. 删除检查出病毒的文件使用如下命令格式:

C:\>SCAN[d:][\ppath][filename][\D]

[d:],[\path]及[filename]参数的含义同前,/D 参数为指定删除操作方式。此时,当检查出含有病毒的文件时。则立刻将文件删除掉。

注意,因为这样将丢失一些文件,所以用户应慎重使用该参数。7.SCAN 注意要点

SCAN.EXE 和 CLEAN.EXE 等文件具有自身代码校验功能,因此,不能对它们进行压缩或加免疫外壳。

如果启动 SCAN 时,屏幕出现提示:

Warning:Thefile“C:\SCAN.EXE”hasbeendamaged!则表示 SCAN.EXE 文件已经被破坏,有可能该文件已受病毒感染。应将 SCAN 原盘中的文件覆盖到已损坏的文件。如果覆盖后的文件运行不久,又提示受破坏,说明系统内存有病毒,应加以处理。

8.CLEAN 命令行参数

命 令 格 式 为 : CLEAN{dirve(s)}[virusI.D]{options}可选项为:

{drives}-要扫描、清除病毒的操作驱动器,可指定多个

[virus.I.D]-由 SCAN 扫描时查出的病毒的代码,必须带中括号

/A-检查所有文件(包括数据文件)

/AD{X}-清除所有驱动器{L:本地,N=网络}

/E.XXX.yyy.ZZZ-清除扩展名为.XXX.yyy.zzz 的覆盖程序

/GENERIC-清除未知的特定型病毒

/GRF{FILENAME}-使用数据文件清除未知型病毒

/MANY-在一个驱动器上连续检查多个软盘

/NOPAUSE-屏蔽屏幕暂停提出

/REPORT-建立报告文件9.CLEAN 使用方法

在 DOS 提示符下打入命令: A:>CLEAN/?

可以得到帮助信息。Tocleanentriredisk(s),specifythedisk(s)andthevirus. Examples:

CLEANC:[virusname]

CLEANA : [ virusname ] Tocleanasingledirectory,specifythedirectoryandvirus.Examles:

CLEAN\newstuff[virus] CLEANC:\unknown\things[virus] CLEANA:\[virus]

CLEAN[virus] Tocleanasinglefile,specifythefileandthevirus.Examples: CLEAN\unknown\prog.com[virus] CLFANA:\unknown.exe[virus]中文大意是:

  1. 清除整个磁盘中的病毒,指定盘符和病毒代码,如: CLFANC:[D2]清除

    C:盘中的 DLR2 病毒CLEANC:D:[Jeru]清除 C:和 D:盘中的耶路撒冷病毒CLEANA:[Sunday]清除 A:盘中的星期天病毒

  2. 清除单个目录中的病毒,指定目录名和病毒代码。如:

    CLEAN\DOS[Flip]清除当前盘\DOS 目录中的 Flip 病毒CLEANC:\PCTOOLS\NOR[1757]

清除 C:盘\PCTOOLS\NOR 中的 DONG 病毒CLEANA:[1575]清除 A:盘根目录中的 1575 病毒

  1. 清除单个文件和病毒代码。如:

CLEAN\DOS\COMMAND.COM[170X]

清除当前盘\DOS\COMMAND。COM 的 170X 病毒CLEANA:\unknown.exe[Invader]

清除 A:盘根目录中 unknown.exe 的病毒