病毒漫谈──梅利莎
网络与通信
宏病毒是Windows病毒中最特殊的一类,由于媒体的误导,使很多人对它缺乏正确的认识,以为它非常厉害。其实即使不借助任何工具,一般用户徒手就能将它制服。
一、什么是宏
首先大家必须了解什么是宏,Word为了方便高级用户进行一些机械重复性的操作,设计了一套专门的Basic语言,这就是常说的宏。由于它具有进行磁盘操作的功能,所以它也可以破坏文件,甚至格式化硬盘。
根据触发条件,Word宏分为两大类:
通用宏,它对所有Word文档有效,一旦你调用了染毒Word文档或者模板即自动执行。这类宏有一个明显特点就是都以Auto开头。
私用宏,所谓私用不是指只能在特定电脑上运行,而是指它只用于特定的模板。
显然从危险性和传播性来说,通用宏病毒要比私用宏病毒可恶得多,一般的宏病毒都被编写成通用宏,以达到自动传播和发作的目的,但事情都有例外。有些私用宏藏在一些常用格式的模板中,反而更加隐蔽,不容易被发现,比如Word97以后版本中自带的“HTML模板”。
由于宏是以Basic语言为基础的,所以使用非常方便,这为那些心怀不轨,但编程水平不高的人提供了一条编制病毒的捷径。不管怎么样宏病毒总是宏病毒,与使用高级语言编制的病毒相比,对其防治和查杀都要简单得多。
二、常见宏病毒的破坏机理
以有名的梅利莎(又译成美丽杀手)为例来讲解。由于其程序比较简单,我就把部分源代码列在此:
If x>50 Then ∞=AddyBook.AddressEntries.Count
Next ∞
BreakUmOffASlice.Subject="Important Message From& Application . UserName
BreakUmOffASlice.Body="here is that document you asked for ...don't
show anyone else;-)"
BreakUmOffASlice.Attachments.Add ActiveDocument.FullName
BreakUmOffASlice.send
Peep=""
这段就是梅利莎的核心程序,也就是具有破坏性的部分。其机理就是利用Basic的“If”和“For Next”语句向地址簿中的50个用户发送电子邮件。
三、预防和查杀
Word97以及其后续版本的用户只要打开Word,单击“菜单→选项→常规→宏病毒防护”,这样在你打开Word文档的时候,Word会提示你要不要运行文档所带的宏,你自己看着办吧。你如果点“是”,那出问题别怪我。
老版本的(可能很少了,但我还是说一下比较好)Word用户,你可以自己编写一个通用宏,禁止所有自动宏的运行(以毒攻毒嘛)。参考代码:
sub main
DisableAutoMacros
End sub
然后保存到Normal.dot模板中
另外一个办法是用Windows自带的写字板打开Word文档,不过这样会让文档格式丢失。
如果你是个新手,那我建议你把常用的一些可以改写硬盘数据的命令,如format.com、deltree.exe、xcopy.exe改名,因为宏病毒自己并不具备磁盘读写能力,想破坏硬盘数据就必须调用这些DOS命令,你只要一改名,宏病毒想耍威风也找不到工具了。如果你这么做了,宏病毒能干的最多就是影响一下你的电脑的运行速度,或者在你打开Word文档时跟你开些玩笑。
随着互联网的普及,越来越多的程序成为病毒的载体,大家在收发电子邮件的时候也应该注意,尽量少用可能携带病毒的文件作为附件,比如我就从来不发DOC文档,一般都用TXT。这样利人利己,何乐而不为呢?