2012-02-18 2 views
1

Я провел всю ночь, исследуя это без решения.Проверьте цифровую подпись в папке system32/drivers

Я пытаюсь проверить цифровую подпись файла в папке с дисками (C: \ Windows \ System32 \ drivers * .sys) выбрать любой, который вы хотите. Я знаю, что код правильный, потому что если вы переместите файл из этой папки в C: \, то тест будет работать.

WinVerifyTrust дает ошибку 80092003 http://pastebin.com/nLR7rvZe

CryptQueryObject дает ошибку 80092009 http://pastebin.com/45Ra6eL4

В чем дело?

ответ

5

0x80092003 = CRYPT_E_FILE_ERROR = Произошла ошибка при чтении или записи в файл.

0x80092009 = CRYPT_E_NO_MATCH = Совпадение при попытке найти объект.

Я предполагаю, что вы работаете на 64-битной машине, а перенаправление файловой системы WOW64 перенаправляет вас на syswow64 \ drivers, который пуст. Вы можете отключить перенаправление с помощью Wow64DisableWow64FsRedirection().

+0

Это, кажется, решает проблему - хотя я сталкиваюсь с дополнительными трудностями. Все еще исследуя это, но некоторые файлы терпят неудачу с одним, но преуспевают с другим. – SNyamathi

3

, если вы щелкните правой кнопкой мыши и просмотрите свойства файла, вы увидите цифровую подпись? скорее всего, ваш файл является частью каталога, и вам нужно использовать API каталога для извлечения сертификата из базы данных сертификатов и проверки его.

Смежные вопросы