发明名称 |
无数字签名的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号 |