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