MakeCat

L’outil MakeCat est un outil CryptoAPI qui crée un fichier catalogue. MakeCat est disponible dans le cadre du Kit de développement logiciel (SDK) Microsoft Windows pour Windows 7 et .NET Framework 4.0 et est installé, par défaut, dans le dossier \Bin du chemin d’installation du SDK.

L’outil MakeCat utilise la syntaxe de commande suivante :

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

Paramètres

Paramètre Description
-n
Ne vous arrêtez pas en cas d’erreur récupérable.
-r
Force MakeCat à se terminer s’il rencontre des erreurs récupérables. Plus précisément, il se termine lors du traitement des entrées dans la section fichiers catalogue d’un fichier .cdf.
-v
Verbose. Affiche tous les messages de progression et d’erreur.
FileName
Nom du fichier .cdf à analyser. Pour connaître la structure et le contenu requis, consultez Remarques.

 

Notes

Le fichier .cdf doit être généré avec les spécifications suivantes.

[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

Notes

La dernière entrée du fichier .cdf doit toujours avoir un caractère de nouvelle ligne explicite à la fin de la ligne.

 

La section [CatalogHeader] définit des informations sur l’ensemble du fichier catalogue.

Option Description
Nom
Nom du fichier catalogue, y compris son extension.
ResultDir
Répertoire où le fichier .cat créé sera placé. Si ce n’est pas indiqué, le répertoire actif par défaut est utilisé. Si le répertoire n’existe pas, il est créé.
PublicVersion
Cette option n'est pas prise en charge.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Version du catalogue. Si elle est vide, la valeur par défaut, 1, est utilisée.

CatalogVersion
Version du catalogue. Si la version n’est pas présente ou est définie sur 1, « 0x100 » est passé au paramètre dwPublicVersion de la fonction CryptCATOpen et un fichier catalogue version 1 est créé. L’option HashAlgorithms doit être vide ou contenir SHA1.
Si la version est définie sur 2, « 0x200 » est passé au paramètre dwPublicVersion de la fonction CryptCATOpen et un fichier catalogue version 2 est créé. L’option HashAlgorithms doit contenir SHA256.
Si cette option est présente mais contient une valeur autre que 1 ou 2, l’outil MakeCat présente une erreur.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette option n’est pas prise en charge.

HachageAlgorithms
Nom de l’algorithme de hachage utilisé. Pour plus d’informations, consultez l’option CatalogVersion.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette option n’est pas prise en charge.

PageHashes
Spécifie s’il faut hacher les fichiers répertoriés dans l’option <HASH> de la section [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette option n’est pas prise en charge.

EncodingType
Type d’encodage de message utilisé. S’il n’est pas renseigné, le type d’encodage par défaut est PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

 

La section [CatalogFiles] définit chaque membre du fichier catalogue avec des fichiers de différents types et attributs de différents types dans des groupes distincts.

Option Description
balise de référence
Référence de texte au fichier. Cela peut inclure tous les caractères de texte ASCII à l’exception du signe égal (=). Le système doit être en mesure de reproduire cette étiquette après l’installation.
Utilisez <HASH> comme préfixe du nom de fichier. Par conséquent, la balise est le hachage du fichier sous forme de chaîne ASCII.
chemin d’accès et nom du fichier
Nom du fichier, y compris l’extension à analyser et le chemin d’accès relatif au fichier. Tout type de fichier pouvant être signé avec SignTool peut être ajouté à un catalogue. Par exemple, les noms de fichiers avec les extensions suivantes, entre autres, peuvent être ajoutés à un catalogue : .exe, .cab, .cat, .ocx, .dll et .stl.
ALTSIPID
GUID SIP qui doit être utilisé pour le hachage au lieu du SIP standard basé sur le type de fichier. Cette entrée est facultative. Si cette entrée est omise, le membre est haché à l’aide du SIP par défaut. Si aucun SIP installé par défaut n’est trouvé, le SIP plat est utilisé.
guid
Représentation textuelle d’un GUID.
ATTRx
Optionnel. Attribut ou instruction concernant le fichier ou le contenu. Il peut y avoir n’importe quel nombre d’attributs, y compris aucun.
type
Définit le type d’attribut ajouté au format 0x00000000 (texte). Cette option peut être une combinaison ou au niveau du bit de zéro ou plus des valeurs suivantes :
  • 0x10000000 attribut Authentifié (signé, inclus dans le hachage).
  • 0x20000000 attribut Non authentifié (non signé, non inclus dans le hachage, non vérifiable).
  • 0x01000000 Attribut ne sera pas répliqué dans les entrées SHA1 d’un catalogue CatalogVersion 2.
  • 0x00010000 Attribute est représenté en texte brut. Aucune conversion n’est effectuée.
  • 0x00020000 Attribute est représenté dans l’encodage en base 64. Il est utilisé pour représenter des données binaires.
  • 0x00000001 Attribute est une paire nom-valeur. Utilisez l’option oid pour le nom. Cet attribut est lent ; Par conséquent, utilisez cette option avec parcimonie.
  • 0x00000002 Attribute est référencé par un identificateur d’objet (OID).

oid
Représentation textuelle de la clé de référence de l’attribut. Il s’agit d’un OID sous la forme d’une chaîne de texte en notation à quatre points (par exemple, a.b.c.d) ou d’un nom de texte.
value
Représentation textuelle de la valeur de l’attribut. Le type de représentation textuelle utilisée dépend de la valeur de l’option de type. Les caractères EOL déterminent la longueur.
<HASH>
Hache le fichier spécifié.

 

Le fichier catalogue généré n’est pas signé. S’il doit être signé avant la transmission, il est signé à l’aide de SignTool.