Мой .NET exe подписан с помощью signtool. Используя этот код, я могу проверить правильность самого сертификата:
var cert = X509Certificate.CreateFromSignedFile("application.exe");
var cert2 = new X509Certificate2(cert.Handle);
bool valid = cert2.Verify();
Однако это проверяет сам сертификат, а не подпись EXE. Поэтому, если EXE подделан, этот метод не обнаруживает его.
Как проверить подпись?