Как проверить подписи PE в моем драйвере?

Я пишу драйвер, и мне нужно проверить подпись файла PE в нем. Я знаю, как сделать это в пользовательском режиме, и он отлично работает в соответствии с http://forum.sysinternals.com/topic19247.html[^], но теперь мне нужно сделать то же самое в моем драйвере, я не могу использовать такие заголовки, как «wintrust.h» в моем драйвере, так что я не знаю, Любые предложения о том, как проверить подписи PE в режиме ядра?

Спасибо

0

Решение

К сожалению, самопроверка ничего вам не даст — тот, который подделает водителя, также уберет чек. Однако для образовательных целей это интересная, но сложная задача.

Вы должны будете выполнить проверку подлинности Authenticode самостоятельно. Authenticode основан на сертификатах PKCS # 7 / CMS и X.509. Вам нужно будет заново реализовать все это в режиме ядра.

Хотя реализация RSA тривиальна, парсер ASN.1 и обработка формата PKCS7 намного сложнее. Возможно, вы захотите найти некоторый существующий код на C, который можно адаптировать для режима ядра. Например, вы можете проверить cryptlib. Cryptlib поддерживает CMS (и это то, что вам нужно) и сильно кроссплатформенен, поэтому у вас не должно возникнуть проблем с адаптацией его для режима ядра.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector