2009-07-15 5 views
6

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

Есть ли способ проверить цифровую подпись, чтобы убедиться, что она действительна при запуске exe, чтобы избежать изменения версий?

Visual Studio 2008 окна 7

ответ

8

Here примерная программа (она использует WinVerifyTrust функцию), которая проверяет подпись, но я не уверен, что он будет работать под Windows 7. Вы должны попробовать это.

+2

WinTrustVerify - это вызов. Он скажет вам, что двоичный код был подписан кодом. Если вам необходимо убедиться, что он подписан с определенным сертификатом (например, вашей компанией), вам необходимо вызвать CertVerifyCertificateChainPolicy для проверки (возможно, в цикле). – selbie

0

Учитывая, что у вас уже есть потребность в UAC, недостаточно ли установить параметр групповой политики «Только поднять подписанные и проверенные исполняемые файлы» в «Конфигурация компьютера \ Параметры Windows \ Локальные политики \ Параметры безопасности"? Также может быть полезно установить "Use Certificate Rules on Windows Executables for Software Restriction Policies".

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

+0

это будет установлено на конечных пользователях, поэтому я не могу установить эту опцию. Я больше беспокоился о коррупции, чем «хакеры». – Lodle

+0

Хорошо, из вашего вопроса неясно, боитесь вы Мерфи или Макиавелли. – MSalters

Смежные вопросы