1

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

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

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

4

1 回答 1

0

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

有几次尝试做你想做的事。这些是“勉强”容忍的,但这些驱动程序可能随时被禁止。(通过撤销您的签名)

这个过程非常简单:

  1. 加载签名的驱动程序。
  2. 提供一个 IoControl,用户模式程序可以在其中向内核发送内存。
  3. 改变这个内存的执行位,就调用这个内存中的一个地址。
于 2010-07-01T15:06:28.433 回答