|
Word宏病毒透视
于建原
Word宏病毒,是近年来被人们谈论得最多的一种电脑病毒。由于一些杀毒软 件广告对此病毒的着力渲染,使得一些普通的用户对该病毒谈之色变。其实,在 了解了Word宏病毒的编制、发作过程之后,即使是普通的电脑用户,不借助任何 杀毒软件,也可以较好地对其进行防冶。
Word宏病毒,是用一种专门的Basic语言即Word Basic所编写的程序。与其它 计算机病毒一样,它能对用户系统中的可执行文件和数据文本类文件造成破坏。 根据触发条件,Word宏病毒至少可分为两类:一类是公(共)用宏病毒。这类宏 病毒对所有的Word文档有效,其触发条件是在启动或调用Word文档时,自动触发 执行。
这类宏病毒有两个显著的特点:
一是只能用“Autoxxxx”来命名,即宏名称是用“Auto”开头,xxxx表示的 是具体的一种宏文件名。如AutoOpen、AutoClose、AutoCopy等;
二是它们一定要附加在Word共用模板上才有“公用”作用。通常在用户不规 定和另行编制其它的公用模板时,它们应是附加在Normal.dot模板上,或者首先 要能将自己写进这样的模板才行。
另一类称为“私用宏病毒”。私用宏病毒与公用宏病毒的主要区别是,前者 一般放在用户自定义的Word模板中,仅与使用这种模板的Word文档有关,即只有 使用这个特定模板的文档,该宏病毒才有效,而对使用其它模板的文档,私用宏 病毒一般不起作用。从编制病毒者的目的看,一般Word宏病毒都被编制成公用宏 并自动触发的程序形式,以达到不以用户意志为转移启动和传播的目的。虽然私 用宏的Word病毒很少,但现在因为互联网使用的频繁,可能网络中传输的一些常 用格式的文档会带有私用宏病毒。如随着“Word 97”的使用,将其放在“HTML模 板”中进行传播。
Word中提供由用户编制“宏”这一功能的目的是为了让用户能够用简单的编 程方法,来简化一些经常性的操作。这很像DOS的批处理文件将多个执行命令放在 一起来一次执行一样。所以,Word宏的编制技术,与其它的编程技术相比,要求 是很低的,也很容易编制。Word甚至还提供了不用编程,仅依靠录制用户实际操 作方法就可以生成宏的功能,这就使那些对计算机编程语言没有多少知识但却对 病毒“一往情深”者,也可以加入到病毒制造者的行列中。虽然Word的宏功能为 那些心怀叵测的人提供了一种简单高效的制造新病毒的手段,但是防治这类病毒 绝非像某些广告或文章所说的那样难,尤其是与那些用复杂的计算机编程语言编 制的病毒相比,宏病毒的防治要容易得多!如果真像有些杀毒软件产品广告中所 说的“因为微软公司不公布Word的内部结构”,使宏病毒很难防止,相信微软公 司无法承受这种千夫所指的“官司”。因为商业秘密与用户的合法利益相比,后 者得到的法律支持肯定要强大得多。了解了Word宏病毒的类型和编制原理,下面 我们谈谈对该病毒的防冶。
1.当怀疑系统带有宏病毒时,首先应查看是否存在“可疑”的宏。所谓可疑 的宏,是指用户自己没有编制过,也不是Word默认提供而新出现的宏。尤其对以 “Auto”开头的宏,应高度警惕。如果有这类宏,很可能就是宏病毒,最好将其 删去。 查看宏的方法是在打开某种模板的Word文档后,用“工具”菜单中的“宏 ”选项,将当前模板使用的所有的宏调出进行查看。平时在没有宏病毒的时候, 不妨对系统已有的和自己编制的宏做一个文件清单,以便随时对照!
2.用户在新安装了Word后,可打开一个新文档,将Word的工作环境按你的使 用习惯进行设置,并将你需要使用的宏一次编制好,做完后,保存新文档,使No rmal.dot模板改变。新的Normal.dot现在含有你需要的使用设置并绝对没有宏病 毒,可将这份干净的Normal.dot备份下来,这样你的手中就有了一份绝对可靠的 Normal.dot模板。在遇到有宏病毒感染或怀疑感染了宏病毒的时候,可随时用备 份的Normal模块来覆盖当前的Normal.dot模板。Normal.dot在用户没有另外指定 存放模板的路径时,应该在Word(或Office)的Templates目录下。
3.如果用户自己编制有Autoxxxx这类宏,建议将编制完成的结果记录下来, 即将其中的代码内容打印或抄录下来,放在手边备查。这样,当你的Word感染了 宏病毒或怀疑有宏病毒的时候,可以打开该宏,与记录的内容进行对照。如果其 中有一处或多处被改变或者增加了一些原来没有的语句,则不论你是否能看懂这 些代码,都应将这些语句统统删除,仅保留原来编制的内容。
4.如果你没有编制过任何以“Auto”开头的Word宏,现在系统运行不正常而 又完全能排除是由其它的硬件故障或系统软件配置问题引起,那么,在打开“工 具”菜单的“宏”选项后,如果看到有这类宏,最好执行删除自动宏的操作,因 为即便错删了,也不会对Word文档内容产生任何影响,仅仅是少了相应的“宏功 能”。如果需要,你还可以重新编制。
5.如果要使用外来的Word文档且不能判断这些“外来客”是否带宏病毒,有 两个做法是有效的:如果必须保留原来的文档编排格式,那么用Word。打开文档 后,就需要用上述的几种方法进行检查,只有在确信没有宏病毒后,你才能执行 保存该文档的操作;另一个方法是,如果没有保留原来文档的排版格式的必要, 可先用Windows提供的书写器(对使用Windows 3.x而言)或写字板(对使用Wind ows 95而言)来打开外来的Word文档,将其先转换成书写器或写字板格式的文件 并保存后,再用Word调用。因为书写器或写字板是不调用也不记录和保存任何Wo rd宏的,文档经此转换,所有附带其上的宏都将丢失,当然,这样做将使该Word 文档中所有的排版格式也一并丢失。
6.在调用外来的Word文档时,除了用书写器或写字板对Word宏进行“过滤” 外,还有一个简单的方法,就是在调用Word文档时先禁止所有的以Auto开头的宏 的执行。这样能保证用户在安全启动Word文档后,再进行必要的病毒检查。为此 ,对于使用Word 97以前版本的用户,需要自行编制一个名为AutoExec的宏。这个 宏在执行时,将关闭其它所有自动执行的Word宏。将AutoExec宏保存到一个另外 命名的模板中,比如AV.dot,当要使用外来的Word文档时,将含有AutoExec的AV 模板改名为Normal.dot模板(应先备份原来的Normal.dot模板);如果不使用外 来文档,可以将原来备份的Normal.dot模板再改名拷贝回来。AutoExec宏的参考 代码如下: Sub MAIN DisableAutoMacros End Sub
对于使用Word 97版本的用户,Word 97已经提供此项功能,将其激活或打开 即可。方法是,单击“工具”菜单→“选项” →“常规”,用鼠标勾选“宏病毒 防护”选项,这样,当前打开的文档所使用的模板就有了防止“自动宏”执行的 功能,当以后使用这个模板的文档时,如打开的文件带有“自动宏”,Word 97将 首先告诉用户打开的文档带有自动宏,并询问用户是否执行这些宏。不用说,应 该选择 “否”,待进入并打开文档后,再对文档进行“宏”检查。□
(《新潮电子》98年第二期 ,1999-06-15)
|