Delen via


MakeCat

Het hulpprogramma MakeCat is een CryptoAPI-hulpprogramma waarmee een catalogusbestand wordt gemaakt. MakeCat is beschikbaar als onderdeel van de Microsoft Windows Software Development Kit (SDK) voor Windows 7 en .NET Framework 4.0 en wordt standaard geïnstalleerd in de map \Bin van het SDK-installatiepad.

Het hulpprogramma MakeCat gebruikt de volgende opdrachtsyntaxis:

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

Parameters

Parameter Beschrijving
-n-
Stop niet op een herstelbare fout.
-r-
Dwingt MakeCat af als er herstelbare fouten optreden. Dit eindigt met name bij het verwerken van de vermeldingen in de sectie catalogusbestanden van een CDF-bestand.
-v-
Breedsprakig. Geeft alle voortgangs- en foutberichten weer.
FileName-
De naam van het CDF-bestand dat moet worden geparseerd. Zie Opmerkingen voor de vereiste structuur en inhoud.

 

Opmerkingen

Het .cdf-bestand moet worden gebouwd met de volgende specificaties.

[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

Notitie

De laatste vermelding in het CDF-bestand moet altijd een expliciet nieuwlijnteken aan het einde van de regel hebben.

 

De sectie [CatalogHeader] definieert informatie over het hele catalogusbestand.

Optie Beschrijving
Naam
Naam van het catalogusbestand, inclusief de extensie.
ResultDir
Map waarin het gemaakte .cat-bestand wordt geplaatst. Als dit niet wordt aangegeven, wordt de standaard huidige map gebruikt. Als de map niet bestaat, wordt deze gemaakt.
PublicVersion
Deze optie wordt niet ondersteund.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 en Windows XP: Catalogusversie. Als u niets opgeeft, wordt de standaardwaarde, 1, gebruikt.

CatalogVersion
Catalogusversie. Als de versie niet aanwezig is of is ingesteld op 1, wordt '0x100' doorgegeven aan de parameter dwPublicVersion van de functie CryptCATOpen en wordt er een catalogusbestand met versie 1 gemaakt. De optie HashAlgorithms moet leeg zijn of SHA1 bevatten.
Als de versie is ingesteld op 2, wordt '0x200' doorgegeven aan de parameter dwPublicVersion van de functie CryptCATOpen en wordt er een catalogusbestand met versie 2 gemaakt. De optie HashAlgorithms moet SHA256 bevatten.
Als deze optie aanwezig is, maar een andere waarde dan 1 of 2 bevat, wordt er een foutmelding weergegeven in het MakeCat-hulpprogramma.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 en Windows XP: Deze optie wordt niet ondersteund.

HashAlgorithms
Naam van het hash-algoritme dat wordt gebruikt. Zie de optie CatalogVersion voor meer informatie.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 en Windows XP: Deze optie wordt niet ondersteund.

PageHashes
Hiermee geeft u op of de bestanden moeten worden gehasht die worden vermeld in de <hash-> optie in de sectie [CatalogFiles]
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 en Windows XP: Deze optie wordt niet ondersteund.

EncodingType
Type berichtcodering dat wordt gebruikt. Als dit veld leeg blijft, is het standaard EncodingType PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

 

De sectie [CatalogFiles] definieert elk lid van het catalogusbestand met bestanden van verschillende typen en kenmerken van verschillende typen in afzonderlijke groepen.

Optie Beschrijving
referentietag
Tekstreferentie naar het bestand. Dit kan alle ASCII-teksttekens bevatten, behalve het gelijkteken (=). Het systeem moet deze tag na de installatie kunnen reproduceren.
Gebruik <HASH-> als voorvoegsel van de bestandsnaam. Dit resulteert in de tag in de hash van het bestand in ascii-tekenreeksformulier.
bestandspad en -naam
De bestandsnaam, inclusief de extensie die moet worden geparseerd en het relatieve pad naar het bestand. Elk type bestand dat kan worden ondertekend met SignTool, kan worden toegevoegd aan een catalogus. Bestandsnamen met de volgende extensies kunnen bijvoorbeeld worden toegevoegd aan een catalogus: .exe, .cab, .cat, .ocx, .dllen .stl.
ALTSIPID
SIP-GUID die moet worden gebruikt voor hashing in plaats van de standaard SIP op basis van bestandstype. Deze vermelding is optioneel. Als deze vermelding wordt weggelaten, wordt het lid gehasht met behulp van de standaard-SIP. Als er geen standaard geïnstalleerde SIP wordt gevonden, wordt de Flat SIP gebruikt.
Guid
Tekstweergave van een GUID.
ATTRx
Facultatief. Kenmerk of instructie over het bestand of de inhoud. Er kan een willekeurig aantal kenmerken zijn, inclusief geen.
type
Hiermee definieert u welk type kenmerk wordt toegevoegd in de indeling 0x00000000 (tekst). Deze optie kan een bitsgewijzeOF combinatie van nul of meer van de volgende waarden zijn:
  • 0x10000000 geverifieerd kenmerk (ondertekend, opgenomen in de hash).
  • 0x20000000 niet-geverifieerd kenmerk (niet-ondertekend, niet opgenomen in de hash, niet verifieerbaar).
  • 0x01000000 kenmerk wordt niet gerepliceerd naar SHA1-vermeldingen in een CatalogVersion 2-catalogus.
  • 0x00010000 kenmerk wordt weergegeven in tekst zonder opmaak. Er wordt geen conversie uitgevoerd.
  • 0x00020000 kenmerk wordt weergegeven in base-64-codering. Dit wordt gebruikt om binaire gegevens weer te geven.
  • 0x00000001 kenmerk is een naam-waardepaar. Gebruik de oid-optie voor de naam. Dit kenmerk is traag; gebruik deze optie daarom spaarzaam.
  • 0x00000002 kenmerk wordt verwezen door een object-id (OID).

Oid
De tekstweergave van de referentiesleutel van het kenmerk. Het is een OID in de vorm van een tekenreeks in gestippelde quad-notatie (bijvoorbeeld a.b.c.d) of een tekstnaam.
waarde
De tekstweergave van de waarde van het kenmerk. Het gebruikte type tekstweergave is afhankelijk van de waarde van de typeoptie. De EOL-tekens bepalen de lengte.
<HASH->
Hashes het opgegeven bestand.

 

Het gegenereerde catalogusbestand is niet ondertekend. Als het moet worden ondertekend vóór verzending, wordt het ondertekend met behulp van SignTool.