Überprüfen der digitalen Signatur auf EXE

Meine .NET-exe-Datei ist signiert mit signtool.
Mit diesem code kann ich überprüfen Sie die Gültigkeit des Zertifikats selbst:

var cert = X509Certificate.CreateFromSignedFile("application.exe");
var cert2 = new X509Certificate2(cert.Handle);
bool valid = cert2.Verify();

Aber dieser prüft nur das Zertifikat selbst, und nicht die Unterschrift der EXE-Datei. Daher, wenn die EXE-Datei manipuliert wird, werden bei dieser Methode nicht erkannt werden.

Wie kann ich das überprüfen der Signatur?

  • X509Certificate.CreateFromSignedFile("").Verify() ?
  • .CreateFromSignedFile gibt eine Instanz von X509Certificate, und die haben nicht ein .Überprüfen Sie, Methode.
  • Ok, dann noch eine blöde Idee: konstruiere X509Certificate2 mithilfe X509Certificate, nicht Handle. Ich vermute: Verify Methode sollten überprüfen, die Datei oder das Zertifikat wird throw exception (beim instanziieren?) wenn mit exe-Datei manipuliert wurde. Vielleicht haben Sie zur Umsetzung eigener Validierung Kette.
  • Die überprüfung der Signatur der EXE-Datei, indem Sie diese EXE-Datei keinen Sinn macht - wer entfernt die Signatur entfernen, überprüfen Sie, wie gut.
  • Ich habe eine rein .Net-Lösung hier.
InformationsquelleAutor LTR | 2014-06-05
Schreibe einen Kommentar