Назад | Перейти на главную страницу

Есть ли эквивалент Sigverif.exe для командной строки?

Инструмент 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 есть опция командной строки для проверки подписей.