我尝试开发用于过滤特定数据包的NDIS lwf驱动程序。
我成功地运行了我在 windows 10 中开发的驱动程序,这是用于调试的测试模式。
我将窗口测试模式更改为正常模式,然后在不是测试模式的窗口中运行驱动程序。 但驱动程序未加载。
为了检查驱动程序,我在cmd.exe中运行脚本(exe)"sc查询ndis驱动程序"。 脚本(exe)返回退出代码577。
驱动程序是通过测试签名生成的。 并且我安装了驱动程序以在窗口驱动程序示例中的绑定视图示例中使用 netcfg API。
bindview 示例使用 SetupCopyOEMInf 函数和 netcfg 安装函数来安装网络驱动程序。我尝试使用SetupCopyOEMInf将我的NDIS lwf驱动程序(测试签名)文件复制到系统驱动程序(INF)文件夹。但是 SetupCopyOEMInf 返回 FALSE 和 GetLastError 返回0xe0000277。
我检查了 c:/window/INF 目录中的 setupapi 开发日志。 日志文件详细信息错误说明"驱动程序未签名数字签名"。
所以我强行复制了 c:/window/INF 目录中的驱动程序 inf 和 cat 文件。 然后我通过调用netcfg 安装函数安装了驱动程序。 使用上述方式安装的驱动程序通常在Windows 10中工作,这是测试模式和内核调试。 但是驱动程序在不是测试模式(是正常模式)的Windows 10中不起作用。
我有几个问题。
-
是否只有签署数字签名的 NDIS lwf(协议)驱动程序才能在不是测试模式的 Windows 10 中工作?
-
有没有办法在不是测试模式的 windows 10 中处理测试签名驱动程序?
-
有没有办法免费将数字签名签名到 NDIS lwf(协议)驱动程序?
- 只有签署数字签名的 NDIS lwf(协议) 驱动程序在不是测试模式的 Windows 10 中工作吗?
*答:是的,我们需要有正确的签名驱动程序才能在没有测试模式的情况下在 Windows 10 中运行。还需要签名 EV 证书(扩展验证证书)*
- 有没有办法在不是测试模式的 Windows 10 中处理测试签名驱动程序?
答:没有。对不起,没有。出于安全目的,Windows 严格禁止没有标志的驱动程序。
- 有没有办法免费对 NDIS lwf(协议) 驱动程序进行数字签名?
答:不可以,没有办法免费签署Windows驱动程序。特别是内核模式驱动程序。