友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
荣耀电子书 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

知者无畏--一个真实的簿世界-第章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




第三节 流传最广泛的病毒——宏病毒
宏病毒是使用宏语言编写的程序,可以在一些数据处理系统中运行(主要是微软的办公软件系统,字处理、电子数据表和其他Office程序中),存在于字处理文档、数据表格、数据库、演示文档等数据文件中,利用宏语言的功能将自己复制并且繁殖到其他数据文档里。
宏病毒在某种系统中能否存在,首先需要这种系统具有足够强大的宏语言,这种宏语言至少要有下面几个功能:
* 一段宏程序可以附着在一个文档文件后面。
* 宏程序可以从一个文件拷贝到另外一个文件。
* 存在这样一种机制,宏程序可以不需要用户的干预自动执行。
从微软的字处理软件WORD版本6。0开始,电子数据表软件EXCEL4。0开始,数据文件中就包括了宏语言的功能,早期的宏语言是非常简单的,主要用于记录用户在字处理软件中的一系列操作,然后进行重放,可以实现的功能有限,但是随着WORD版本97和EXCEL版本97的出现,微软逐渐将所有的宏语言统一到一种通用的语言:适用于应用程序的可视化BASIC语言(VBA)上,编写越来越方便,语言的功能也越来越强大,可以采用完全程序化的方式对文本、数据表进行完整的控制,甚至可以调用操作系统的任意功能,包括格式化硬盘这种操作也能实现了。
在字处理和其他办公软件中包括宏语言的初衷是为了实现办公自动化,包括自动的报表生成,一些固定格式的公文生成等等,比如说打开一个文件实现自动的签名和回复对于公司的公文来说是很重要的功能,使用WORD的宏语言可以很方便的实现。但是这种自动执行的特性也给宏病毒的出现打开了方便之门。
宏病毒存在于文档文件中的形式非常复杂,宏病毒的感染都是通过宏语言本身的功能实现的,比如说增加一个语句、增加一个宏等等,不通过宏语言执行环境(比如说WORD或者EXCEL程序)的功能,直接在二进制的数据文件中加入宏病毒基本上是不可能的。在本书第五章中专门有一节详细叙述了微软办公软件文档的二进制结构,如果你感兴趣的话可以研究那一节的内容。
WORD版本7以后,宏可以以加密的形式存在,宏代码只能被运行而不能被查看,碰到这种加密的宏病毒,采用简单的字符串搜索的方式对查找这类病毒无能为力。
宏病毒还是一种与平台无关的病毒(甚至包括和CPU无关),任何电脑上如果能够运行和微软字处理软件、电子数据表软件兼容的字处理、电子数据表软件,也就是说可以正确打开和理解WORD文件(包括其中的宏代码)的任何平台都有可能感染宏病毒。

我们下面以WORD宏病毒为例,详细说明宏病毒的感染机制。
使用微软的字处理软件WORD,用户可以进行打开文件、保存文件、打印文件和关闭文件等操作。在进行这些操作的时候,WORD软件会查找指定的“内建宏”:关闭文件之前查找“FileSave”宏,如果存在的话,首先执行这个宏,打印文件之前首先查找“FilePrint”宏,如果存在的话执行这个宏。另外还有一些以“自动”开始的宏,比如说“AutoOpen”、“AutoClose”等,如果这些宏的定义存在的话,打开/关闭文件的时候会自动执行这些宏。在EXCEL环境下同样存在类似的自动执行的宏。

下面是以“自动”开始,可以在适当的时候自动执行的宏的列表:
WORD
EXCEL
Office97/2000
AutoOpen
Auto_Open
Documeny_Open
AutoClose
Auto_Close
Document_Close
AutoExec


AutoExit


AutoNew

Document_New

Auto_Activate


Auto_Deactivate


以“文件”开始的预定义宏在不同语言中名字不完全相同(但是对于非西方文字,如中文、日文,名字和英文的宏名字是一样的)。这些宏会在执行特定操作的时候被激发,比如说使用菜单项打开和保存文件等。还有一类宏,是在用户编辑文字的时候,如果输入了指定键或者指定的键的序列,则该类宏会被触发。
攻击微软WORD、EXCEL和其他Office程序的宏病毒,基本上都是采用上面三种方式触发的。如果打开一个被感染宏病毒的文档,WORD(EXCEL或者其他)会首先执行包含在“AutoOpen”宏中的病毒代码,如果宏病毒替换了标准的菜单处理函数,则使用该项菜单的时候会执行宏病毒代码,当然还有另外一种情况,就是敲入指定字符序列的时候会激发相应的病毒代码。
为了避免被杀毒软件检测出来,一些宏病毒使用了和DOS环境下多态病毒类似的方法来隐藏自己。在“自动”开始的宏中,不包括任何感染或者破坏的代码,但是在其中包含了创建新的宏(实际进行感染和破坏的宏)的代码,这样“自动”宏被执行之后,创建了新的病毒宏在执行,执行完毕之后再删除病毒宏。这样,杀毒软件很难从原始的代码中发现病毒的踪迹。
在WORD或者其他Office程序中,宏分成两种,一种是每个文档中间包含的内嵌的宏,另外一种是属于WORD应用程序,为所有打开的文档共用的宏。任何宏病毒首先都是藏身在一个指定的WORD文件中的,一旦打开了这个WORD文件,宏病毒就被执行了,宏病毒要做的第一件事情就是将自己拷贝到全局宏的区域,使得所有打开的文件都会使用这个宏。当WORD退出的时候,全局宏将被存放在某个全局的模板文件(。DOT文件)中,这个文件的名字通常是“NORMAL。DOT”。如果这个全局宏模板被感染,则WORD再启动的时候会自动的装入宏病毒并且执行。
然后病毒就开始进行实际的感染,有的病毒已经包括了对“FileSave”、“FileOpen”的处理,如果没有则病毒会创建一个新的处理函数替代原来的。这样,一旦用户保存文件,病毒就会被附加在新保存的文件中,一旦用户打开文件,病毒同样会立刻附加在新打开的文件中。还有一种感染速度更快的方法,病毒搜索所有最近打开的文档(宏语言具有这个功能),然后将它们全部感染。

EXCEL宏病毒除了很少的几点不同以外,和WORD宏病毒非常相似。首先是EXCEL的全局模板文件不是“NORMAL。DOT”,而是放在EXCEL安装目录下的“STARTUP”子目录中的所有EXCEL文件。EXCEL的版本变化非常快,4。0版本和EXCEL95使用的宏完全不一样,但是微软有一个良好的习惯,就是除了很少的例外以外,后来的版本对前一个版本的的支持都比较好,这样做带来的副作用就是,在4。0版本下编写的宏病毒在EXCEL95下仍然能够正常的工作。
ACCESS作为微软办公软件的一员,同样具有强大的宏语言,也就同样有可能被病毒感染。而且ACCESS中间存在自动脚本和自动宏的概念,由于ACCESS数据库处理的需要,软件本身就大量使用了脚本语言的功能,如果清除被病毒感染的文件很可能把正常的脚本也清除,这样会造成数据库文件的损坏。
其他的一些字处理软件,包括AmiPro、IBM的WordPro等,只要具有了足够强大的宏语言就可能包括病毒,由于使用这些字处理软件的人比较少,所以没有严重的病毒感染事件,但是AmiPro和WordPro环境下的病毒都已经被发现过。
有一些简单的办法可以判断一个文件是否被宏病毒感染。首先打开你的WORD,选择菜单:工具(Tools)-》宏(Macro)—》宏列表(Macros),如果发现里面有很多以“Auto”开始的宏,那么你很可能被宏病毒感染了。自从微软的Office97以后,在打开一个Office文档的时候,如果文档中包括了宏,则WORD会弹出下面的警告框:弹出这个警告框并不一定就意味着病毒,因为微软的很多Office自动化功能就是通过宏来实现的。但是在国内使用这些功能的用户很少,所以一些杀毒软件把正常的包含宏的文档中的宏统统去掉(甚至包括Office安装程序中的一些模板文档),用户反而觉得这种软件好,因为从此不会再有任何警告框出现了。唉,这就是中国用户的典型心理,和前面说的误报率一样,让人哭笑不得。

第四节 躲避杀毒软件的检测——病毒的多态(变形)技术
我们把使用通常的特征码扫描法无法检测(或者极其难以检测)的病毒称为多态病毒。多态病毒避免被检测的方法主要有两种:使用不固定的密钥或者随机数加密病毒代码,或者在病毒运行的过程中改变病毒代码,除了这两种主要的方式外,还有的病毒,例如“炸弹人”(Bomber)通过一些奇怪的指令序列等方法可以实现多态性。
运行时改变的代码在早期是一种很常见的技术,最早的BASIC时代,一些BASIC语言的狂热爱好者举行了一种奇特的竞赛,看谁可以在一行BASIC代码里面完成尽可能多的功能(BASIC语言可以在一行包括很多语句),为了实现复杂的功能,人们在这一行BASIC代码中就会包括改变代码本身的代码,这样造成程序的复杂性是难以想象的,所以在实际的软件开发中,这种运行时候改变自己的技术已经不再被采用了,但是多态病毒程序出于隐藏自身的目的,还经常采用这种技术。
多态病毒和前面所述的引导型、文件型和宏病毒并不是同一层次的概念,实际上,多态病毒中既有引导型病毒,也有文件型病毒和宏病毒。

使用加密解密技术的多态性

下面是一段最简单的多态病毒代码,这段代码的作用是将预先加密的病毒代码解密,然后跳转到执行感染和破坏功能的病毒代码中。

















这段解密的代码和加密后的病毒都是在感染的时候动态生成的,我们可以看到,使用的寄存器、密钥、加密代码的长度等等,甚至解密使用的指令都是随机的,所以指望能够从这些代码中找到固定的病毒特征码是徒劳的,也就是由于这种多态(变形)病毒的出现
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!