本文仅供学习,禁止另作他用!!!
简介
melissa病毒伪装成一封来自朋友或同事的电子邮件,用户打开附件中的list.doc后,病毒会让受感染的电脑向外发送50封携毒邮件,它能引发大量电子邮件,从而阻塞电子邮件服务器。
该病毒是宏病毒,是VBA(visual basic for application)代码
对Word2000与Word97起作用
参考博客
源码:
第一部分
1 | Private Sub Document_Open() |
该部分首先读取Windows注册表里的内容,判断该Word是不是2000,如果是就把“宏”工具栏的“安全”项设置无效;不是的话,是97的话,先把tools下的Macro(宏)选项设置为不可用,别人就看不到代码,然后把ConfirmConversions(文件转换)、VirusProtection(宏警告)和SaveNormalPrompt(模板存储确认,即normal.dot被修改了也不知道)都关了1-1=0
normal.dot:是Word的默认模板,Word在工作时都是基于某个模板进行的,这里病毒将默认模板也改了,所以导致以后每一次使用默认模板时,病毒都会出来判断,而在这里把修改确认给关了,就是不让用户知道默认模板被修改了,这部分在第四部分
第二部分
1 | Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice |
该部分首先判断本机是否感染,判断依据是注册表中HKEY_CURRENT_USER\Software\Microsoft\Office\这个键中是否有项”Melissa”,如果有的话啥也不做,没的话开始恶意操作
操作就是选取outlook邮件地址薄里的前50名好友或同事,给他们发送一封名为”Important Message From”,内容为”Here is that document you asked for … don’t show anyone else ;-)”,附件为本文件的邮件,并且在这个HKEY_CURRENT_USER\Software\Microsoft\Office\键中加入”Melissa”项,以标记被感染
第三部分
1 | Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1) |
若被melissa感染(无论是你的模板或文件),它们的名字就会被改为Melissa,利用这个情况就可以判断出是你的模板,还是你的文档,或者两者都被感染。如果两者都被感染,它将啥都不做。否则若模板被感染,就利用模板来感染文档,所有新建的文档都会被感染;若文档被感染,就利用文档来感染模板。
第四部分
1 | 'WORD/Melissa written by Kwyjibo |
病毒作者的自述,如果当前的日期等于当前的时间,就打印” Twenty-two points, plus triple-word-score, plus fifty points for using all my letters.Game ‘s over. I’m outta here.”
防范
对于宏病毒,最好的防范就是不启用宏
清理注册表、清理感染文件