Я хочу знать, есть ли команда, которая будет перечислять информацию, которая может быть найдена в разделе «Цифровые подписи» свойств файла .exe. В частности, я хочу иметь возможность захватить имя подписывающего лица. Есть ли команда, которая будет генерировать эту информацию для меня?Команда, чтобы получить имя подписывающего лица из .exe
ответ
Чтобы получить имя субъекта из сертификата подписчика, используемый для создания подписи Authenticode, вы могли бы использовать Get-AuthenticodeSignature
:
PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe'
PS > $asig.SignerCertificate.Subject
CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Вы, вероятно, заинтересованы в Общее имя (CN) и, возможно, имя организации (O). Вы можете разобрать отличительное имя от субъекта на ее компоненты, чтобы получить общее имя:
PS > $asig = Get-AuthenticodeSignature 'C:\Windows\System32\xcopy.exe'
PS > $dnDict = ($asig.SignerCertificate.Subject -split ', ') |
foreach `
{ $dnDict = @{} } `
{ $item = $_.Split('='); $dnDict[$item[0]] = $item[1] } `
{ $dnDict }
PS > $dnDict['CN']
Microsoft Windows
PS > $dnDict['O']
Microsoft Corporation
попытка signtool.exe
. использование следующего эталонный относительно Signtool,
https://msdn.microsoft.com/en-us/library/windows/desktop/aa387764(v=vs.85).aspx
Я проверил этот инструмент, к сожалению, он не предоставляет возможность запросить имя подписчика. – Technic1an
Sigcheck tool от Windows Sysinternals Microsoft может сбросить информацию из. Использование опции командной строки -c
форматирует вывод в формате csv, который может быть передан в файл для последующей обработки.
Sigcheck - утилита командной строки, которая показывает номер версии файла, информацию о временной отметке и данные цифровой подписи, включая цепочки сертификатов.
- 1. Как получить имя подписывающего лица из подписанного файла
- 2. Получить имя лица из объекта класса
- 3. Возможно, требуется хотя бы одно приложение от подписывающего лица?
- 4. Подписание и электронная почта - Не удается найти оригинал подписывающего лица
- 5. C# Как получить .dll или .exe данные о сертификате цифрового подписывающего лица, даже срок действия сертификата истек?
- 6. Как получить имя файла из .EXE
- 7. Получить данные из EXE
- 8. Имя удаляемого лица
- 9. UseJwtBearerAuthentication подписывающего ключ
- 10. Команда вызова из exe в bat-файле
- 11. mercurial: любая команда или python api, чтобы получить имя репозитория
- 12. подписывающего на основе шифрования
- 13. Как получить имя файла встроенного ресурса exe?
- 14. Получить имя приложения из файла .exe в питоне
- 15. Нет подписывающего идентификатора
- 16. Получить имя exe рядом с командным файлом
- 17. Команда Windows CMD: Получить имя подпапки
- 18. MS CRM 2011: Как получить имя-лица, связанные за привилегию
- 19. Имя Признание лица для арабских документов
- 20. команда hadoop, чтобы получить последнее имя подкаталога из каталога в hadoop
- 21. Получить обнаружение лица растрового
- 22. Выполнение EXE из EXE из EXE
- 23. LabelledGeneric, чтобы получить имя класса
- 24. Команда strings на exe слишком много обнаруживает
- 25. Как я могу проверить подпись ECDSA, используя подписанные данные, подпись и открытый ключ ECDSA подписывающего лица?
- 26. Запуск exe из другого exe
- 27. Как получить имя exe, которое пытается получить доступ к Интернету?
- 28. Сертификат подписывающего не является действительным для подписания
- 29. Команда, чтобы получить последний git commit hash из ветки
- 30. JPA команда, чтобы получить идентификатор из внешнего ключа
Первый работает отлично, как мне получить второй, который будет просто перечислять имя CN для запуска в powershell. Каждый раз, когда я пытаюсь скопировать его и запускать, он дает мне сообщение о том, что system.string не содержит метода с именем TrimStart – Technic1an
Должна быть проблема, связанная с версией. Обновление для использования TrimStart ('') в качестве обходного пути, но вам придется протестировать. Это просто удаление первого символа, пробела, которое было после запятой. – jimhark
@ Technic1an, я просто переписал, чтобы удалить необходимость в TrimStart(). Оказывается, я должен был просто использовать оператор PS -split. Я надеюсь, что этот ответ будет вам приемлемым. – jimhark