Valider la signature Authenticode sur EXE - C ++ sans CAPICOM
Je suis en train d'écrire une fonction pour un installateur DLL afin de vérifier la signature Authenticode de EXE fichiers déjà installés sur le système.
La fonction doit:
A) vérifier que la signature est valide.
B) vérifier que le signataire est bien notre organisation.
Parce que c'est dans un programme d'installation, et parce que cela doit fonctionner sur d'anciennes Win2k, les installations, je ne pas voulez compter sur CAPICOM.dll comme il peut ne pas être sur le système cible.
La WinVerifyTrust API travaille à résoudre (Un).
J'ai besoin de trouver un moyen de comparer connu un certificat (ou des propriétés de la convention) à celui qui a signé l'EXE en question.
source d'informationauteur Brian Gillespie
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser CryptQueryObject.
Cet article KB illustre l'utilisation: Comment Obtenir des Informations de signature Authenticode Exécutables.
À l'intervenant que la question de savoir comment le faire sans la Windows Api, je ne suis pas au courant de toute bibliothèque qui peut le faire, mais le format est documenté ici: Windows Authenticode Portable Executable Format De Signature
Si la signature est valide, la chaîne de certificat contient votre certificat. CertGetCertificateChain cette chaîne.