Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
驱动程序代理以避免在Windows上重复代码签名_Windows_Driver_Code Signing_Wdm - Fatal编程技术网

驱动程序代理以避免在Windows上重复代码签名

驱动程序代理以避免在Windows上重复代码签名,windows,driver,code-signing,wdm,Windows,Driver,Code Signing,Wdm,Windows上的驱动程序应签名并提交给Microsoft进行代码签名,这是64位系统的要求。问题是,当您必须更新驱动程序时,您必须再次提交它,每次发布一次 是否可以构建某种代理或垫片驱动程序,以便我只需签署并提交一次,然后将代码放在单独的模块中 当然,我不能只移动DLL中的工作代码,因为动态加载的模块也必须经过签名才能在64位内核模式下执行。如果我将代码放在一个原始文件中,将其加载到已启用执行标志的内存中,然后执行它会怎么样?其他想法?您不必向Microsoft提交驱动程序。您必须使用交叉签名

Windows上的驱动程序应签名并提交给Microsoft进行代码签名,这是64位系统的要求。问题是,当您必须更新驱动程序时,您必须再次提交它,每次发布一次

是否可以构建某种代理或垫片驱动程序,以便我只需签署并提交一次,然后将代码放在单独的模块中


当然,我不能只移动DLL中的工作代码,因为动态加载的模块也必须经过签名才能在64位内核模式下执行。如果我将代码放在一个原始文件中,将其加载到已启用执行标志的内存中,然后执行它会怎么样?其他想法?

您不必向Microsoft提交驱动程序。您必须使用交叉签名证书对驱动程序进行签名。这样你会得到一个唠叨屏幕,但这不是禁止的

有好几次尝试去做你想做的事情。这些都是“勉强”容忍的,但这些司机可能会在任何时候被禁止。撤销你的签名

过程非常简单:

加载已签名的驱动程序。 提供一个IoControl,用户模式程序可以在其中向内核发送内存。 更改此内存的执行位,只需调用此内存中的地址。
客户即使在32位上也会避免警告,因此我们必须将驱动程序提交给WHQL。然而,要求提供非常快速的更新和补丁,甚至是内核级代码。幸运的是,安装的系统数量相对较少。谢谢你简单的步骤!