Вы когда-нибудь использовали ObRegisterCallbacks на x86? - PullRequest
2 голосов
/ 16 марта 2012

Я пытаюсь использовать ObRegisterCallbacks для предотвращения завершения работы моего приложения.

в системе Windows 7 x64, это работает как мой план.

но в системе Windows 7 x86 есть некоторые проблемы.

Я должен связать свой драйвер с параметром компоновщика /INTEGRITYCHECK, или я не смог использовать функцию ObRegisterCallbacks.Он вернул ACCESS_DENIED.

, но если я собрал его с опцией компоновщика /INTEGRITYCHECK, я не смог бы загрузить драйвер.

когда я звоню StartService(), возвращается ERROR_INVALID_IMAGE_HASH.

Конечно, я подписал свой драйвер после сборки.так что мой файл драйвера имел цифровую подпись на двоичном.

Однако он все еще вернулся ERROR_INVALID_IMAGE_HASH.

и если я собрал с теми же источниками для платформы x64, он работает нормально.

Более того, если я загружаю свой компьютер (x86) в режиме тестовой загрузки, он тоже работает хорошо.

Мне интересно, что можно использовать ObRegisterCallbacks в системе x86 (не тестовый режим загрузки).

Любой ответ приветствуется.

1 Ответ

1 голос
/ 24 сентября 2015

Это работает для системы x86, вам нужно подписать драйвер с помощью сертификата. Тестирование не работает, поэтому убедитесь, что у вас есть сертификат с помощью инструмента makecert. используйте signtool, чтобы подписать драйвер с помощью сертификата, который вы создали

...