MakeCat

Lo strumento MakeCat è uno strumento CryptoAPI che crea un file di catalogo. MakeCat è disponibile come parte di Microsoft Windows Software Development Kit (SDK) per Windows 7 e .NET Framework 4.0 ed è installato, per impostazione predefinita, nella cartella \Bin del percorso di installazione dell'SDK.

Lo strumento MakeCat usa la sintassi di comando seguente:

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

Parametri

Parametro Descrizione
-n
Non arrestarsi in un errore ripristinabile.
-r
Forza MakeCat alla fine se rileva errori recuperabili. In particolare, termina quando si elaborano le voci nella sezione file di catalogo di un file con estensione cdf.
-v
Dettagliato. Visualizza tutti i messaggi di stato e di errore.
FileName
Nome del file con estensione cdf da analizzare. Per la struttura e il contenuto necessari, vedere Osservazioni.

 

Commenti

Il file cdf deve essere compilato con le specifiche seguenti.

[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

Nota

L'ultima voce nel file cdf deve sempre avere un carattere newline esplicito alla fine della riga.

 

La sezione [CatalogHeader] definisce le informazioni sull'intero file di catalogo.

Opzione Descrizione
Nome
Nome del file di catalogo, inclusa la relativa estensione.
ResultDir
Directory in cui verrà inserito il file con estensione cat creato. Se non indicato, viene usata la directory corrente predefinita. Se la directory non esiste, viene creata.
PublicVersion
Questa opzione non è supportata.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Versione del catalogo. Se viene lasciato vuoto, viene usato il valore predefinito 1.

CatalogVersion
Versione del catalogo. Se la versione non è presente o è impostata su 1, viene passato "0x100" al parametro dwPublicVersion della funzione CryptCATOpen e viene creato un file di catalogo versione 1. L'opzione HashAlgorithms deve essere vuota o contenere SHA1.
Se la versione è impostata su 2, "0x200" viene passata al parametro dwPublicVersion della funzione CryptCATOpen e viene creato un file di catalogo versione 2. L'opzione HashAlgorithms deve contenere SHA256.
Se questa opzione è presente ma contiene qualsiasi valore diverso da 1 o 2, lo strumento MakeCat verrà visualizzato un errore.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questa opzione non è supportata.

HashAlgorithms
Nome dell'algoritmo hash usato. Per altre informazioni, vedere l'opzione CatalogVersion.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questa opzione non è supportata.

PageHashes
Specifica se eseguire l'hash dei file elencati nell'opzione <HASH> nella sezione [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questa opzione non è supportata.

EncodingType
Tipo di codifica dei messaggi usata. Se viene lasciato vuoto, il tipo di codifica predefinito è PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

 

La sezione [CatalogFiles] definisce ogni membro del file di catalogo con file di vari tipi e attributi di vari tipi in gruppi separati.

Opzione Descrizione
tag di riferimento
Riferimento di testo al file. Ciò può includere tutti i caratteri di testo ASCII tranne il segno di uguale (=). Il sistema deve essere in grado di riprodurre questo tag dopo l'installazione.
Usare <HASH> come prefisso del nome del file. Ciò comporta che il tag sia l'hash del file nel formato stringa ASCII.
percorso file e nome
Nome file, incluso l'estensione da analizzare e il percorso relativo del file. Qualsiasi tipo di file che può essere firmato con SignTool può essere aggiunto a un catalogo. Ad esempio, i nomi di file con le estensioni seguenti, tra gli altri, possono essere aggiunti a un catalogo: .exe, .cab, .cat, .ocx, .dll e stl.
ALTSIPID
GUID SIP da usare per l'hashing anziché il SIP standard in base al tipo di file. Questa voce è facoltativa. Se questa voce viene omessa, il membro verrà hashato usando il sip predefinito. Se non viene trovato alcun SIP installato per impostazione predefinita, verrà usato flat SIP.
guid
Rappresentazione testuale di un GUID.
ATTRx
Facoltativa. Attributo o istruzione sul file o sul contenuto. Può essere presente un numero qualsiasi di attributi, inclusi nessuno.
tipo
Definisce il tipo di attributo aggiunto nel formato 0x00000000 (testo). Questa opzione può essere una combinazione bit per bit-OR di zero o più dei valori seguenti:
  • 0x10000000 attributo autenticato (firmato, incluso nell'hash).
  • 0x20000000 attributo non autenticato (non firmato, non incluso nell'hash, non verificabile).
  • 0x01000000 Attributo non verrà replicato nelle voci SHA1 in un catalogo CatalogVersion 2.
  • 0x00010000 Attributo è rappresentato in testo non crittografato. Non verrà eseguita alcuna conversione.
  • 0x00020000 Attributo è rappresentato nella codifica base-64. Questa operazione viene usata per rappresentare i dati binari.
  • 0x00000001 Attributo è una coppia nome-valore. Usare l'opzione oid per il nome. Questo attributo è lento; pertanto, usare questa opzione in modo spasimo.
  • 0x00000002 Attributo viene fatto riferimento a un identificatore di oggetto (OID).

oid
Rappresentazione di testo della chiave di riferimento dell'attributo. È un OID sotto forma di stringa di testo in notazione quad tratteggiata ,ad esempio a.b.c.d) o un nome di testo.
Valore
Rappresentazione di testo del valore dell'attributo. Il tipo di rappresentazione di testo usato dipende dal valore dell'opzione di tipo. I caratteri EOL determinano la lunghezza.
<HASH>
Hash del file specificato.

 

Il file di catalogo generato non è firmato. Se deve essere firmato prima della trasmissione, viene firmato con SignTool.