Для частного проекта я создал собственный драйвер для запоминающего устройства USB.В моей тестовой среде (проверка целостности отключена и тестовая подпись включена) все работает как положено.
Теперь я развернул виртуальную машину с базовой установкой Windows 10.
Используя OpenSSL, я создал собственный центр сертификации и сертификат подписи кодов, подписанный ранее созданным ок.
Visual Studio с радостью подписывает мой драйвер, используя опцию «Режим подписи: Тестовый знак».
Я скопировал драйвер на виртуальную машину и установил сертификат ca.Согласно вкладке «Цифровые подписи», в свойствах файла драйвера подпись существует и является доверенной.
Когда я пытаюсь зарегистрировать драйвер с помощью OSR Loader, я получаю сообщение об ошибке, в котором говорится, что «Windows не может проверить цифровую подпись для этого файла».
Моя цель - установить и установитьзапускать мой драйвер в среде «без разработки», используя самозаверяющий сертификат и сертификат.
Примечание. Я понимаю, что для подписи моего драйвера мне следует купить «официальный» сертификат для подписи кода, но этот проект не будетгенерировать любые деньги и будет использоваться только рукой, полной моих друзей.
Я создал VERY Basic драйвер, который будет использовать «DbgPrint» для печати «DriverEntry звонил» и «DriverUnload звонил».
Этот драйвер будет использоваться только для быстрой проверки возможных решений.
Как я создавал свои сертификаты:
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
openssl genrsa -out codesign.key 2048
openssl req -new -key codesign.key -reqexts v3_req -out codesign.csr
openssl x509 -req -days 1826 -in codesign.csr -CA ca.crt -CAkey ca.key -extfile v3.cfg -set_serial 01 -out codesign.crt
openssl pkcs12 -export -out codesign.pfx -inkey codesign.key -in codesign.crt
Обновление v3.cfg: https://pastebin.com/GWF9YVBa
: я пытался использовать опцию "Производственный знак", но мой сертификат не может быть использован для подписи не тестовых знаков.
Далее: я снова переключился на тестовую подпись и включил тестовую подпись на виртуальной машине, используя: bcdedit.exe -set TESTSIGNING ON
, но все еще безуспешно.: (
введите описание изображения здесь