Virus宏与OfficeOffice宏与VBAword宏病毒原理宏病毒的攻防宏(macro),就是软件设计者为了在使用软件工作时,避免一再的重复相同的动作而设计出来的一种工具。它利用简单的语法,把常用的动作写成宏,当再工作时,就可以直接利用事先写好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作。什么是“宏”?MicrosoftOffice、wps等办公软件魔兽世界、剑网等游戏哪里用到“宏”?Office宏的定义:MicrosoftWord中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”宏语言宏语言即VISUALBASICFORAPPLICATION,简称VBA。VBA可以访问许多操作系统函数并支持文档打开时自动执行宏——这使得用这种语言写计算机病毒成为可能Office各版本及其宏语言年份Office版本宏语言1987Excel4.0formula1991Excel5.0VBA31993Word6.0WordBasic1997Office97applicationsVBA51999Office2000(WORD10)VBA62001OfficeXPVBA6.22003Office2003(WORD11)VBA6.32006Office2007(WORD12)VbA6.56Office自带VisualBasic编辑器注:1、调用VB编辑器的快捷方式:Alt+F112、查看宏的快捷键:Alt+F8office2007查看宏代码可以点击:视图宏编辑VBA简介直到90年代早期,使应用程序自动化还是充满挑战性的领域。对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言。例如:用EXCEL的宏语言来使EXCEL自动化,使用WORDBASIC使WORD自动化等等。微软开发出来的应用程序共享一种通用的自动化语言--VisualBasicForApplication(VBA),实际上VBA是寄生于VB应用程序的版本。VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。word创建宏Word提供了两种创建宏的方法:宏录制器和VisualBasic编辑器。宏录制器可帮助用户开始创建宏。Word在VBA编程语言中把宏录制为一系列的Word命令。可在VisualBasic编辑器中打开已录制的宏,修改其中的指令。也可用VisualBasic编辑器创建包括VisualBasic指令的非常灵活和强有力的宏,这些指令无法采用录制的方式。基于word的VBA编程SubAutoOpen()’定义函数名,AutoXXX为自动宏WhileTrue’恶意代码,死循环Msgbox”Helloworld”’调用对话框显示消息WendEndSub’函数到此结束基于word的VBA编程SubAutoOpen()Command.Caption=ShellC:\ProgramFiles\InternetExplorer\IEXPLORE.EXEFori=1To10……Documents.Add’新添加一个word文档NextiEndSubWord应用的层次Documents(所有的文档)Document(一个文档)Templates(所有模板)Windows(所有窗口)SelectionStyleRange…………调用操作系统Shell函数打开已安装的应用程序Office有了宏,宏在office中的什么位置?为了方便人们使用宏以及宏文件的传递使用,Word定义出一种文件格式,将文档以及该文档所需要的宏合在一起放在后缀为.dot的文件之中。正因为这种是宏也是资料的文档格式,便产生了宏感染的可能性。但是,Normal.dot上不能用来存储数据,每次修改后都需另外保存。有没有一种文档格式,既可以存储宏,又可以用来存储数据????一、模板文件格式:.dot文档:模板文档,新文档继承模板的属性(宏、菜单、格式等)。Normal.dot文件:全局模板,在建立整个文档中所起的作用是作为一个基类,是新建文档默认的模板。二、数据文件格式.doc———一种可以存贮宏的普通文档;.docx——一种不包含宏的普通文档;.docm——一种包含宏或启用了宏的文档;.dotx——一种不包含宏的模板;.dotm——一种包含宏或启用了宏的模板。宏就在office文档里用普通文档即可传播宏文件写代码简单,传播更简单,那么,我们可不可以做点别的事?其实宏病毒的出现并非出乎人们的意料,早在80年代后期就有专家预言过。那时,有些学生就用某些应用程序的宏语言编写病毒。然而,宏病毒与普通病毒不同,它不感染.EXE或.COM文件,而只感染文档文件。宏病毒就像自然界中令人恐惧的龙卷风,对人们正常使用计算机进行学习和工作带来了不可估量的影响,同时也造成了社会财富的巨大浪费。1.Concept宏病毒世界上的第一个宏病毒Concept可以感染Windows和苹果机上的MicrosoftWord文档。这个病毒是用MicrosoftWord6.0中的宏语言编写的,但它也能感染其他Word版本创建的文档。看起来编写Concept宏病毒是为了证明确实可以用宏编程语言编写病毒。因此,Concept宏病毒只是显示一个对话框,宣示它的存在,并不故意破坏磁盘上的任何文件。2Nuclear宏病毒这是一个对操作系统文件和打印输出有破坏功能的宏病毒。这个宏病毒中包含以下病毒宏:AutoExecAutoOpenDropSurivFileExitFilePrintFilePrintDefaultFileSaveAs这些宏是只执行(Execute-only)宏Nuclear宏病毒造成的破坏现象为:(1)打开一个染毒文档井打印的时候,它会在您打印的最后一段加上“STOPALLFRENCHNUCLEARTESTINGINTHEPACIFIC!”,这个现象是在每分钟的55秒~60秒之间操作打印时发生。(2)如果在每天17:00~18:00之间打开一个染毒文档,Nuclear病毒会将PH33R病毒传染到计算机上,这是个驻留型病毒。(3)在每年的4月5日,该病毒会将计算机上IO.SYS和MSDOS.SYS文件清零,并且删除C盘根目录上的COMMAND.COM文件。一旦病毒发作,MSDOS就不可能被引导,计算机将陷入瘫痪。Virus3台湾一号病毒台湾一号病毒会在每月的13日影响您正常使用Word文档和编辑器。它包含以下病毒宏:AutoClose、AutoNew、AutoOpen这些宏是可被编辑宏。在病毒宏中含有如下的语句:IfDay(Now())=13Then...这条语句与13日有关。台湾一号病毒造成的危害是:在每月13日,若用户使用Word打开一个带毒的文档(模板)时,病毒会被激发。激发时的现象是:在屏幕正中央弹出一个对话框,该对话框提示用户做一个心算题,如做错,它将会无限制地打开文件,直至Word内存不够,Word出错为止;如心算题做对,会提示用户“什么是巨集病毒(宏病毒)?”,回答“我就是巨集病毒”,再提示用户:“如何预防巨集病毒?”,回答是“不要看我”。2.1宏病毒简介什么是宏病毒?宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏自动被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。宏病毒的特点(1)宏病毒会感染.DOC文档和.DOT模版文件。(2)宏病毒的传染通常是WORD在打开一个带宏病毒的文档或模版时,激活宏病毒。(3)多数宏病毒包含AutoOpen、AutoClose、AutoNew和AutoExit等自动宏,通过这些自动宏病毒取得文档(模版)操作权。(4)宏病毒中总是含有对文档读写操作的宏命令。(5)病毒原理简单,制作比较方便。(6)传播速度相对较快。WORD宏病毒的生命周期211•某个宏病毒对文档取得控制权2•该病毒将自身复制到通用模板3•通用模板在启动时自动调用→编程语言:VBA、WordBasic等→运行环境:VBEWord宏病毒的感染过程宏病毒原理大揭秘1、降低宏安全级别以office2003版为例IfApplication.Version“11.0”Then’判断office版本strFullname=ThisWorkbook.FullName'取得当前工作薄的全名strVBS=Replace(UCase(strFullname),.XLS,.vbs)‘temp文件VBS的文件名SetWSH=CreateObject(“Wscript.Shell”)’创建Wscript对象Err.ClearOnErrorResumeNext’出错不提示,继续regStr=HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Security\Level“'注册表中Excelvba安全级别位置ret=WSH.RegRead(regStr)'读取当前安全级别IfErr.Number0Then'判断读取是否成功vbOKOnly+vbCritical,KeanjeasonExitSubElse'如果当前ExcelVBA安全级别不为“低”,则设置为“低”,值1-4分别对应:低,中,高,非常高IfVal(ret)1Thenret=WSH.RegWrite(regStr,1,REG_DWORD)EndIf1、用户使用Word执行打开文档、保存文档、打印文档和关闭文档等操作时,Word会查找指定的标准宏:例1:关闭文档之前查找“FileSave”宏,如果存在,首先执行这个宏例2:打印文档之前首先查找“FilePrint”宏,如果存在则执行这个宏2、Word中另外还有一些以“Auto”开始的宏(自动宏),如“AutoOpen”、“AutoClose”等,如果建立了这些宏,打开/关闭文档的时候将自动执行这些宏,这些宏一般是全局宏,对任何Word文档都有效。病毒触发要隐含在正常的操作中,这些自动执行的宏然是最好的宿主。2、文档的控制权获取宏病毒常用到的宏如下表所示类别宏名运行条件自动宏AutoExec启动Word或加载全局模板时AutoNew每次创建新文档时AutoOpen每次打开已存在的文档时AutoClose在关闭文档时AutoExit在退出Word或卸载全局模板时标准宏FileSave保存文件FileSaveAs改名另存为文件FilePrint打印文件FileOpen打开文件高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。常用代码示例:OnErrorResumeNext'如果发生错误,不弹出出错窗口,继续执行下面语句Application.DisplayAlert=wdAlertsNoe'不弹出警告窗口Application.EnableCancelKey=wdCancelDisabled'不允许通过ESC键结束正在运行的宏Application.DisplayStatusBar=False'不显示状态栏,避免显示宏的运行状态Application.ScreenUpdating=False'不让刷新屏幕,避免病毒运行引起刷新速度变慢Option.VirusProtection=False'关闭病毒保护功能,运行前如果包含宏,不提示Option.SaveNormalPrompt=False'如果公用模板被修改,不给用户提示窗口而直接保存3、宏病毒的自我隐藏1、Word宏病毒一般都首先隐藏在一个指定的Word文档中,一旦打开了这个Word文档,宏病毒就被执行,宏病毒要做的第一件事情就是将自己拷贝到全局宏的区域,使得所