MakeCat
La herramienta MakeCat es una herramienta CryptoAPI que crea un archivo de catálogo. MakeCat está disponible como parte del Kit de desarrollo de software (SDK) de Microsoft Windows para Windows 7 y .NET Framework 4.0 y está instalado, de forma predeterminada, en la carpeta \Bin de la ruta de instalación del SDK.
La herramienta MakeCat usa la siguiente sintaxis de comandos:
MakeCat [-n-r-v||] FileName
Parámetro | Descripción |
---|---|
-n |
No se detenga en un error recuperable. |
-r |
Obliga a MakeCat a finalizar si encuentra errores recuperables. En concreto, finalizará al procesar las entradas de la sección de archivos de catálogo de un archivo .cdf. |
-v |
Detallado. Muestra todos los mensajes de progreso y error. |
FileName |
Nombre del archivo .cdf que se va a analizar. Para obtener la estructura y el contenido necesarios, vea Comentarios. |
El archivo .cdf debe compilarse con las especificaciones siguientes.
[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
La última entrada del archivo .cdf siempre debe tener un carácter de nueva línea explícito al final de la línea.
La sección [CatalogHeader] define información sobre todo el archivo de catálogo.
Opción | Descripción |
---|---|
Nombre |
Nombre del archivo de catálogo, incluida su extensión. |
ResultDir |
Directorio donde se colocará el archivo .cat creado. Si no se indica, se usa el directorio actual predeterminado. Si el directorio no existe, se crea. |
PublicVersion |
Esta opción no se admite. Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Versión del catálogo. Si se deja en blanco, se usa el valor predeterminado, 1. |
CatalogVersion |
Versión del catálogo. Si la versión no está presente o está establecida en 1, se pasa "0x100" al parámetro dwPublicVersion de la función CryptCATOpen y se crea un archivo de catálogo de la versión 1. La opción HashAlgorithms debe estar vacía o contener SHA1. Si la versión se establece en 2, se pasa "0x200" al parámetro dwPublicVersion de la función CryptCATOpen y se crea un archivo de catálogo de la versión 2. La opción HashAlgorithms debe contener SHA256. Si esta opción está presente pero contiene cualquier valor distinto de 1 o 2, se producirá un error en la herramienta MakeCat. Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Esta opción no se admite. |
HashAlgorithms |
Nombre del algoritmo hash utilizado. Para obtener más información, vea la opción CatalogVersion. Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Esta opción no se admite. |
PageHashes |
Especifica si se deben aplicar hash a los archivos enumerados en la <opción HASH> de la sección [CatalogFiles] Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Esta opción no se admite. |
EncodingType |
Tipo de codificación de mensajes usada. Si se deja en blanco, el valor predeterminado de EncodingType es PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001. |
La sección [CatalogFiles] define cada miembro del archivo de catálogo con archivos de varios tipos y atributos de varios tipos en grupos independientes.
Opción | Descripción |
---|---|
etiqueta de referencia |
Referencia de texto al archivo. Esto puede incluir cualquier carácter de texto ASCII excepto el signo igual (=). El sistema debe poder reproducir esta etiqueta después de la instalación. Use <HASH> como prefijo del nombre de archivo. Esto da como resultado que la etiqueta sea el hash del archivo en forma de cadena ASCII. |
ruta de acceso y nombre del archivo |
Nombre de archivo, incluida la extensión que se va a analizar y la ruta de acceso relativa al archivo. Cualquier tipo de archivo que se pueda firmar con SignTool se puede agregar a un catálogo. Por ejemplo, los nombres de archivo con las siguientes extensiones, entre otras, se pueden agregar a un catálogo: .exe, .cab, .cat, .ocx, .dll y .stl. |
ALTSIPID |
GUID SIP que se va a usar para aplicar un algoritmo hash en lugar del SIP estándar basado en el tipo de archivo. Esta entrada es opcional. Si se omite esta entrada, el miembro se aplica un algoritmo hash mediante el SIP predeterminado. Si no se encuentra ningún SIP instalado predeterminado, se usará el SIP plano. |
guid |
Representación de texto de un GUID. |
ATTRx |
Opcional. Atributo o instrucción sobre el archivo o el contenido. Puede haber cualquier número de atributos, incluidos ninguno. |
type |
Define qué tipo de atributo se agrega en el formato 0x00000000 (texto). Esta opción puede ser una combinación or bit a bit de cero o más de los valores siguientes:
|
oid |
Representación de texto de la clave de referencia del atributo. Es un OID en forma de cadena de texto en notación cuadrática de puntos (por ejemplo, a.b.c.d) o un nombre de texto. |
value |
Representación de texto del valor del atributo. El tipo de representación de texto utilizado depende del valor de la opción de tipo. Los caracteres EOL determinan la longitud. |
<HASH> |
Aplica un algoritmo hash al archivo especificado. |
El archivo de catálogo generado no está firmado. Si se va a firmar antes de la transmisión, se firma mediante SignTool.