Как проверить исполняемый файл по цифровому сертификату
Привет,
У меня есть.Чистый исполняемый файл, который я подписал цифровой подписью с помощью сертификата, сгенерированного через makecert.exe и подписано с помощью signtool. Как проверить, что exe-файл не был подделан или он все еще использует сертификат, подписанный мной цифровой подписью.
Например, ситуация, когда любой желающий может заменить exe - файл, который имеет цифровую подпись другим сертификатом и помещен в Доверенные корневые центры.
Из различных интернет источников я читал что приведенный ниже код просто проверит действителен ли сертификат
X509Certificate signer = X509Certificate.CreateFromSignedFile(executablePath); X509Certificate2 certificate = new X509Certificate2(signer); var certificateChain = new X509Chain { ChainPolicy = { RevocationFlag = X509RevocationFlag.EntireChain, RevocationMode = X509RevocationMode.Online, UrlRetrievalTimeout = new TimeSpan(0, 1, 0), VerificationFlags = X509VerificationFlags.NoFlag } }; var chainIsValid = certificateChain.Build(certificate); if (chainIsValid) {}
И предлагается использовать WinVerifyTrust. Мой вопрос заключается в том, что WinVerifyTrust также проверит сертификат, если тот же exe-файл подписан другим сертификатом, развернутым в доверенных корневых центрах. Как я могу связать exe-файл с моим сертификатом? Или как WinVerifyTrust может быть полезен в этой ситуации, как упоминалось везде? Пожалуйста, помогите!!
Спасибо
Что я уже пробовал:
Я уже пробовал использовать X509Certificate и WinVerifyTrust(). Но у меня не так много знаний связанных с WinVerifyTrust()