Windows 内核驱动签名问题集锦
近期针对windows 内核驱动程序数字签名后总结了系列情况,其中各种驱动实现的功能都不一样,而且开发的文件也都各有不同。所以在签名后往系统上安装都出现各种各样的情况。以下举出目前碰到过的案例:欢迎拍砖!
注:一般驱动开发里面有包含了如“.sys”、“.dll”、“.inf”等文件。有的是只有“.sys”文件。那么这其中就分为两种情况了。
1:保证驱动开发时候各自文件都有统一存在目录中,因为inf文件是做为记载驱动中相应的文件信息和驱动间调用、引用其它文件的信息。然后这个inf文件也是为接下来做驱动签名所需要转换的文件。
比如:您的驱动中如果有inf此文件,那么你就需要把这个inf文件通过微软提供的相应工具将其转换为“.cat”文件。
转换工具如下:http://www.wosign.com/download/inf2cat.msi
微软参考指南:https://msdn.microsoft.com/zh-SG/library/ff547089
2:建议您的驱动是需要在多少位数的系统下安装运行的就到相应的系统环境下去编译然后在进行签名(例如:有win 7 32、win 7 64、win8 64等系统)。因为不同环境下编译出来的驱动会不一样,同时编译后在通过微软的SignTool工具在不同系统环境下签名后也会不一样。
案例1:用户开发的驱动在win 7 64下通过SignTool签名任何一个win 7 64系统都可以正常安装加载。唯独win 8.1 64系统安装不了。最终重新编译后把签名工具拿到win 8.1系统上去签名该驱动,最终成果安装加载。
3:类似碰到过形形色色的驱动签名错误如下,同时也集合了相应的检测解决方案:
案例1:
解决办法:检查签名方法是否正确。按正确的流程重新签名测试。
案例2:
在inf转换cat的过程中
解决办法:转换时候inf中有引用其他文件路径的话。必须要对应的放置相应路径,否则转换时候检测不到路径会提示错误。
WoSign Windiws内核代码签名证书:
( WoSign Code SigningCertificate for Windows Kernel Signing)使得软件开发者能对其开发的 Windows 内核软件代码进行数字签名,包括Windows Vista,Windows 7, Windows 2008 server 等内核模式代码(硬件驱动、系统文件、杀毒软件等)。不仅能保证内核软件能在Windows操作系统启动时加载的驱动软件,而且确保用户通过互联网下载时能确信此代码没有被
非法篡改和来源可信,从而保护了代码的完整性、保护了用户不会被病毒、恶意代码和间谍软件所侵害,当然也就保护了软件开发商的利益,使得软件开发商能安全地快速地通过网络发布软件。