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

知者无畏--一个真实的簿世界-第23部分

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



獯怼�
据认为主动内核技术可以在源代码级将自己使用的反病毒技术嵌入操作系统内核,实际上,稍为理智的分析都可以得出结论,这种源代码级的对操作系统的修改是不可能的,如果安装一个反病毒软件,这个软件会使用自己编译的,加入反病毒功能代码的视窗程序替换你的视窗程序,你还有胆量安装这样一个杀毒软件吗?
可能主动内核技术真正的价值在于和一种全局性的网络管理体系,Unicenter TNG无缝连接。这样杀毒软件的更新和管理可以在一个非常完善的基础之上进行。利用这种网络管理体系,主动内核技术可以自动地探测网络的每一个计算机是否都安装了主动内核,是否都已经升级到了最新的版本,如果有一个计算机没有做到,主动内核就可以对这个计算机进行安装或升级。
第七节 并不神奇的嵌入式技术
所谓的嵌入技术,是针对微软视窗操作系统的体系而开发的一种技术,其应用限制在Office和IE中,和病毒防火墙不一样,它是一种比较标准的保护技术,更多的建立在微软操作系统提供的文件系统之上的开发接口,可以对Office和IE进行病毒保护。
办公上网一体化,是互联网给我们带来的最大便利之一,办公和上网也是电脑最 常用的功能。这也就不可避免地被〃面目狰狞〃的病毒制造者所利用,目前Office办公系列组件、IE浏览器成为他 们对他人电脑进行侵害的常见通道。7000多种的宏语言病毒已经严重危害到我们使用Office组件来提高办公效率。幸运的是,微软在视窗操作系统中,大量使用了了组件技术,使用组件可以使视窗操作系统的各个部分有机的组合起来并且协同工作。嵌入式技术就是在这种情况应运而生的。目前嵌入的对象主要针对Office和IE。
通过注册适当的组件服务,比如说在Office中,开发一个打开WORD/EXECEL文档前进行处理的组件,然后注册到视窗操作系统的体系中,这样,在用户使用Office打开文件之前,它能自动的调用注册的组件对此文件进行病毒扫描。若发现此文件已被病毒感染则弹出发现病毒对话框,交与用户进行处理。同样,IE的嵌入挂接也是如此,当用户在使用IE浏览器打开网页之前,它能自动调入预先注册的组件对网页上含有的Active代码进行病毒扫描,以保证用户不受那些恶意的Active代码侵害 

第八节 “劳拉”—神秘的微软办公软件文件格式
如果你经常玩游戏的话,你一定听说过《古墓丽影》的女主角劳拉,但是你肯定没有听说过一种叫做“劳拉”(LAOLA)的文件格式,“劳拉”文件格式是微软复合文档结构的二进制格式,本来按照微软的说法,这种结构应该叫做“复合文档二进制结构”(pound File Binary Format),但是微软没有公开关于“复合文档二进制结构”的有关内容,大量黑客通过对WORD、EXCEL文件的分析,以及对微软办公软件的跟踪,基本上了解了“复合文档二进制结构”的组成和其中的含义,但是整理出来的毕竟不是微软的官方文档,可能有和微软的定义不一致的地方,同时微软也有权改变这一结构,所以人们使用另外的名称:“劳拉”来描述这种结构。
分析“复合文档二进制结构”的初衷并不是为了杀病毒的需要,实际上在宏病毒没有出现之前,针对微软复合文档结构的分析就已经开始了,进行这种分析的根本目的是为了在其他操作系统下面,主要是Linux和其他开放源码的操作系统,能够开发出可以读写微软办公软件使用的文档,比如说WORD或者EXCEL文档的免费办公软件,比如说字处理或者电子数据表格软件。
“复合文档”是微软在引入的一种在文件内部存放结构化信息的方法,比如说我们写一篇文章,如果这篇文章没有任何格式信息和嵌入的图像,那么使用没有任何结构的文本格式就可以了,但是一篇完善的文章里面可能有不同的段落、每个段落可能有不同的格式、字体和颜色,段落之间可能还有插图,这样简单的无格式文本就无法满足需要了,所以需要在文件的内部存放很多结构,包括段落的文字、段落的字体、甚至段落本身的信息等等,针对这种需求,以及电子数据表、演示制作等软件的需要,微软开发了一种“文件中的文件系统”也就是“复合文档”结构。
在复合文档中,可以有很多目录,每个目录下面可以有子目录,目录和子目录中包含了“存储”,一个存储就相当于磁盘上的一个文件,整个复合文档就形成了一个类似于磁盘上的目录和文件所组成的树状结构。如果在视窗环境下使用复合文件,可以利用操作系统提供的功能对复合文件进行读写,就像读写通常的文件和目录一样,可以在复合文件内部列目录,可以打开一个指定的目录,可以读写其中的一个“存储”(文件)。但是在DOS或者其他的环境下,操作系统没有提供现成的读写复合文件的功能,要想实现在其他操作系统下读写复合文件,比如说在Linux下开发能够读写WORD文件的软件,或者能够在DOS环境下查杀宏病毒的软件,就必须对微软“复合文档”的二进制结构有非常清楚的了解。
当WORD宏病毒最早开始出现的时候,国内杀毒软件厂商无一例外的陷入了束手无策的状况,不像国外的大公司和微软有非常好的合作,可以得到微软的一些内部资料,国内厂商对于WORD文件的内部结构一无所知。为了对付这种病毒,当时厂商想出了两种方法:
第一种是使用WORD BASIC编写程序检测和清除病毒,实际上,WORD BASIC就是宏病毒本身使用的开发语言,开发人员利用WORD BASIC编写自动加载的一小段代码(从某种意义上来说,这也是一种病毒),打开任何WORD文件之前,首先检查其中有没有叫做“自动打开”,“自动保存”的宏存在,要是存在这些名字的宏就拒绝打开这个文档。
第二种更加简单,在分析了WORD文件的格式之后,开发人员很难发现这种文件的格式,所以采用了简单的查找/替换方式,在整个WORD文件中搜索字符串,比如说搜索名字叫做“AutoOpen”的字符串,如果发现了这个字符串则把它清除为空格,这样WORD打开这个文件的时候,就不会再自动的运行这个宏了。
这两种方式都存在很大的问题,第一种方法只能在WORD环境下运行,不启动WORD对病毒就没有任何办法。第二种方式的问题更大,这种没有搞清楚文件结构就进行病毒查杀是一种非常不负责的行为,首先会造成大量的病毒误报、漏报,把正常的WORD文件当成病毒,甚至如果写一篇关于宏病毒的文章,里面假设有这样一句话:“宏病毒里面经常包括了AutoOpen名字的宏”,采用这种方式查杀病毒之后,会发现“AutoOpen”这个单词不见了,我的天啊,这样也能叫杀病毒?至于杀过毒之后,造成WORD文件的数据损坏更是不胜枚举。以至于一些厂商在随后很长时间内,把“杀宏病毒不破坏文档”这个对杀毒软件的基本要求作为产品的重大技术突破反复宣传。
“劳拉”文件格式:所有使用“劳拉”文件格式的文件由512字节的数据块组成(你可以注意一下,所有的WORD、EXCEL、或者其他的Office文件大小都是512的倍数),数据块的序号从-1开始:
复合文档





序号为-1的块是整个文件的文件头块,存放了复合文件的一些整体信息,结构如下:

偏移量(十六进制)
大小(字节)
内容
0
8
复合文件标识(d0 cf 11 e0 a1 b1 1a e1)
2C
4
大块映象图的大小(块数)
30
4
目录链根的开始块序号
3C
4
小块映象图的开始块序号
4C
不确定
大块映象图使用的块的列表


在512字节的数据块基础上,复合文件中包括了两种最基本的结构:
第一种是由512字节的大块连接起来的大块链,如果对以文件分配表(FAT)为基础的文件系统熟悉的话,可以很容易的理解大块链的概念,只要知道一个大块链的开始块的序号,通过大块映象图,就可以找到这一条大块链的所有内容。一个典型的大块映象图如下:
   00200: fd ff ff ff  05 00 00 00  fe ff ff ff  04 00 00 00
   00210: 06 00 00 00  fe ff ff ff  07 00 00 00  08 00 00 00
   00220: 09 00 00 00  0a 00 00 00  0b 00 00 00  fe ff ff ff
   00230: ff ff ff ff  ff ff ff ff  ff ff ff ff  ff ff ff ff 
我们可以看到,如果一个大块链的开始块序号是0的话(该处的内容是5),那么这个大块链包括:序号为0的数据块、序号为5的数据块(该处的内容是7)、序号为7的数据块(该处的内容是9)、序号为9的数据块(该处的内容是0b)、序号为0b的数据块(该处的内容是…1,表示这是该链的最后一个数据块)。
对于比较小的结构,如果以512字节为单位的话会造成比较大的空间浪费,所以专门使用一个大块链来存放比较小的数据块,小于4096字节的数据结构使用小块链来表示,小块链的组成和寻址方法和大块链非常类似,唯一不同的是,小块链里面对小块的寻址不是在整个复合文件范围内的,而是在某一个特定的大块链范围内的,这个大块链的开始块序号在后面叙述。
目录链,目录链是复合文件最基本的数据链,描述了复合文件的目录结构信息。目录链的开始在头块中可以找到。目录链中包括了复合文件的目录信息,每一个目录项的大小是128字节,所以目录链的一个块可以包括4个目录项,第一个目录项是根目录项,名字叫做“根实体”(Root Entry),任何复合文件里面这都是第一个目录项。一个典型的根目录项如下:
00400: 52 00 6f 00  6f 00 74 00  20 00 45 00  6e 00 74 00   R o o t  E n t
00410: 72 00 79 00  00 00 00 00  00 00 00 00  00 00 00 00   r y 
00420: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 
00430: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 
00440: 16 00 05 00  ff ff ff ff  ff ff ff ff  03 00 00 00
00450: 00 09 02 00  00 00 00 00  c0 00 00 00  00 00 00 46
00460: 00 00 00 00  00 00 00 00  00 00 00 00  86 29 f6 1f
00470: ad 57 bb 01  03 00 00 00  00 0f 00 00  00 00 00 00
目录项结构的说明如下:
偏移量(十六进制)
大小(字节)
内容
0
40
目录项的名字(所以复合文件中名字最长不能超过40字节)
40
2
名字的长度
42
2
目录项的类型1是一个存储(文件),2是目录,3是根
44
4
前一个目录项
48
4
下一个目录项
4C
4
如果是目录,指向子目录项
74
4
所存储内容的开始块
78
4
所存储内容的大小
由于上面的数据结构不是来源于微软的官方文档,包括了很多猜测的成分,所以很多内容暂时无法断定其意义,有些结构的说明可能和微软的原意也不相符合,但是我们使用这个结构对微软的大量文档进行了分析,至今尚未发现有明显的错误存在。
在基本的“劳拉”文件结构的基础上,字处理文档、电子数据表文档具有不同的内部目录结构,下面是一个典型WORD文件的内部目录结构:
1。doc
——1Table:一些数据表
——pObj:通用的对象
——ObjectPool:对象池,是一个目录,包括WORD文件中嵌入的图像、声音或者其他对象
——WordDocument:实际的文字和格式化信息就存放在这里
——SummaryInforamtion:摘要信息
——DocumentSummaryInformation:其他的摘要信息
第九节 真的有未卜先知这回事吗?
反病毒软件本质上是一种亡羊补牢的软件,也就是说,只有某一段代码被编制出来之后,才能断定这段代码是不是病毒,才能谈到去检测或者清除这种病毒。
那么,未知病毒能够防范吗?如果纯粹从理论的意义上说,未知病毒是不可能完全被防范的,电脑如果做到能够防范未知病毒,那么人工智能的水平肯定已经远远超过了通过图灵试验的程度。
图灵试验,阿兰·图灵是著名的英国计算机科学家、数学家和哲学家,被公认为现代计算机科学的奠基人之一,1950年,图灵在他的著名论文《智能与机器》中提出了所谓〃图灵试验〃:测试者与另一屋子里的人或机器对话,若测试者无法辨别与之对话的是人还是机器,则认为机器具有了人的智能。。图灵试验现在经常作为衡量机器智能程度的一种思考方法而不是具体的测试手段,也就是说衡量机器是否具有智能的
返回目录 上一页 下一页 回到顶部 赞(0) 踩(0)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!