Как получить несколько подписей Authenticode из исполняемого файла?C#

Место общения программистов C#
Ответить
Anonymous
 Как получить несколько подписей Authenticode из исполняемого файла?

Сообщение Anonymous »

Короткий вопрос

Как получить информацию о нескольких сертификатах подписи кода из исполняемого файла (.EXE/.DLL)?

Ожидаемый ответ

Окончательный принятый ответ должен предлагать способ получения всех сертификатов С#. Концепция/псевдокод в порядке, я не ожидаю, что вы напишете полный исходный код.

Для промежуточного ответа, предлагающего инструмент, см. мой вопрос на Security.StackExchange .

Длинный вопрос

Я исследую, можем ли мы использовать множественное подписание кода сертификаты на плагин (.DLL), чтобы проверить, был ли он официально протестирован или нет. Процедура следующая:
  • DLL плагина подписывается поставщиком, как и любое другое приложение
  • DLL плагина поступает в тестовую лабораторию и проходит ряд тестов
  • DLL плагина снова подписывается тестовой лабораторией, чтобы приложение, использующее DLL, могло узнать, использует ли оно проверенный плагин или нет
Кажется возможным подписать DLL во второй раз, используя

Код: Выделить всё

 signtool /v /f 
 /as 
Признаки того, что это могло сработать:
  • размер файла увеличивается< /li>
    инструмент печатает сообщение об успехе
Однако есть некоторые проблемы с отображением второй подписи:
  • хотя в проводнике Windows отображается «Список подписей», он показывает только один сертификат
  • C# X509Certificate Метод .CreateFromSignedFile() может возвращать только один сертификат
В настоящий момент я пробую свой код в EXE-файле файл, а не файл DLL, но это не имеет значения. EXE-файл уже подписан доверенным корневым сертификатом и отметкой времени. Вторая подпись создается с использованием моего собственного сертификата в соответствии с этими шагами и в настоящее время без метки времени.

Что я сделал, прежде чем задать вопрос:
  • поиск существующих ответов в Stackoverflow
  • поиск инструментов в Google
Единственный связанный вопрос, который я нашел на данный момент, — это «Как правильно использовать двойную подпись с отметкой времени», но на него нет ответа.

Подробнее здесь: https://stackoverflow.com/questions/215 ... executable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»