《无数字签名的WINDOWSX64驱动程序加载方法.pdf》由会员分享,可在线阅读,更多相关《无数字签名的WINDOWSX64驱动程序加载方法.pdf(6页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103440149 A(43)申请公布日 2013.12.11CN103440149A*CN103440149A*(21)申请号 201310389715.6(22)申请日 2013.08.30G06F 9/445(2006.01)(71)申请人西北工业大学地址 710072 陕西省西安市友谊西路127号(72)发明人蔡皖东 张智(74)专利代理机构西北工业大学专利中心 61204代理人王鲜凯(54) 发明名称无数字签名的Windows X64驱动程序加载方法(57) 摘要本发明公开了一种无数字签名的Windows X64驱动程序加载方法,用于解决现有无数字签名情况下。
2、的设备驱动程序加载的技术问题。技术方案是该方法通过修改Windows X64操作系统内部有关函数及其参数,使无数字签名的第三方设备驱动程序能够在Windows X64操作系统上加载运行,方便了第三方设备驱动程序的编程、调试、测试和验证。通过大量的实验验证,本发明使得无数字签名的第三方设备驱动程序能够稳定、可靠地加载运行在Windows X64操作系统上。(51)Int.Cl.权利要求书1页 说明书3页 附图1页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书3页 附图1页(10)申请公布号 CN 103440149 ACN 103440149 A1/1页21.一种。
3、无数字签名的Windows X64驱动程序加载方法,其特征在于包括以下步骤:步骤一、关闭LOAD模式验证;该模式验证是在启动加载阶段由WINLOAD.EXE文件中Imgp ValidateImageHash函数来完成的;故从WINLOAD.EXE文件中找到Imgp ValidateImageHash函数,通过直接修改二进制代码,令Imgp ValidateImageHash函数的返回值为零;步骤二、关闭KERNEL模式验证;该模式验证是由NTOSKRNL.EXE文件中SepInitializeCodeIntegrity函数来完成的;故从NTOSKRNL.EXE文件中找到SepInitializ。
4、eCodeIntegrity函数,通过打补丁方式,令SepInitializeCodeIntegrity函数的返回值为初始化完毕,跳过代码完整性检查初始化过程;步骤三、关闭PATCHGUARD;为了关闭PATCHGUARD功能,需要找到系统中的KiInitializePatchGuard函数的隐藏函数,通过打补丁方式,令KiInitializePatchGuard函数按安全模式初始化,即不开启动态内核保护功能;步骤四、校验值更新;由于WINLOAD.EXE和NTOSKRNL.EXE文件被修改,其文件的校验值发生了改变,与文件PE头中记录的校验值不相匹配,将会产生错误;因此,需要重新计算这两个文。
5、件的校验值,并用重新计算的这两个文件的校验值分别替换各自文件PE头中原来的校验值;步骤五、设置系统相关选项;除了对上述文件和函数进行修改外,还需要使用BCDEDIT工具来关闭操作系统的错误恢复和完整性检查选项;步骤六、设备驱动程序加载;将无数字签名的第三方设备驱动程序加载到Windows X64上运行,测试和检验设备驱动程序的功能以及系统的稳定性和可靠性。权 利 要 求 书CN 103440149 A1/3页3无数字签名的 Windows X64 驱动程序加载方法 技术领域0001 本发明涉及一种Windows X64驱动程序加载方法,特别涉及一种无数字签名的Windows X64驱动程序加载。
6、方法。 背景技术0002 随着64位计算机硬件技术的发展和应用,64位计算机已经成为计算机系统的主流平台,不仅大多数的服务器系统采用了64位计算机平台,而且64位个人计算机系统也越来越普及。64位计算机是指计算机硬件和操作系统都是64位的,能够提供更高的计算性能和更快的处理速度。在64位个人计算机系统上,常用的64位操作系统有Windows7/64、Windows Vista/64等,简称Windows X64。 0003 Windows X64与32位Windows操作系统相比,其系统内部安全机制发生了较大的变化,设置了强制驱动程序签名机制等,要求第三方开发的设备驱动程序必须获得微软公司签发。
7、的数字证书,即数字签名,否则第三方设备驱动程序无法在Windows X64操作系统上加载运行。这种安全机制一方面是为了保障驱动程序安全性,防止驱动程序被恶意程序修改。另一方面也是一种市场垄断策略,第三方在Windows X64操作系统上开发设备驱动程序时必须得到微软公司签发的数字证书,并交纳不菲的费用。 0004 第三方在设备驱动程序开发阶段,需要在Windows X64操作系统上对设备驱动程序进行编程、调试、测试和验证。由于处于开发阶段的设备驱动程序是不可能得到微软公司签发的数字证书,因此也就无法将设备驱动程序加载在Windows X64操作系统上运行,对其进行编程、调试、测试和验证,给第三。
8、方开发设备驱动程序带来很大的困难。 发明内容0005 为了克服现有无数字签名情况下的设备驱动程序加载的不足,本发明提供一种无数字签名的Windows X64驱动程序加载方法。该方法通过修改Windows X64操作系统内部有关函数及其参数,使无数字签名的第三方设备驱动程序能够在Windows X64操作系统上加载运行,方便了第三方设备驱动程序的编程、调试、测试和验证。 0006 本发明解决其技术问题所采用的技术方案是:一种无数字签名的Windows X64驱动程序加载方法,其特点是包括以下步骤: 0007 步骤一、关闭LOAD模式验证。该模式验证是在启动加载阶段由WINLOAD.EXE文件中I。
9、mgp ValidateImageHash函数来完成的。故从WINLOAD.EXE文件中找到Imgp ValidateImageHash函数,通过直接修改二进制代码,令Imgp ValidateImageHash函数的返回值为零。 0008 步骤二、关闭KERNEL模式验证。该模式验证是由NTOSKRNL.EXE文件中SepInitializeCodeIntegrity函数来完成的。故从NTOSKRNL.EXE文件中找到SepInitializeCodeIntegrity函数,通过打补丁方式,令SepInitializeCodeIntegrity函数的返回值为初始化完毕,跳过代码完整性检查初始。
10、化过程。 说 明 书CN 103440149 A2/3页40009 步骤三、关闭PATCHGUARD。为了关闭PATCHGUARD功能,需要找到系统中的KiInitializePatchGuard函数的隐藏函数,通过打补丁方式,令KiInitializePatchGuard函数按安全模式初始化,即不开启动态内核保护功能。 0010 步骤四、校验值更新。由于WINLOAD.EXE和NTOSKRNL.EXE文件被修改,其文件的校验值发生了改变,与文件PE头中记录的校验值不相匹配,将会产生错误。因此,需要重新计算这两个文件的校验值,并用重新计算的这两个文件的校验值分别替换各自文件PE头中原来的校验值。
11、。 0011 步骤五、设置系统相关选项。除了对上述文件和函数进行修改外,还需要使用BCDEDIT工具来关闭操作系统的错误恢复和完整性检查选项。 0012 步骤六、设备驱动程序加载。将无数字签名的第三方设备驱动程序加载到Windows X64上运行,测试和检验设备驱动程序的功能以及系统的稳定性和可靠性。 0013 本发明的有益效果是:该方法通过修改Windows X64操作系统内部有关函数及其参数,使无数字签名的第三方设备驱动程序能够在Windows X64操作系统上加载运行,方便了第三方设备驱动程序的编程、调试、测试和验证。通过大量的实验验证,本发明使得无数字签名的第三方设备驱动程序能够稳定、。
12、可靠地加载运行在Windows X64操作系统上。 0014 下面结合附图和实施例对本发明作详细说明。 附图说明0015 图1是本发明方法的流程图。 具体实施方式0016 参照图1。本发明无数字签名的Windows X64驱动程序加载方法的具体步骤如下。 0017 (1)关闭LOAD模式验证。该模式验证是在启动加载阶段由WINLOAD.EXE文件中Imgp ValidateImageHash函数来完成的。为了关闭LOAD模式验证,需要从WINLOAD.EXE文件中找到该函数,通过直接修改二进制代码,令该函数的返回值为零。 0018 (2)关闭KERNEL模式验证。该模式验证是由NTOSKRNL。
13、.EXE文件中SepInitializeCodeIntegrity函数来完成的。为了关闭KERNEL模式验证,需要从NTOSKRNL.EXE文件中找到该函数,通过打补丁方式,令该函数的返回值为初始化完毕,跳过代码完整性检查初始化过程。 0019 (3)关闭PATCHGUARD。为了关闭PATCHGUARD功能,需要找到系统中的KiInitializePatchGuard函数的隐藏函数,通过打补丁方式,令该函数按安全模式初始化,即不开启动态内核保护功能。 0020 (4)校验值更新。由于WINLOAD.EXE和NTOSKRNL.EXE文件被修改,其文件的校验值发生了改变,与文件PE头中记录的校验。
14、值不相匹配,将会产生错误。因此,需要重新计算这两个文件的校验值,并用它们分别替换各自文件PE头中原来的校验值。 0021 (5)设置系统相关选项。除了对上述文件和函数进行修改外,还需要使用BCDEDIT工具来关闭操作系统的错误恢复和完整性检查选项。 0022 (6)设备驱动程序加载。将无数字签名的第三方设备驱动程序加载到Windows X64上运行,测试和检验设备驱动程序的功能以及系统的稳定性和可靠性。 说 明 书CN 103440149 A3/3页50023 在Windows X64操作系统上启动该软件工具,显示出用户操作界面。 0024 在用户操作界面上,点击“开始”按钮后,软件工具自动执。
15、行如下操作: 0025 a)找到WINLOAD.EXE文件中的Imgp ValidateImageHash函数并修改二进制代码,令该函数的返回值为零。 0026 b)找到NTOSKRNL.EXE文件的SepInitializeCodeIntegrity函数并安装相应的补丁程序,令该函数的返回值为初始化完毕,跳过代码完整性检查初始化过程。 0027 c)找到系统中的KiInitializePatchGuard函数的隐藏函数并安装相应的补丁程序,令该函数按安全模式初始化,不开启动态内核保护功能。 0028 d)计算WINLOAD.EXE和TOSKRNL.EXE文件的校验值,并找到各自文件PE头中的相应位置,分别替换原来的校验值。 0029 e)自动加载BCDEDIT工具,利用BCDEDIT工具来关闭操作系统的错误恢复和完整性检查选项。 0030 在用户操作界面上,点击“退出”按钮,退出软件工具。 0031 在Windows X64上加载运行无数字签名的第三方设备驱动程序,测试和检验设备驱动程序的功能以及系统的稳定性和可靠性。 说 明 书CN 103440149 A1/1页6图1说 明 书 附 图CN 103440149 A。