Имея немного проблем с подписью моего драйвера режима ядра и созданием службы для него.Создание и создание драйверов Windows Kernel
Итак, я создал самозаверяющий сертификат с помощью MakeCert:
MakeCert -r -pe -n "CN = XXX" -ss "XXX" -sr LocalMachine
затем с помощью управления сертификатами оснастки я экспортировал сертификат в PFX-файл и подписал драйвер .sys с помощью SignTool:
SignTool знак/ф myCert.pfx/р ххх/т http://timestamp.comodoca.com/authenticode driver.sys
, который был успешным. При использовании SignTool для проверки, я получил:
контролирующий: driver.sys хэша файла (sha1): 9A ... 7F
Signing Certificate Chain:
Issued to: XXX
Issued by: xxx
Expires: Sat Dec 31 16:59:59 2039
SHA1 hash: 12...46
The signature is timestamped: Sun Jun 10 03:35:21 2012
Timestamp Verified by:
Issued to: UTN-USERFirst-Object
Issued by: UTN-USERFirst-Object
Expires: Tue Jul 09 11:40:36 2019
SHA1 hash: E1...46
Issued to: COMODO Time Stamping Signer
Issued by: UTN-USERFirst-Object
Expires: Sun May 10 16:59:59 2015
SHA1 hash: 3D...C8
Successfully verified: driver.sys
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0
Однако, когда я пытаюсь создать службу для него:
СБН создать НИЗ binPath = C: \ Windows \ System32 \ Drivers \ driver.sys тип = ядро
(binpath является Verifi ed для существования), сервис создается, но примерно через 10-20 секунд появляется «Помощник по совместимости программ» с раздражающим диалогом «Windows требует диалог с цифровой подписью».
Что это дает? Это подтверждается подписью. Я пробовал этот процесс три раза, без везения. Я пробовал запустить службу, но я получаю BSOD с кодом BC, который ссылается на эту проблему (неподписанный драйвер отлично работает на XP/32-bit 7).
Самоподписывание недостаточно; он также должен быть кросс-подписан с сертификатом Microsoft, который поддерживает только реальные сертификаты CA. Для целей тестирования вы можете включить [подписание теста] (http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484%28v=vs.85%29.aspx). – Luke
@ Luke Alright понял это - я в режиме подписывания теста, и он работает нормально. Однако я нашел список сертификатов перекрестных подписей, но я не уверен, как их использовать. У меня есть zip-файл с .cer и отпечаток sha1, но диспетчер сертификатов запрашивает URL-адрес. – Qix
Я не знаю точного процесса, но вам нужно: 1) подписать свой двоичный файл с помощью поддерживаемого сертификата CA (VeriSign и т. Д.), Затем 2) перекрестно подписать ваш бинарный файл с соответствующим сертификатом перекрестной подписывания, предоставленным Microsoft. – Luke