你有没有在x86上使用ObRegisterCallbacks?

时间:2012-03-16 06:03:21

标签: windows x86 driver

我正在尝试使用ObRegisterCallbacks来阻止我的应用被终止。

在Windows 7 x64系统中,它可以很好地完成我的计划。

但在Windows 7 x86系统中,存在一些问题。

我必须使用/INTEGRITYCHECK链接器选项链接我的驱动程序,否则我无法使用ObRegisterCallbacks函数。它返回了ACCESS_DENIED

但如果我用/INTEGRITYCHECK链接器选项构建它,我无法加载我的驱动程序。

当我致电StartService()时,它返回了ERROR_INVALID_IMAGE_HASH

当然,我在构建后签署了我的驱动程序。所以我的驱动文件有二进制数字签名。

然而它仍然返回ERROR_INVALID_IMAGE_HASH

如果我使用x64平台的相同来源构建,它可以正常工作。

此外,如果我使用测试启动模式启动我的PC(x86),它也可以正常工作。

我想知道可以在x86系统上使用ObRegisterCallbacks(而不是测试启动模式)。

任何回复都将不胜感激。

1 个答案:

答案 0 :(得分:1)

适用于x86系统,您需要使用证书签署您的驱动程序,Testsigning不起作用,因此请确保您使用makecert工具获得证书。 使用signtool使用您创建的证书为您的驱动程序签名