共用方式為


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 下列值之零或多個值的組合:
  • 0x10000000已驗證的屬性(已簽署,包含在哈希中)。
  • 0x20000000未經驗證的屬性(未簽署,不包含在哈希中,無法驗證)。
  • 0x01000000屬性將不會復寫到 CatalogVersion 2 目錄中的 SHA1 專案。
  • 0x00010000 Attribute 是以純文字表示。 不會完成任何轉換。
  • 0x00020000 Attribute 是以base-64編碼表示。 這是用來表示二進位數據。
  • 0x00000001 Attribute 是名稱/值組。 針對名稱使用 oid 選項。 這個屬性很慢;因此,請謹慎使用此選項。
  • 0x00000002屬性是由 物件識別子 (OID) 所參考。

oid
屬性參考索引鍵的文字表示。 它是以虛線四元表示法(例如 a.b.c.d) 或文字 Name 的文字字串形式為 OID。
價值
屬性值的文字表示。 使用的文字表示類型取決於類型選項的值。 EOL 字元會決定長度。
<HASH>
哈希指定的檔案。

 

產生的目錄檔案未簽署。 如果要在傳輸之前簽署,則會使用 SignTool簽署。