法律状态公告日
法律状态信息
法律状态
2013-09-18
未缴年费专利权终止 IPC(主分类):G06F9/445 授权公告日:20111019 终止日期:20120731 申请日:20070731
专利权的终止
2011-10-19
授权
授权
2008-10-01
实质审查的生效
实质审查的生效
2008-08-06
公开
公开
技术领域
本发明涉及计算机安全领域,具体的说是提供了一种在Windows操作系统中嵌入内核驱动程序的方法。
背景技术
将内核驱动程序嵌入Windows操作系统的普遍做法是通过安装程序把内核驱动程序拷贝到系统目录下并且修改注册表。这种方法修改了注册表和文件系统,即使以后从注册表中和文件系统中删除这些修改,但是本地硬盘仍然会保留修改过的痕迹;拷贝驱动程序和修改注册表会覆盖硬盘上原有扇区中的数据,造成硬盘上数据的改变。在计算机犯罪取证等应用场合,需要把内核驱动程序嵌入Windows操作系统中以完成某些特定功能,但硬盘上的数据不允许被修改。所以,我们需要一种不用修改硬盘扇区数据就能把内核驱动程序嵌入Windows操作系统的方法。
发明内容
本发明的目的在于提供一种在Windows操作系统中嵌入内核驱动程序的方法。
本发明的技术方案是:
本发明包括一个PCI卡,一段存放在PCI卡扩展ROM映像中的加载程序,一段存放在PCI卡非扩展ROM的用于示范的内核驱动程序;当计算机BIOS执行的自检操作检测到PCI卡具有扩展ROM时,将扩展ROM中的映像读入内存COOOOH~DFFFFH中的某一个区域,然后作一个远程调用,执行映像中的加载程序;加载程序通过修改INT13H的中断服务程序来监控计算机对硬盘的读写;当Windows操作系统通过INT13H来读取注册表时,加载程序调用原始的INT13H中断服务程序读取硬盘上的注册表到内存,并在内存中修改读取的内容,让Windows操作系统加载一个硬盘上并不存在的内核驱动程序;当Windows操作系统通过INT13H来读取该内核驱动程序时,加载程序把读操作重定向到PCI卡,读取存放在PCI卡非扩展ROM的用于示范的内核驱动程序,从而把用于示范的内核驱动程序嵌入Windows操作系统。
加载程序通过修改内存中的数据将用于示范的内核驱动程序嵌入Windows操作系统,不需要改动硬盘上的数据。
用于示范的内核驱动程序的功能可以根据具体需求而改变。
当计算机从PCI卡启动时,BIOS把存放在扩展ROM的映像读入内存COOOOH~DFFFFH中的某一个区域,然后作一个远程调用,执行映像中的加载程序。加载程序通过修改INT13H的中断服务程序来监控计算机对目标硬盘的读写。加载程序完成修改后,把硬盘0扇区的内容读入内存0000:7C00并执行,从硬盘上启动Windows操作系统。在随后的启动过程中,硬盘上的Windows引导程序(Osloader.exe)通过INT13H读取注册表信息和文件系统信息。加载程序监测到引导程序对注册表的读写,调用原始的INT13H中断服务程序读取硬盘上的注册表到内存,并在内存中修改读取的内容,让引导程序加载一个硬盘上并不存在的内核驱动程序。当引导程序通过INT13H来读取该内核驱动程序时,加载程序把读操作重定向到PCI卡,读取存放在PCI卡非扩展ROM的用于示范的内核驱动程序。至此,引导程序获得了用于示范的内核驱动程序的内容,并根据注册表的指示将它装入Windows操作系统。用于示范的内核驱动程序工作在Windows操作系统内核比一般的应用程序拥有更高的权限,其功能可以根据具体需求而改变。例如,用于示范的内核驱动程序嵌入网络驱动层次监控该计算机处理的网络数据,或者嵌入文件系统对某类型的文件进行加密和解密等等。
本发明的有益效果是:
1)设计新颖。在启动过程中将内核驱动程序嵌入Windows操作系统,不需要复制内核驱动程序到硬盘上,也不需要修改硬盘上的注册表。
2)具有隐蔽性。不需要在硬盘上保存内核驱动程序。
附图说明
图1-PCI卡存储空间的使用示意图;
图2-从PCI卡启动的工作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。本发明不仅限于以下实施例,凡是利用本发明的设计思路,做一些简单变化的设计都应进入本发明的保护范围之内。
PCI卡作为加载程序和用于示范的内核驱动程序的载体,如图1。加载程序存放在PCI卡扩展ROM的映像中,用于示范的内核驱动程序存放在PCI卡的非扩展ROM中。
Windows操作系统的内核驱动程序分为总线驱动程序,功能驱动程序,过滤驱动程序几类。总线驱动程序具有负责枚举总线上连接设备,如USB总线驱动程序(usbhub.sys),PCI总线驱动程序(pci.sys);Windows也支持虚拟总线驱动程序用于管理虚拟设备。功能驱动程序完成某类设备的功能,如磁盘驱动程序(disk.sys)等。过滤驱动程序一般辅助功能驱动程序完成某些特殊的功能,比如分区管理程序(partmgr.sys)等。前两类驱动程序一般由Windows操作系统提供,在Windows操作系统源代码没有公开的情况下很难被修改;然而,Windows操作系统允许开发者嵌入过滤驱动程序来该变功能驱动程序的某些行为。以下示范把内核驱动程序(demon.sys)作为磁盘存储过滤驱动程序嵌入Windows操作系统。
Windwos操作系统启动时需要很多初始化数据,这些数据保存在注册表中。系统启动时,引导程序读取注册表来完成初始化操作。加载程序监控引导程序对注册表和文件系统的读操作,在内存中修改引导程序读取的数据。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}中UpperFilters键指示磁盘存储驱动程序的层次顺序:PartMgr.sys,Diskperf.sys。其中Diskperf.sys为Windows 2000独有。这里我们需要将内存中的UpperFilters键值进行修改,层次顺序变为:Demon.sys,PartMgr.sys,Diskperf.sys。除此之外,我们还需要在内存中的HKEY_LOCAL_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在硬盘上并不存在)时,加载程序把读操作且重定向到PCI卡,读取存放在PCI卡非扩展ROM的Demon.sys。至此,引导程序获得了Demon.sys的内容,并根据注册表的指示将Demon.sys装入Windows操作系统,如图2所示。
机译: 嵌入式通用集成卡中的配置文件备份方法,嵌入式通用集成卡,外部实体,备份设备以及一种能够在嵌入式通用集成卡中安全存储配置文件的系统
机译: 用于混凝土结构的钢筋,包括大量嵌入在连续基体固化物中的平行纤维,由至少一个光束束形成,具有许多平行纤维,其中每根钢筋的至少一部分表面在加工之前或过程中发生了变形借助于一种或多种弹性或非弹性材料的线束固化基体的阶段及其制造方法。
机译: 借助于一种液体的图像处理方法,该液体由处理容器中的特殊设备启动