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。 |
ALTS打法 |
要用於哈希的SIP GUID,而不是以檔類型為基礎的標準 SIP。 此項目為選擇性專案。 如果省略此專案,則會使用預設 SIP 來哈希成員。 如果找不到預設安裝的 SIP,則會使用一般 SIP。 |
guid |
GUID 的文字表示。 |
ATTRx |
自選。 關於檔案或內容的屬性或語句。 可以有任意數目的屬性,包括無。 |
類型 |
定義要以0x00000000格式新增的屬性類型(text)。 這個選項可以是位OR 下列值之零或多個值的組合:
|
oid |
屬性參考索引鍵的文字表示。 它是以虛線四元表示法(例如 a.b.c.d) 或文字 Name 的文字字串形式為 OID。 |
價值 |
屬性值的文字表示。 使用的文字表示類型取決於類型選項的值。 EOL 字元會決定長度。 |
<HASH> |
哈希指定的檔案。 |
產生的目錄檔案未簽署。 如果要在傳輸之前簽署,則會使用 SignTool簽署。