发明名称 无数字签名的Windows X64驱动程序加载方法
摘要 本发明公开了一种无数字签名的Windows X64驱动程序加载方法,用于解决现有无数字签名情况下的设备驱动程序加载的技术问题。技术方案是该方法通过修改Windows X64操作系统内部有关函数及其参数,使无数字签名的第三方设备驱动程序能够在Windows X64操作系统上加载运行,方便了第三方设备驱动程序的编程、调试、测试和验证。通过大量的实验验证,本发明使得无数字签名的第三方设备驱动程序能够稳定、可靠地加载运行在Windows X64操作系统上。
申请公布号 CN103440149A 申请公布日期 2013.12.11
申请号 CN201310389715.6 申请日期 2013.08.30
申请人 西北工业大学 发明人 蔡皖东;张智
分类号 G06F9/445(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 一种无数字签名的Windows X64驱动程序加载方法,其特征在于包括以下步骤:步骤一、关闭LOAD模式验证;该模式验证是在启动加载阶段由WINLOAD.EXE文件中Imgp ValidateImageHash函数来完成的;故从WINLOAD.EXE文件中找到Imgp ValidateImageHash函数,通过直接修改二进制代码,令Imgp ValidateImageHash函数的返回值为零;步骤二、关闭KERNEL模式验证;该模式验证是由NTOSKRNL.EXE文件中SepInitializeCodeIntegrity函数来完成的;故从NTOSKRNL.EXE文件中找到SepInitializeCodeIntegrity函数,通过打补丁方式,令SepInitializeCodeIntegrity函数的返回值为初始化完毕,跳过代码完整性检查初始化过程;步骤三、关闭PATCHGUARD;为了关闭PATCHGUARD功能,需要找到系统中的KiInitializePatchGuard函数的隐藏函数,通过打补丁方式,令KiInitializePatchGuard函数按安全模式初始化,即不开启动态内核保护功能;步骤四、校验值更新;由于WINLOAD.EXE和NTOSKRNL.EXE文件被修改,其文件的校验值发生了改变,与文件PE头中记录的校验值不相匹配,将会产生错误;因此,需要重新计算这两个文件的校验值,并用重新计算的这两个文件的校验值分别替换各自文件PE头中原来的校验值;步骤五、设置系统相关选项;除了对上述文件和函数进行修改外,还需要使用BCDEDIT工具来关闭操作系统的错误恢复和完整性检查选项;步骤六、设备驱动程序加载;将无数字签名的第三方设备驱动程序加载到Windows X64上运行,测试和检验设备驱动程序的功能以及系统的稳定性和可靠性。
地址 710072 陕西省西安市友谊西路127号