Поделиться через


MakeCat

Средство MakeCat — это средство CryptoAPI, создающее файл каталога. MakeCat доступен в составе пакета SDK для Microsoft Windows (SDK) для Windows 7 и .NET Framework 4.0 и устанавливается по умолчанию в папке \Bin пути установки пакета SDK.

Средство MakeCat использует следующий синтаксис команды:

MakeCat [-n|-r|-v] Имя файла

Параметры

Параметр Описание
-n
Не останавливаться на ошибке, допускаемой для восстановления.
-r
Принудить MakeCat завершиться, если возникают ошибки, доступные для восстановления. В частности, он завершится при обработке записей в разделе файлов каталога cdf-файла.
-v
Многословный. Отображает все сообщения о ходе выполнения и ошибках.
Имя файла
Имя CDF-файла для анализа. Сведения о требуемой структуре и содержимом см. в разделе "Примечания".

 

Замечания

CDF-файл должен быть построен со следующими спецификациями.

[CatalogHeader]
Name=Name              
ResultDir=ResultDir   
PublicVersion=[|1]
CatalogVersion = [|1|2]
HashAlgorithms=[|SHA1|SHA256]
PageHashes=[true|false]
EncodingType=Encodingtype 
CATATTR1={type}:{oid}:{value} (optional)
CATATTR2={type}:{oid}:{value} (optional)

[CatalogFiles]
{reference tag}=file path and name
{reference tag}ALTSIPID={guid} (optional)
{reference tag}ATTR1={type}:{oid}:{value} (optional)
{reference tag}ATTR2={type}:{oid}:{value} (optional)
<HASH>kernel32.dll=kernel32.dll
<HASH>ntdll.dll=ntdll.dll

Заметка

Последняя запись в CDF-файле всегда должна иметь явный символ новой строки в конце строки.

 

В разделе [CatalogHeader] определяются сведения обо всем файле каталога.

Выбор Описание
Имя
Имя файла каталога, включая его расширение.
ResultDir
Каталог, в котором будет помещен созданный CAT-файл. Если не указано, используется текущий каталог по умолчанию. Если каталог не существует, он создается.
PublicVersion
Этот параметр не поддерживается.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: версия каталога. Если осталось пустым, используется значение по умолчанию 1.

CatalogVersion
Версия каталога. Если версия отсутствует или имеет значение 1, то 0x100 передается параметру dwPublicVersion dwPublicVersion функцииCryptCATOpen и создается файл каталога версии 1. Параметр HashAlgorithms должен быть пустым или содержать SHA1.
Если для версии задано значение 2, то функция 0x200 передается в параметр dwPublicVersion функции CryptCATOpen и создается файл каталога версии 2. Параметр HashAlgorithms должен содержать SHA256.
Если этот параметр присутствует, но содержит любое значение, отличное от 1 или 2, средство MakeCat завершит ошибку.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот параметр не поддерживается.

HashAlgorithms
Имя используемого алгоритма хэширования. Дополнительные сведения см. в параметре CatalogVersion.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот параметр не поддерживается.

PageHashes
Указывает, следует ли хэшировать файлы, перечисленные в параметре HAS> H <HASH, в разделе [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот параметр не поддерживается.

КодировкаType
Используемый тип кодирования сообщений. Если осталось пустым, кодировка по умолчанию PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

 

В разделе [CatalogFiles] определяется каждый член файла каталога с файлами различных типов и атрибутов различных типов в отдельных группах.

Выбор Описание
тег ссылки
Текстовая ссылка на файл. Это может включать любые текстовые символы ASCII, кроме знака равенства (=). Система должна иметь возможность воспроизвести этот тег после установки.
Используйте <HASH> в качестве префикса имени файла. Это приводит к тому, что тег является хэшом файла в строковой форме ASCII.
Путь к файлу и имя
Имя файла, включая расширение для анализа и относительный путь к файлу. Любой тип файла, который можно подписать с помощью SignTool, можно добавить в каталог. Например, имена файлов со следующими расширениями можно добавить в каталог: .exe, .cab, CAT, .ocx, .dllи .stl.
ALTSIPID
GUID SIP, используемый для хэширования вместо стандартного SIP на основе типа файла. Эта запись является необязательной. Если эта запись опущена, элемент будет хэширован с помощью SIP по умолчанию. Если по умолчанию нет установленного SIP, будет использоваться неструктурированный SIP.
guid
Текстовое представление GUID.
ATTRx
Необязательный. Атрибут или оператор о файле или содержимом. Может быть любое количество атрибутов, в том числе нет.
тип
Определяет, какой тип атрибута добавляется в формате 0x00000000 (текст). Этот параметр может быть побитовойИЛИ сочетанием нуля или более следующих значений:
  • 0x10000000 атрибут проверки подлинности (подписанный, включенный в хэш).
  • 0x20000000 атрибут unauthenticated (без знака, не включенный в хэш, не проверяемый).
  • 0x01000000 Атрибут не будет реплицирован в записи SHA1 в каталоге CatalogVersion 2.
  • атрибут 0x00010000 представлен в виде открытого текста. Преобразование не будет выполнено.
  • атрибут 0x00020000 представлен в кодировке base-64. Это используется для представления двоичных данных.
  • 0x00000001 Атрибут — это пара "имя-значение". Используйте параметр oid для имени. Этот атрибут медленный; следовательно, используйте этот параметр с разреженным способом.
  • 0x00000002 Атрибут ссылается на идентификатор объекта (OID).

oid
Текстовое представление ссылочного ключа атрибута. Это OID в виде текстовой строки в точечной нотации (например, a.b.c.d) или текстовое имя.
ценность
Текстовое представление значения атрибута. Тип используемого текстового представления зависит от значения параметра типа. Символы EOL определяют длину.
<ХЭШ>
Хэширует указанный файл.

 

Созданный файл каталога не назначен. Если он должен быть подписан перед передачей, он подписан с помощью SignTool.