按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
;つJ娇砂沧拔募低常↖FS),由可安装文件系统管理器(IFSManager)协调对文件系统和设备的访问,它接收以Win32API函数调用形式向系统发出的文件I/O请求,再将请求转给文件系统驱动程序FSD,由它调用低级别的IOS系统实现最终访问。每个文件IO调用都有一个特定的FSD函数与之对应,IFSManager负责完成由API到FSD的参数装配工作,在完成文件I/OAPI函数参数的装配之后转相应FSD执行之前,它会调用一个称为FileSystemApiHookFunction的Hooker函数。通过安装自己的Hooker函数,就可以截获系统内所有对文件I/O的API调用,并适时对相关文件进行病毒检查,从而实现实时监控的目的。
下面是一个使用VToolsD开发工具编写的实时监视Vxd的片段:
视窗NT和视窗2000/XP下的病毒防火墙
有两种方法可以达到这一目标:
一种是和Vxd技术非常类似的技术,在视窗NT/2000下,同样有着系统设备驱动程序,和视窗9x不一样的是,NT/2000下的设备驱动程序结构很规范,文件系统的设备驱动程序和其他设备的设备驱动程序是非常类似的,所以编写实时监视的驱动程序不需要特别的技术或者技巧,只要编写一个普通的输入输出系统设备就可以了。
另外一种是相对不那么标准的技术,我们知道,对文件系统的访问最后都是要通过Vxd进行的,但是在进行Vxd调用之前,会通过DLL的函数CreateFile等进行调用,如果修改CreateFile函数的地址为杀毒软件内部的某个地址,这样所有的文件系统调用都会首先通过杀毒软件的监视。
在视窗NT/2000/XP下病毒防火墙的技术难点主要包括:
* 是否能够适应大量并发访问的需要(NT核心是完全可重入的)。
* 是否能够处理不同权限的访问
* 是否能够在不登录的情况下实现实时监视。
第六节 主动内核,改动操作系统?
从本质上来说,主动内核技术和病毒防火墙技术没有根本的区别,都是将病毒防护从被动的检测发展到进行文件操作的时候,实时的进行反应。主动内核技术宣称自己能在操作系统和网络的内核中加入反病毒功能,使反病毒成为系统本身的底层模块,而不是一个系统外部的应用软件。任何现代操作系统都采用了某种形式的层次结构,Vxd或者其他一些设备驱动程序一般也被认为是操作系统的一部分。
主动内核技术,用通俗的说法:是从操作系统内核这一深度,给操作系统和网络系统本身打了一个补丁,而且是一个〃主动〃的补丁,这个补丁将从安全的角度对系统或网络进行管理和检查,对系统的漏洞进行修补;任何文件在进入系统之前,作为主动内核的反毒模块都将首先使用各种手段对文件进行检测处理。
据认为主动内核技术可以在源代码级将自己使用的反病毒技术嵌入操作系统内核,实际上,稍为理智的分析都可以得出结论,这种源代码级的对操作系统的修改是不可能的,如果安装一个反病毒软件,这个软件会使用自己编译的,加入反病毒功能代码的视窗程序替换你的视窗程序,你还有胆量安装这样一个杀毒软件吗?
可能主动内核技术真正的价值在于和一种全局性的网络管理体系,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文件的数据损坏更是不胜枚举。以至于一些厂商在随后很长时间内,把“杀宏病毒不破坏文档”这个对杀毒软件的基本要求作为产品的重大技术突破反复宣传。
“劳