MakeCat
MakeCat 工具是一个 CryptoAPI 工具,用于创建目录文件。 MakeCat 作为 Windows 7 和 .NET Framework 4.0 Microsoft Windows 软件开发工具包(SDK)的一部分提供,默认情况下安装在 SDK 安装路径的 \Bin 文件夹中。
MakeCat 工具使用以下命令语法:
MakeCat [-n|-r|-v] FileName
参数
参数 | 描述 |
---|---|
-n |
不要在可恢复的错误时停止。 |
-r |
如果 MakeCat 遇到可恢复的错误,则强制 MakeCat 结束。 具体而言,它将在处理 .cdf 文件的目录文件部分中的条目时结束。 |
-v |
详细。 显示所有进度和错误消息。 |
FileName |
要分析的 .cdf 文件的名称。 有关所需的结构和内容,请参阅“备注”。 |
言论
必须使用以下规范生成 .cdf 文件。
[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
注意
.cdf 文件中的最后一个条目必须始终在行末尾具有显式换行符。
[CatalogHeader] 节定义有关整个目录文件的信息。
选择 | 描述 |
---|---|
名字 |
目录文件的名称,包括其扩展名。 |
ResultDir |
将放置已创建的 .cat 文件的目录。 如果未指示,则使用默认的当前目录。 如果该目录不存在,则会创建它。 |
PublicVersion |
不支持此选项。 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 目录版本。 如果留空,则使用默认值 1。 |
CatalogVersion |
目录版本。 如果版本不存在或设置为 1,则会将“0x100”传递给 CryptCATOpen 函数的 dwPublicVersion 参数,并创建版本 1 目录文件。 HashAlgorithms 选项必须为空或包含 SHA1。 如果版本设置为 2,则会将“0x200”传递给 CryptCATOpen 函数的 dwPublicVersion 参数,并创建版本 2 目录文件。 HashAlgorithms 选项必须包含 SHA256。 如果此选项存在,但包含除 1 或 2 以外的任何值,则 MakeCat 工具将出错。 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此选项。 |
HashAlgorithms |
使用的哈希算法的名称。 有关详细信息,请参阅 CatalogVersion 选项。 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此选项。 |
PageHashes |
指定是否对 [CatalogFiles] 节中 <HASH> 选项中列出的文件进行哈希处理 Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此选项。 |
EncodingType |
使用的消息编码类型。 如果留空,则默认的 EncodingType PKCS_7_ASN_ENCODING |X509_ASN_ENCODING,0x00010001。 |
[CatalogFiles] 节定义目录文件的每个成员,其中包含不同类型的文件和不同组中各种类型的属性。
选择 | 描述 |
---|---|
引用标记 |
对文件的文本引用。 这可以包括除等号(=)之外的任何 ASCII 文本字符。 安装后,系统必须能够重现此标记。 使用 <HASH> 作为文件名的前缀。 这会导致标记成为 ASCII 字符串形式的文件哈希。 |
文件路径和名称 |
文件名,包括要分析的扩展名和文件的相对路径。 可以使用 SignTool 签名的任何类型的文件都可以添加到目录中。 例如,可以将扩展名如下的文件名添加到目录中:.exe、.cab、.cat、.ocx、.dll和 .stl。 |
ALTSPID |
用于哈希的 SIP GUID,而不是基于文件类型的标准 SIP。 此项是可选的。 如果省略此条目,将使用默认 SIP 对成员进行哈希处理。 如果未找到默认安装的 SIP,将使用平面 SIP。 |
guid |
GUID 的文本表示形式。 |
ATTRx |
自选。 有关文件或内容的属性或语句。 可以有任意数量的属性,包括无。 |
类型 |
定义以0x00000000(文本)格式添加的属性类型。 此选项可以是按位或 以下值中的零个或多个组合:
|
oid |
属性的引用键的文本表示形式。 它是一个 OID,采用带点四表示法的文本字符串(例如,a.b.c.d)或文本名称的形式。 |
价值 |
特性值的文本表示形式。 使用的文本表示形式的类型取决于类型选项的值。 EOL 字符确定长度。 |
<HASH> |
对指定的文件进行哈希处理。 |
生成的目录文件未签名。 如果要在传输之前对其进行签名,则使用 SignTool对其进行签名。