笫7章过滤驱动

笫7章过滤驱动

ID:44899543

大小:250.00 KB

页数:36页

时间:2019-11-02

笫7章过滤驱动_第1页
笫7章过滤驱动_第2页
笫7章过滤驱动_第3页
笫7章过滤驱动_第4页
笫7章过滤驱动_第5页
资源描述:

《笫7章过滤驱动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、笫7章:过滤驱动概述这章主要讲述文件过滤驱动和网络过滤驱动。过滤驱动主要用于在上层的软件和下层的硬件之间进行分层通信。通过栈、分层和过滤可以把硬件和软件通过任意数量的层连接起来,这种分层方法使得我们可以在一个现有的栈中插入自己的过滤器。在一个栈中插入我们自己的层是非常难被检测到的,但是却能对所有通过栈的通信进行完全的控制。当这个栈是控制着一张网卡或者一个磁盘的时候这就变得非常有用了。本章包括下面的内容。。过滤驱动的插入。文件系统过滤驱动。网络过滤驱动。过滤技术的一个综合实例过滤驱动的插入在一个驱动栈中插入一个驱动能够让我们的rootkit对操作系统进行一些特

2、殊的控制,这种技术被广泛地应用于杀毒软件、加密软件、和压缩软件中。事实上,它还有很多用途,驱动加载器为了能以正确地顺序加载所有有滤过驱动必须去组织好它们。注册表中HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices这个项指明了要加载的服务和驱动。如果你在注册表中查看这个项你会发现里面有好几百个服务和驱动条目,当使用本书提供的SCMLoader来加载一个驱动时也会在这里生成一个以MyDeviceDriver开头的项。到目前为止,SCMLoader要加载一个on-demand(SERVICE_DEMAND_ST

3、ART)类型的设备驱动需要执行"netstartMyDeviceDriver"命令才能成功加载。为了进行文件系统过滤,rootkit必须作为一个automatic(SERVICE_AUTO_START)类型的设备驱动被加载在"Filter"组里。因为on-demandloading比Autoloading更具有指导意义,所以在讲解时继续使用SERVICE_DEMAND_START和“netstartmydevicedriver”,但我们在本章的文件目录下提供了另一个新的SCMLoader(Wrox/Wiley)供大家下载,这个升级版的loader允许root

4、kit在启动的时候自动加载,应该用于最终发行版rootkkit的插入。当驱动自动加载的时候,加载的顺序由HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlServiceGroupOrderList的值来决定。如果你打开注册表查看这个值,你会看到这是一个REG_MULTI_SZ类型的值。(注:下面两张图是译者加入的)这里面包含了几十组的值。要进行文件系统过滤,必须要把一个过滤驱动插入到“FSFilterBottom”组的后面。要想进行更多的过滤,在“Filter”组后面插入自己的过滤驱动就行了。这样即使是

5、高级的网络过滤也没问题,因为TCP,UDP和RawIP这些驱动是在普通的驱动之前被加载的。虽然在本章里谈到的网络过滤驱动可以作为一个on-demand设备驱动被加载和卸载,但是我们的主要目的不是卸载。要注意的是,在卸载网络过滤驱动之前必须要保证所有在安装了该过滤驱动之后打开的网络连接都已经被关闭,这是因为网络过滤栈上任何一个过滤器都有可能引用了该网络过滤驱动,直接卸载该过滤驱动很可能会导致系统崩溃,因此在卸载笫7章的rootkit之前必须把所有在安装该rootkit之后打开的网络软件都关闭掉。另外,为了便于进行rotokit加载和卸载,本书剩下的代码例子将会

6、跳过(或注释掉)网络过滤驱动部分。文件系统过滤驱动文件系统过滤驱动可以插入到以“\DosDevices\X:\”作设备名的所有驱动或者其中的一个驱动中。其中X是目标设备所在的驱动器号。这种文件过滤驱动所使用的技术和网络过滤驱动稍有不同,网络过滤驱动可以使用IoAttachDevice函数来附加到“\Device\Tcp”,“\Device\Udp”或者“\Device\RawIP”上,而文件过滤驱动必须使用IoAttachDeviceToDeviceStack以保证能够正确地插入到设备栈中。要注意的是在版本比较老的DDK里,IoAttach

7、DeviceToDeviceStack会有一些BUG可能会导致系统崩溃,所以我们要尽量使用新版的IoAttachDeviceToDeviceStackSafe函数。在本书中,因为使用IoAttachDeviceToDeviceStack函数能减少在链接时产生“unknownexternalfunction”错误的可能性,所以本书代码使用了这个老版本的函数(虽然新版的函数在这里也以很好的工作),如果使用的是新版本的DKK来编译可以简单的把旧版本的函数注释掉然后把新版本的函数加进来。图7-1显示了文件系统过滤的结构。Figure7-1在正常情况下,文件过滤驱动会

8、附加到所有已经挂载的磁盘上,这就要求过滤器跟踪哪个新

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。