Из .NET убедитесь, что DLL имеет действительную подпись и не была изменена - PullRequest
0 голосов
/ 26 мая 2018

Моя программа на C # .NET обращается к библиотеке C ++.

Библиотека подписана сертификатом и находится в той же папке, что и программа.

Во время выполнения, прежде чем загружать библиотеку c ++, я хочу убедиться, что библиотека действительно моя ине был подделан.

Я смог получить сертификат от моей DLL и проверить сертификат:

X509Certificate2 cert = new X509Certificate2(X509Certificate.CreateFromSignedFile(filename));
Console.WriteLine(cert.Issuer);`
cert.Verify();`

Это говорит мне о том, что сертификат файла в порядке, но если я тогдаЗашифруйте мой файл и снова запустите мою программу, сертификат все еще проверяется.

Где в сертификате можно найти хэш моей библиотеки (не хеш сертификата) и как я могу создать хэш моегобиблиотека для сравнения, чтобы я мог обнаружить подделанный файл?

Я подозреваю, что это должно быть просто, может быть, я что-то упустил.

1 Ответ

0 голосов
/ 26 мая 2018

P Вызвать собственный Windows API WinVerifyTrust, который задокументирован Microsoft по адресу MSDN с примером в C.

При использовании поисковой системы могут быть примеры, которыми могут управлять другие..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...