CN101236498A - 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法 - Google Patents

一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法 Download PDF

Info

Publication number
CN101236498A
CN101236498A CNA2007101198109A CN200710119810A CN101236498A CN 101236498 A CN101236498 A CN 101236498A CN A2007101198109 A CNA2007101198109 A CN A2007101198109A CN 200710119810 A CN200710119810 A CN 200710119810A CN 101236498 A CN101236498 A CN 101236498A
Authority
CN
China
Prior art keywords
kernel driver
pci card
operating system
windows operating
hard disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101198109A
Other languages
English (en)
Other versions
CN101236498B (zh
Inventor
谭毓安
王佐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN2007101198109A priority Critical patent/CN101236498B/zh
Publication of CN101236498A publication Critical patent/CN101236498A/zh
Application granted granted Critical
Publication of CN101236498B publication Critical patent/CN101236498B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及计算机安全领域,具体的说是提供了一种在Windows操作系统中嵌入内核驱动程序的方法。本发明包括一个PCI卡,一段存放在PCI卡扩展ROM映像中的加载程序,一段存放在PCI卡非扩展ROM的用于示范的内核驱动程序。当计算机BIOS执行的自检操作检测到PCI卡具有扩展ROM时,将扩展ROM中的映像读入内存C0000H~DFFFFH中的某一个区域,然后作一个远程调用,执行映像中的加载程序。加载程序通过修改内存中的数据把用于示范的内核驱动程序嵌入Windows操作系统。本发明设计新颖,在启动过程中将内核驱动程序嵌入Windows操作系统,不需要复制内核驱动程序到硬盘上,也不需要修改硬盘上的注册表;具有隐蔽性,不需要在硬盘上保存内核驱动程序。

Description

一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法
技术领域
本发明涉及计算机安全领域,具体的说是提供了一种在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所示。

Claims (3)

1. 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法,其特征在于:包括一个PCI卡,一段存放在PCI卡扩展ROM映像中的加载程序,一段存放在PCI卡非扩展ROM的用于示范的内核驱动程序;当计算机BIOS执行的自检操作检测到PCI卡具有扩展ROM时,将扩展ROM中的映像读入内存C0000H~DFFFFH中的某一个区域,然后作一个远程调用,执行映像中的加载程序;加载程序通过修改INT13H的中断服务程序来监控计算机对硬盘的读写;当Windows操作系统通过INT13H来读取注册表时,加载程序调用原始的INT13H中断服务程序读取硬盘上的注册表到内存,并在内存中修改读取的内容,让Windows操作系统加载一个硬盘上并不存在的内核驱动程序;当Windows操作系统通过INT13H来读取该内核驱动程序时,加载程序把读操作重定向到PCI卡,读取存放在PCI卡非扩展ROM的用于示范的内核驱动程序,从而把用于示范的内核驱动程序嵌入Windows操作系统。
2. 如权利要求1所述的一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法,其特征在于:加载程序通过修改内存中的数据将用于示范的内核驱动程序嵌入Windows操作系统,不需要改动硬盘上的数据。
3. 如权利要求1所述的一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法,其特征在于:用于示范的内核驱动程序的功能可以根据具体需求而改变。
CN2007101198109A 2007-07-31 2007-07-31 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法 Expired - Fee Related CN101236498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101198109A CN101236498B (zh) 2007-07-31 2007-07-31 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101198109A CN101236498B (zh) 2007-07-31 2007-07-31 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法

Publications (2)

Publication Number Publication Date
CN101236498A true CN101236498A (zh) 2008-08-06
CN101236498B CN101236498B (zh) 2011-10-19

Family

ID=39920144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101198109A Expired - Fee Related CN101236498B (zh) 2007-07-31 2007-07-31 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法

Country Status (1)

Country Link
CN (1) CN101236498B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477600B (zh) * 2009-01-20 2010-06-09 中国人民解放军保密委员会技术安全研究所 一种用于软件自动防护系统的方法及安全卡
CN108829449A (zh) * 2018-06-21 2018-11-16 郑州云海信息技术有限公司 一种bios启动操作系统的方法、装置、设备及介质
CN109669727A (zh) * 2018-12-12 2019-04-23 浪潮(北京)电子信息产业有限公司 一种服务器的配置方法、系统及相关组件
CN110221867A (zh) * 2019-05-31 2019-09-10 湖北三江航天万峰科技发展有限公司 一种xp系统下脉冲i/o功能卡通信驱动系统及方法
CN113094107A (zh) * 2021-03-18 2021-07-09 深圳市道通智能汽车有限公司 数据保护方法、装置、设备及计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319292B1 (ko) * 1999-12-02 2002-01-05 윤종용 빠른 부팅 속도를 갖는 컴퓨터 시스템 및 그 방법
CN1648862A (zh) * 2005-02-01 2005-08-03 苏州超锐微电子有限公司 一种通过pci扩展rom实现网络功能的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477600B (zh) * 2009-01-20 2010-06-09 中国人民解放军保密委员会技术安全研究所 一种用于软件自动防护系统的方法及安全卡
CN108829449A (zh) * 2018-06-21 2018-11-16 郑州云海信息技术有限公司 一种bios启动操作系统的方法、装置、设备及介质
CN108829449B (zh) * 2018-06-21 2021-08-31 郑州云海信息技术有限公司 一种bios启动操作系统的方法、装置、设备及介质
CN109669727A (zh) * 2018-12-12 2019-04-23 浪潮(北京)电子信息产业有限公司 一种服务器的配置方法、系统及相关组件
CN109669727B (zh) * 2018-12-12 2022-04-22 浪潮(北京)电子信息产业有限公司 一种服务器的配置方法、系统及相关组件
CN110221867A (zh) * 2019-05-31 2019-09-10 湖北三江航天万峰科技发展有限公司 一种xp系统下脉冲i/o功能卡通信驱动系统及方法
CN113094107A (zh) * 2021-03-18 2021-07-09 深圳市道通智能汽车有限公司 数据保护方法、装置、设备及计算机存储介质
CN113094107B (zh) * 2021-03-18 2023-12-22 深圳市塞防科技有限公司 数据保护方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN101236498B (zh) 2011-10-19

Similar Documents

Publication Publication Date Title
CN109558211B (zh) 保护可信应用与普通应用的交互完整性和保密性的方法
JP4916576B2 (ja) マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
CN1029336C (zh) 保护个人计算机中系统应用程序的装置
CN100507850C (zh) 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法
US8839228B2 (en) System and method for updating an offline virtual machine
US6915420B2 (en) Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation
US8489552B1 (en) Generic granular restore of application data from a volume image backup
US8286158B2 (en) Method and system for installing portable executable applications
US20080091874A1 (en) System and method for loading programs from hdd independent of operating system
CN109478135A (zh) 优化的uefi重新引导过程
US20090019437A1 (en) Application management and execution system and method thereof
CN101297280B (zh) 隔离扩展和设备驱动程序的配置
CN1617101A (zh) 操作系统资源保护
CN101236498B (zh) 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法
CN101876909A (zh) 计算机虚拟化中本地实现物理到虚拟的方法
CN100514305C (zh) 实现操作系统安全控制的系统及方法
CN101477600B (zh) 一种用于软件自动防护系统的方法及安全卡
CN101373457B (zh) Windows环境下一种基于USB设备的硬盘写保护锁的方法
CN112219202A (zh) 用于客户操作系统的存储器分配
CN101226494A (zh) 一种计算机系统的备份和恢复的方法
CN101236533B (zh) Windows环境下一种基于PCI卡实现硬盘写保护锁的方法
CN101236500B (zh) 一种借助光盘启动在Windows操作系统中嵌入内核驱动程序的方法
CN115422554A (zh) 请求处理方法、编译方法和可信计算系统
CN100424652C (zh) 一种基于嵌入式操作系统的硬盘自恢复保护方法
CN108563491B (zh) 一种基于虚拟机的自省自动化管理、配置与自省方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111019

Termination date: 20120731