Проверить подпись на EXE с помощью CertGetCertificateChain - PullRequest
0 голосов
/ 14 июля 2009

Я хотел бы проверить подписанный исполняемый файл. Требуется проверить, что исполняемый файл сам по себе действителен и откуда он взялся (возможно, от субъекта сертификата). Тип сертификата - PKCS.

Я нашел похожую запись здесь, Проверка подписи Authenticode на EXE - C ++ без CAPICOM

Документация Microsoft, среди прочего, указывает на CertGetCertificateChain, но примеры, как правило, работают с сертификатами, которые находятся в магазине. Кто-нибудь знает, как проверить подписанный исполняемый файл с помощью CertGetCertificateChain и связанных API-интерфейсов?

Ответы [ 2 ]

0 голосов
/ 15 июля 2009

Я задал этот вопрос некоторое время назад . У меня были ваши точные требования. Там есть пример кода, который поможет вам. Веселись !!

0 голосов
/ 15 июля 2009

Можете ли вы уточнить? вопрос, на который вы ссылаетесь, похоже, дает ответы на все ваши вопросы.

Вы утверждаете, что «примеры, как правило, работают с сертификатами, которые находятся в хранилище», что, как я понимаю, означает, что исполняемый файл должен быть подписан сертификатом, который связан с корневым сертификатом в доверенном хранилище компьютера. *

Это правда; нет никакого способа обойти это, иначе нет никакого способа поверить в то, что подписывающее лицо является тем, кем, по его словам, он является, и у провайдера нет способа отозвать сертификат, если он используется мошенническим путем.

Итак, WinVerifyTrust - это верный способ проверки подписанного исполняемого файла. Это ужасный API, так что будьте осторожны. CryptQueryObject и связанные с ним API предоставят вам дополнительную информацию, например, имя человека или компании, которой был выдан сертификат.

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