Я пытаюсь установить USB-драйвер Windows с простой структурой (содержащей только следующее содержимое:
- приложение.инф,
- app.cat
- WdfCoInstaller01005.dll
- WinUSBCoInstaller.dll
). Драйвер sha 256 подписан с использованием действительного стандартного сертификата для подписи кода в режиме ядра, выданного Digicert. Я мог видеть цифровую подпись в файле app.cat при просмотре свойств файла. Я пытаюсь установить драйвер с помощью install-shield на компьютере с 64-разрядной версией Windows 7 SP1 со всеми последними обновлениями (включая KB3033929). Он по-прежнему показывает предупреждение Windows не может проверить издателя этого драйвера.
Для устранения неполадок я попытался установить сертификат на целевой машине как один из ссылка на Stackoverflow предлагает. Все еще нет надежды.
Я использовал следующие команды в процессе создания файла .cat и подписания файла .cat. (Файла .sys нет)
Inf2Cat /driver:"C:\CodeSigning" /os:7_X64,7_X86
C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64>signtool.exe si
gn /v /ac "C:\CodeSigning\DigiCert High Assurance EV Root CA.crt" /a /t ht
tp://timestamp.digicert.com "C:\CodeSigning\Driver\app.cat"
ИЗМЕНИТЬ Добавление дополнительной информации.
Я также пробовал подписывание Sha256 (ссылаясь на https://www.digicert.com/code-signing/driver-signing-in-windows-using-signtool.htm (раздел: Internet Explorer или Chrome для Windows)
signtool sign /v /ac "C:\path\DigiCert High Assurance EV Root CA.crt" /a /tr http://timestamp.digicert.com /td sha256 /fd sha256 "c:\path\to\FileToSign.cat"
Тем не менее я получаю ту же ошибку.
РЕДАКТИРОВАТЬ 2. Добавление источника файла Inf
Пожалуйста, обратитесь к источнику файла .inf ниже (может быть немного устаревшим).
[Version]
Signature = "$Windows NT$"
Class =XYZdevice
ClassGuid={ad769fbf-c592-4b8c-940a-6e3782a545e8}
Provider = %ProviderName%
DriverVer=10/13/2017,6.00.2064
CatalogFile=%MFGFILENAME%.cat
; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ProviderName% = XYZInc,NTx86,NTamd64
[XYZInc.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_1448&PID_4AC0&REV_0001
[XYZInc.NTamd64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_1448&PID_4AC0&REV_0001
; =================== Installation ===================
[ClassInstall32]
AddReg=SampleClass_RegistryAdd
[SampleClass_RegistryAdd]
HKR,,,,%ClassName%
;[1]
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
;[2]
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
;[3]
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
;[4]
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
[WinUSB_Install]
KmdfLibraryVersion=1.5
;[5]
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{15630179-b622-4834-8ff7-9916b1446884}"
;[6]
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01005.dll,WdfCoInstaller","WinUSBCoInstaller.dll"
[CoInstallers_CopyFiles]
WinUSBCoInstaller.dll
WdfCoInstaller01005.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; ================= Source Media Section =====================
;[7]
[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64
[SourceDisksFiles.x86]
WinUSBCoInstaller.dll=1
WdfCoInstaller01005.dll=1
[SourceDisksFiles.NTamd64]
WinUSBCoInstaller.dll=2
WdfCoInstaller01005.dll=2
; =================== Strings ===================
[Strings]
MFGFILENAME="XYZDevice"
ProviderName="XYZ Inc"
ClassName="XYZ device"
USB\MyDevice.DeviceDesc="XYZ"
WinUSB_SvcDesc="XYZ"
DISK_NAME="Drivers"
Я также проверил детали встречной подписи. Пожалуйста, обратитесь к изображению ниже.
- Отпечаток сертификата, используемого для перекрестной подписи (отпечаток: 2f 25 13 af 39 92 db 0a 3f 79 70 9f f8 14 3b 3f 7b d2 d1 43 перекрестный сертификат для DigiCert High Assurance EV Root CA)
- Отпечаток кросс-подписанного сертификата, который можно увидеть в свойствах подписанного файла: 40 01 91 47 5c 98 89 1d eb a1 04 af 47 09 1b 5e b6 d4 cb cb (не знаю, правильно это или нет)
Пожалуйста помоги. Я потратил много времени на это и до сих пор безрезультатно. Любая помощь в этом будет действительно ценной.
/ac
выглядит подозрительно; Вы уверены, что это кросс-сертификат? Можешь кинуть ссылку где скачал. Было бы хорошо опубликовать скриншот ошибки, я не уверен, что это ошибка времени установки или нет. Кроме того, я написал большую статью, которая может быть вам полезна. - person David Grayson   schedule 02.01.2018/ac
, потому что вы не подписываете драйвер режима ядра. Кроме того, какая часть вашего вызова signtool указывает, какой сертификат издателя использовать? - person David Grayson   schedule 02.01.2018/fd sha256
, поскольку SHA1 устарел, хотя я не думаю, что это решит вашу проблему здесь. - person David Grayson   schedule 02.01.2018signtool sign /v /ac "C:\path\DigiCert High Assurance EV Root CA.crt" /a /tr http://timestamp.digicert.com /td sha256 /fd sha256 "c:\path\to\FileToSign.cat"
Тем не менее я получаю ту же ошибку. - person amesh   schedule 03.01.2018