MakeCat

A ferramenta MakeCat é uma ferramenta CryptoAPI que cria um arquivo de catálogo. O MakeCat está disponível como parte do Microsoft Windows Software Development Kit (SDK) para Windows 7 e .NET Framework 4.0 e está instalado, por padrão, na pasta \Bin do caminho de instalação do SDK.

A ferramenta MakeCat usa a seguinte sintaxe de comando:

MakeCat [-n-r-v||] FileName

Parâmetros

Parâmetro Descrição
-n
Não pare em um erro recuperável.
-r
Força o MakeCat a terminar se encontrar erros recuperáveis. Especificamente, ele terminará ao processar as entradas na seção arquivos de catálogo de um arquivo .cdf.
-v
Detalhado. Exibe todas as mensagens de progresso e erro.
FileName
Nome do arquivo .cdf a ser analisado. Para obter a estrutura e o conteúdo necessários, consulte Comentários.

 

Comentários

O arquivo .cdf deve ser criado com as especificações a seguir.

[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

Observação

A última entrada no arquivo .cdf deve sempre ter um caractere de nova linha explícito no final da linha.

 

A seção [CatalogHeader] define informações sobre todo o arquivo de catálogo.

Opção Descrição
Nome
Nome do arquivo de catálogo, incluindo sua extensão.
ResultDir
Diretório em que o arquivo .cat criado será colocado. Se não for indicado, o diretório atual padrão será usado. Se o diretório não existir, ele será criado.
PublicVersion
Não há suporte para essa opção.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Versão do catálogo. Se deixado em branco, o valor padrão, 1, será usado.

CatalogVersion
Versão do catálogo. Se a versão não estiver presente ou estiver definida como 1, "0x100" será passado para o parâmetro dwPublicVersion da função CryptCATOpen e um arquivo de catálogo da versão 1 será criado. A opção HashAlgorithms deve estar vazia ou conter SHA1.
Se a versão for definida como 2, "0x200" será passado para o parâmetro dwPublicVersion da função CryptCATOpen e um arquivo de catálogo da versão 2 será criado. A opção HashAlgorithms deve conter SHA256.
Se essa opção estiver presente, mas contiver qualquer valor diferente de 1 ou 2, a ferramenta MakeCat errou.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para essa opção.

HashAlgorithms
Nome do algoritmo de hash usado. Para obter mais informações, consulte a opção CatalogVersion.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para essa opção.

PageHashes
Especifica se os arquivos listados na opção <HASH devem ser hash> na seção [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para essa opção.

EncodingType
Tipo de codificação de mensagem usada. Se deixado em branco, o EncodingType padrão será PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

 

A seção [CatalogFiles] define cada membro do arquivo de catálogo com arquivos de vários tipos e atributos de vários tipos em grupos separados.

Opção Descrição
marca de referência
Referência de texto para o arquivo. Isso pode incluir todos os caracteres de texto ASCII, exceto o sinal de igual (=). O sistema deve ser capaz de reproduzir essa marca após a instalação.
Use <HASH> como um prefixo do nome do arquivo. Isso faz com que a marca seja o hash do arquivo no formulário de cadeia de caracteres ASCII.
caminho e nome do arquivo
O nome do arquivo, incluindo a extensão a ser analisada e o caminho relativo para o arquivo. Qualquer tipo de arquivo que possa ser assinado com o SignTool pode ser adicionado a um catálogo. Por exemplo, nomes de arquivo com as seguintes extensões, entre outros, podem ser adicionados a um catálogo: .exe, .cab, .cat, .ocx, .dll e .stl.
ALTSIPID
GUID SIP que deve ser usado para hash em vez do SIP padrão com base no tipo de arquivo. Essa entrada é opcional. Se essa entrada for omitida, o membro será hash usando o SIP padrão. Se nenhum SIP instalado padrão for encontrado, o SIP Simples será usado.
guid
Representação de texto de um GUID.
ATTRx
Opcional. Atributo ou instrução sobre o arquivo ou conteúdo. Pode haver qualquer número de atributos, incluindo nenhum.
tipo
Define qual tipo de atributo está sendo adicionado no formato 0x00000000 (texto). Essa opção pode ser uma combinação or bit a bit de zero ou mais dos seguintes valores:
  • 0x10000000 atributo Autenticado (assinado, incluído no hash).
  • 0x20000000 atributo não autenticado (sem sinal, não incluído no hash, não verificável).
  • 0x01000000 Attribute não será replicado para entradas SHA1 em um catálogo CatalogVersion 2.
  • 0x00010000 Attribute é representado em texto sem formatação. Nenhuma conversão será feita.
  • 0x00020000 Attribute é representado na codificação base-64. Isso é usado para representar dados binários.
  • 0x00000001 Attribute é um par nome-valor. Use a opção oid para o nome. Esse atributo é lento; portanto, use essa opção com moderação.
  • 0x00000002 Attribute é referenciado por um OID ( identificador de objeto ).

oid
A representação de texto da chave de referência do atributo. É um OID na forma de uma cadeia de caracteres de texto na notação quad pontilhada (por exemplo, a.b.c.d) ou um nome de texto.
value
A representação de texto do valor do atributo. O tipo de representação de texto usado depende do valor da opção de tipo. Os caracteres EOL determinam o comprimento.
<HASH>
Hashes o arquivo especificado.

 

O arquivo de catálogo gerado não está assinado. Se for para ser assinado antes do transmittal, ele será assinado usando SignTool.