Je suis très très débutant dans le développement de pilotes Windows. J'ai écrit un simple pilote DbgPrint() .sys.Windows Driver - Impossible de signer mon propre pilote correctement
Après beaucoup de recherche, j'ai trouvé dans l'architecture x86, la signature du pilote .sys est facultative, mais en x64 est obligatoire. J'ai donc créé un certificat manuellement:
makecert -r -n "CN=MyCompany" -ss MyCompanyCertStore -sr LocalMachine
Après cela, je l'ai exporté (par exemple) GlobalSign.cer et ajouté à ma liste de certificats:
certmgr.exe -add GlobalSign.cer -c -s -r localMachine Root
certmgr.exe -add GlobalSign.cer -c -s -r localMachine TrustedPublisher
Ensuite, je MyDriver1.sys
et putte MyDriver1.inf
dans c:\MyDriver1
dossier et créé le fichier de catalogue:
inf2cat /driver:"c:\MyDriver1" /os:7_x64
Et l'ont signé:
SignTool sign /s MyCompanyCertStore /n MyCompany /t http://timestamp.verisign.com/scripts/timestamp.dll c:\MyDriver1\mydriver1.cat
Fini! Mais quand je charge MyDriver1.sys
dans le programme OSR Driver Loader
, il montre cette erreur:
---------------------------
OSRLOADER
---------------------------
Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.
---------------------------
OK
---------------------------
Je ne sais pas pourquoi.
Remarque Il n'y a qu'une entrée MyDriver1.inf
dans l'onglet Catalogue de sécurité du fichier de catalogue et je ne peux pas ajouter une entrée MyDriver1.sys
.
Voici le contenu de MyDriver1.inf
(origine produit par Visual Studio, mais je n'ai changé CatalogFile=
à CatalogFile=mydriver1.cat
)
;
; MyDriver1.inf
;
[Version]
Signature="$WINDOWS NT$"
Class=
ClassGuid=
Provider=
DriverVer=09/21/2017,21.4.29.698
CatalogFile=
[DestinationDirs]
DefaultDestDir = 12
[SourceDisksNames]
1 = %DiskName%,,,""
[SourceDisksFiles]
[Manufacturer]
%ManufacturerName%=Standard,NTamd64
[Standard.NTamd64]
[Strings]
ManufacturerName=""
ClassName=""
DiskName="MyDriver1 Source Disk"