Mój. NET exe jest podpisany przy użyciu signtool. Za pomocą tego kodu, mogę sprawdzić ważność certyfikatu samego:Sprawdzanie podpisu cyfrowego na EXE
var cert = X509Certificate.CreateFromSignedFile("application.exe");
var cert2 = new X509Certificate2(cert.Handle);
bool valid = cert2.Verify();
Jednak ta sprawdza tylko samego certyfikatu, a nie podpisania EXE. Dlatego, jeśli plik EXE jest modyfikowany, ta metoda go nie wykrywa.
Jak mogę sprawdzić podpis?
'X509Certificate.CreateFromSignedFile (" "). Zweryfikować()'? – Sinatr
.CreateFromSignedFile zwraca instancję certyfikatu X509, która nie ma metody .Verify. – LTR
OK, to kolejny głupi pomysł: skonstruuj 'X509Certificate2' za pomocą' X509Certificate', a nie 'Handle'. Zgaduję: metoda "weryfikująca" * powinna * również sprawdzać plik lub certyfikat wyrzuci wyjątek (podczas tworzenia instancji?), Jeśli plik exe zostanie zmodyfikowany. Być może musisz zaimplementować własną walidację [łańcuch] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.aspx). – Sinatr