MakeCat

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

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

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

Параметры

Параметр Описание
-n
Не останавливайтесь на восстанавливаемой ошибке.
-r
Принудительное завершение makeCat при возникновении ошибок, доступных для восстановления. В частности, она заканчивается при обработке записей в разделе файлов каталога CDF-файла.
-v
Подробного. Отображает все сообщения о ходе выполнения и ошибках.
FileName
Имя 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 функции 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
Указывает, следует ли хэшировать файлы, перечисленные в параметре <HASH> в разделе [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот параметр не поддерживается.

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

 

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

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

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

 

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