У нас есть драйвер, который построен и подписан на месте. Недавно у нас были проблемы с установкой этого на Windows 7. Первоначально отсутствовали сертификаты, и это было решено путем установки корневых и промежуточных сертификатов. Проверка Signtool все успешны. Но теперь я получаю эту ошибку во время установки:

Failed to verify file 'WdfCoInstaller01009.dll' against catalog. Catalog = avp3ioc2.cat, Error = 0xE000024B
!!!  sto:                          Catalog did not contain file hash. File is likely corrupt or a victim of tampering.

Я проверил файл каталога и проверил отпечаток пальца по сравнению с WdfCoInstaller01009.dll. Все совпадает.

Что может быть причиной этого? Могу ли я решить эту проблему без повторной подписи драйверов (это долгий процесс)? Любая помощь будет высоко оценен.

PS В разделе Windows включен EWF. Драйвер устанавливается через DiInstallDriver.

1 ответ1

0

Файл .cat содержит контрольную сумму всех файлов драйвера. Если вы подписываете только .cat, то он охватывает только исходный файл (например, файл .sys). Вы не можете скопировать и использовать новый, если не подпишете его тоже.

Есть две разные проверки подписи. Одним из них является проверка во время установки, которая применяется только к пакетам драйверов PnP. Эта проверка выполняется на всех 32- и 64-разрядных системах. В этом случае .cat имеет значение. Если файл .cat подписан WHQL, установка происходит без вывода сообщений. Если .cat подписан вами, вы получите предупреждение («Вы доверяете этому ...)». Если ваш .cat файл не подписан или отсутствует, вы получите предупреждение "unsigned driver". Пользователь может обойти любой из них и разрешить установку драйвера.

Другой - это подписывание кода в режиме ядра, которое выполняется каждый раз при загрузке драйвера, но исключительно в 64-битных системах. Для этой проверки вы можете подписать файлы драйверов .sys или, если у вас есть пакет драйверов, вы можете подписать файлы .cat. Для этой проверки вы должны использовать сертификат для подписи кода класса 3 и использовать соответствующий перекрестный сертификат от Microsoft, чтобы перейти в их домен сертификатов. Вы можете проверить, правильно ли вы это сделали, используя «signtool verify /kp /v». Если вы не видите «Root Verification Root Microsoft», значит, вы, вероятно, не использовали перекрестный сертификат. Это большая боль, я знаю.

Теперь, когда все прояснено, ответ на ваш вопрос - ДА, вам нужно будет переподписать драйвер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .