Инструмент Windows XP sigverif полезен для идентификации независящих исполняемых файлов, но, похоже, не поддается написанию сценариев - есть ли эквивалент командной строки?
Я использовал sysinternals sigcheck.exe:
http://technet.microsoft.com/en-us/sysinternals/bb897441.aspx
Sigcheck v1.66 - Версия файла и программа просмотра подписей Copyright (C) 2004-2010 Mark Russinovich Sysinternals - www.sysinternals.com
использование: sigcheck [-a] [- h] [- i] [- e] [- n] [[- s] | [-v] | [-m]] [- q] [- r] [- u ] [- c файл каталога]
-a Показать расширенную информацию о версии
-c Искать подпись в указанном файле каталога
-e Проверять только исполняемые образы (независимо от их расширения)
-h Показать хэши файлов
-i Показать имя каталога и подписантов изображения
-m Дамп манифеста
-n Показывать только номер версии файла
-q Тихо (без баннера)
-r Проверить отзыв сертификата
-s Рекурсивные подкаталоги
-u Показать только неподписанные файлы
-v Вывод CSV
Пример вывода:
c: \ windows \ system32 \ acledit.dll:
Verified: Signed
Signing date: 19:07 04/13/2008
Publisher: Microsoft Corporation
Description: Access Control List Editor
Product: Microsoft« Windows« Operating System
Version: 5.1.2600.0
File version: 5.1.2600.0 (xpclient.010817-1148)
Роб
Я не думаю, что есть прямой эквивалент командной строки, но есть пара вещей, которые могут вас приблизить.
Первый, driverquery.exe
имеет аргумент/si
это сообщит вам подписанный статус драйверов. Также есть аргумент /fo csv
который сбросит вывод в CSV. Странная часть использования этой команды заключается в том, что если вы используете /si
аргумент, вы не можете получить полный путь к файлу драйвера (и если вы используете /v
возможность получить полный путь, вы не можете получить подписанный статус.
Во-вторых, если вы хотите пойти по пути PowerShell, вы можете использовать Get-AuthenicodeSignature
командлет. Это странно, потому что вам нужно передать путь к драйверу в командлет, поэтому вам нужно создать список драйверов самостоятельно. Вы можете получить это из WMI, поэтому что-то вроде этого может удовлетворить ваши потребности:
Get-WmiObject -class win32_systemdriver | foreach-object { get-authenticodesignature $_.pathname }
Я сам не пробовал, но считаю, что у signtool есть опция командной строки для проверки подписей.