一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法

文档序号:6610110阅读:357来源:国知局
专利名称:一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法
技术领域
本发明涉及计算机安全领域,具体的说是提供了一种在Windows操作系统中 嵌入内核驱动程序的方法。
背景技术
将内核驱动程序嵌入Windows操作系统的普遍做法是通过安装程序把内核驱 动程序拷贝到系统目录下并且修改注册表。这种方法修改了注册表和文件系统, 即使以后从注册表中和文件系统中删除这些修改,但是本地硬盘仍然会保留修改 过的痕迹;拷贝驱动程序和修改注册表会覆盖硬盘上原有扇区中的数据,造成硬 盘上数据的改变。在计算机犯罪取证等应用场合,需要把内核驱动程序嵌入 Windows操作系统中以完成某些特定功能,但硬盘上的数据不允许被修改。所以, 我们需要一种不用修改硬盘扇区数据就能把内核驱动程序嵌入Windows操作系 统的方法。发明内容本发明的目的在于提供一种在Windows操作系统中嵌入内核驱动程序的方法。本发明的技术方案是包括一个USB设备, 一段存放在USB设备0扇区的加载程序, 一段存放在 USB设备隐藏扇区的用于示范的内核驱动程序;当计算机从USB设备启动时,BIOS 将加载程序读入内存执行;加载程序通过修改INT13H的中断服务程序来监控计 算机对硬盘的读写;当Windows操作系统通过INT13H来读取注册表时,加载程 序调用原始的INT13H中断服务程序读取硬盘上的注册表到内存,并在内存中修 改读取的内容,让Windows操作系统加载一个硬盘上并不存在的内核驱动程序; 当Windows操作系统通过INT13H来读取该内核驱动程序时,加载程序把读操作重定向到USB设备,读取存放在USB设备隐藏扇区的用于示范的内核驱动程序, 从而把用于示范的内核驱动程序嵌入Windows操作系统。加载程序通过修改内存中的数据将用于示范的内核驱动程序嵌入Windows 操作系统,不需要改动硬盘上的数据。用于示范的内核驱动程序的功能可以根据具体需求而改变。当计算机从USB设备启动时,BIOS把存放在USB设备0扇区的加载程序读入内 存并执行。加载程序通过修改INT13H的中断服务程序来监控计算机对目标硬盘的 读写。加载程序完成修改后,把硬盘0扇区的内容读入内存0000: 7C00并执行, 从硬盘上启动Windows操作系统。在随后的启动过程中,硬盘上的Windows引导程 序(Osloader. exe)通过INT13H读取注册表信息和文件系统信息。加载程序监测到 引导程序对注册表的读写,调用原始的INT13H中断服务程序读取硬盘上的注册表 到内存,并在内存中修改读取的内容,让引导程序加载一个硬盘上并不存在的内 核驱动程序。当引导程序通过INT13H来读取该内核驱动程序时,加载程序把读操 作重定向到USB设备,读取存放在USB设备隐藏扇区上的用于示范的内核驱动程 序。至此,引导程序获得了用于示范的内核驱动程序的内容,并根据注册表的指 示将它装入Windows操作系统。用于示范的内核驱动程序工作在Windows操作系统 内核比一般的应用程序拥有更高的权限,其功能可以根据具体需求而改变。例如, 用于示范的内核驱动程序嵌入网络驱动层次监控该计算机处理的网络数据,或者 嵌入文件系统对某类型的文件进行加密和解密等等。本发明的有益效果是1) 设计新颖。在启动过程中将内核驱动程序嵌入Windows操作系统,不需要 复制内核驱动程序到硬盘上,也不需要修改硬盘上的注册表。2) 具有隐蔽性。不需要在硬盘上保存内核驱动程序。


图1—USB设备扇区的使用示意图; 图2—从USB启动的工作流程图。
具体实施方式
下面结合附图和具体实施方式
对本发明作进一步详细描述。本发明不仅限于 以下实施例,凡是利用本发明的设计思路,做一些简单变化的设计都应进入本发 明的保护范围之内。USB设备作为加载程序和用于示范的内核驱动程序的载体,如图l。加载程序 存放在USB设备的O扇区,用于示范的内核驱动程序存放在USB设备的隐藏扇区。 USB设备进行普通的数据拷贝使用正常分区,即图1中USB数据区。Windows操作系统的内核驱动程序分为总线驱动程序,功能驱动程序,过滤 驱动程序几类。总线驱动程序具有负责枚举总线上连接设备,如USB总线驱动程 序(usbhub. sys) , PCI总线驱动程序(pci. sys); Windows也支持虚拟总线驱动程 序用于管理虚拟设备。功能驱动程序完成某类设备的功能,如磁盘驱动程序 (disk.sys)等。过滤驱动程序一般辅助功能驱动程序完成某些特殊的功能,比如 分区管理程序(partmgr. sys)等。前两类驱动程序一般由Windows操作系统提供, 在Windows操作系统源代码没有公开的情况下很难被修改;然而,Windows操作 系统允许开发者嵌入过滤驱动程序来该变功能驱动程序的某些行为。以下示范把 内核驱动程序(demon, sys)作为磁盘存储过滤驱动程序嵌入Windows操作系统。Windwos操作系统启动时需要很多初始化数据,这些数据保存在注册表中。 系统启动时,引导程序读取注册表来完成初始化操作。加载程序监控引导程序对 注册表和文件系统的读操作,在内存中修改引导程序读取的数据。HKEY—L0CAL—MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E9 67-E325-11CE-BFC1-08002BE10318l中U卯erFilters键指示磁盘存储驱动程序 的层次顺序PartMgr. sys, Diskperf sys。其中Diskperf sys为Windows 2000 独有。这里我们需要将内存中的UpperFilters键值进行修改,层次顺序变为 Demon, sys, Par憶gr. sys, Diskperf. sys。除此之外,我们还需要在内存中的 HKEY_L0CAL—MACHINE\SYSTEM\CurrentControlSet\Services键下面增加Demon 键,且在HKEY—LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Demon键 下增加Start, Group等键值并且赋予相应的值。其中Start=0表示Demon, sys 在计算机启动时装入。对内存中注册表数据的修改生效后,引导程序需要从文件 系统获取Demon, sys文件的信息。加载程序截获引导程序对SYSTEM32\DRIVERS 目录信息的访问,在内存中增加Demon, sys的信息,如文件大小、文件位置等。当引导程序根据这些信息读取Demon, sys (Demon, sys在硬盘上并不存在)时, 加载程序把读操作且重定向到USB设备,读取存放在USB设备隐藏扇区的 Demon, sys。至此,引导程序获得了 Demon, sys的内容,并根据注册表的指示将 Demon, sys装入Windows操作系统,如图2所示。
权利要求
1. 一种借助USB启动在Windows操作系统中嵌入内核驱动程序的方法,其特征在于包括一个USB设备,一段存放在USB设备0扇区的加载程序,一段存放在USB设备隐藏扇区的用于示范的内核驱动程序;当计算机从USB设备启动时,BIOS将加载程序读入内存执行;加载程序通过修改INT13H的中断服务程序来监控计算机对硬盘的读写;当Windows操作系统通过INT13H来读取注册表时,加载程序调用原始的INT13H中断服务程序读取硬盘上的注册表到内存,并在内存中修改读取的内容,让Windows操作系统加载一个硬盘上并不存在的内核驱动程序;当Windows操作系统通过INT13H来读取该内核驱动程序时,加载程序把读操作重定向到USB设备,读取存放在USB设备隐藏扇区的用于示范的内核驱动程序,从而把用于示范的内核驱动程序嵌入Windows操作系统。
2. 如权利要求1所述的一种借助USB启动在Windows操作系统中嵌入内 核驱动程序的方法,其特征在于加载程序通过修改内存中的数据将用于示范的 内核驱动程序嵌入Windows操作系统,不需要改动硬盘上的数据。
3. 如权利要求1所述的一种借助USB启动在Windows操作系统中嵌入内 核驱动程序的方法,其特征在于用于示范的内核驱动程序的功能可以根据具体 需求而改变。
全文摘要
本发明涉及计算机安全领域,具体的说是提供了一种在Windows操作系统中嵌入内核驱动程序的方法。本发明包括一个USB设备,一段存放在USB设备O扇区的加载程序,一段存放在USB设备隐藏扇区的用于示范的内核驱动程序;当计算机从USB设备启动时,BIOS将加载程序读入内存执行。加载程序通过修改内存中的数据把用于示范的内核驱动程序嵌入Windows操作系统。本发明设计新颖,在启动过程中将内核驱动程序嵌入Windows操作系统,不需要复制内核驱动程序到硬盘上,也不需要修改硬盘上的注册表;具有隐蔽性,不需要在硬盘上保存内核驱动程序。
文档编号G06F21/00GK101236499SQ20071011981
公开日2008年8月6日 申请日期2007年7月31日 优先权日2007年7月31日
发明者佐 王, 谭毓安 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1