我尝试开发用于过滤特定数据包的NDIS lwf驱动程序。
我成功运行了在Windows 10中开发的驱动程序,该驱动程序是用于调试的测试模式。
我将窗口测试模式更改为普通模式,然后在非测试模式的窗口中运行驱动程序。但未加载驱动程序。
要检查驱动程序,我在cmd.exe中运行脚本(exe)“ sc query ndis driver”。脚本(exe)返回退出代码577。
驱动程序是通过测试签名构建的。并且我在窗口驱动程序样本的bindview样本中安装了驱动程序以使用netcfg API。
bindview示例使用SetupCopyOEMInf函数和netcfg Install函数来安装网络驱动程序。我尝试使用SetupCopyOEMInf将NDIS lwf驱动程序(测试符号)文件复制到系统驱动程序(INF)文件夹中。但是SetupCopyOEMInf返回FALSE,而GetLastError返回0xe0000277。
我检查了c:/ window / INF目录中的setupapi开发日志。日志文件详细信息错误说明“驱动程序未签名数字签名”。
所以我强行将驱动程序inf和cat文件复制到c:/ window / INF目录中。然后我通过调用netcfg Install函数安装了驱动程序。使用上述方式安装的驱动程序在Windows 10(测试模式和内核调试)中正常工作。但是驱动程序无法在非测试模式(正常模式)的Windows 10中工作。
我有几个问题。
只有在非测试模式的Windows 10中对数字签名进行签名的NDIS lwf(协议)驱动程序可以工作吗?
是否可以在非测试模式的Windows 10中使用测试签名驱动程序?
是否可以免费将数字签名签名到NDIS lwf(协议)驱动程序?
答案 0 :(得分:1)
* A:是的,我们需要具有正确的签名驱动程序才能在Windows 10中运行而无需测试模式。此外,还需要签署EV证书(扩展验证证书)*
A:否。抱歉,没有。 Windows出于安全目的严格禁止使用无符号的驱动程序。
A:不能。没有免费的Windows驱动程序签名方法。尤其是内核模式驱动程序。