MakeCat
MakeCat 工具是可建立類別目錄檔案的 CryptoAPI 工具。 MakeCat 是 Microsoft Windows 軟體發展工具組的一部分, (SDK) for Windows 7 和 .NET Framework 4.0,預設會在 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] 區段會定義整個目錄檔案的相關資訊。
選項 | Description |
---|---|
名稱 |
目錄檔案的名稱,包括其副檔名。 |
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] 區段會定義類別目錄檔案的每個成員,其中包含不同群組中各種類型和各種類型屬性的檔案。
選項 | Description |
---|---|
參考標籤 |
檔案的文字參考。 這可以包含任何 ASCII 文字字元,但等號 (=) 除外。 安裝之後,系統必須能夠重現此標記。 使用 < HASH > 作為檔案名的前置詞。 這會導致標籤成為 ASCII 字串形式的檔案雜湊。 |
檔案路徑和名稱 |
檔案名,包括要剖析的副檔名,以及檔案的相對路徑。 任何可使用 SignTool 簽署的檔案類型都可以新增至目錄。 例如,可以新增下列副檔名的檔案名至目錄:.exe、.cab、.cat、.ocx、.dll 和 .stl。 |
ALTSHIGHD |
要用於雜湊的 SIP GUID,而不是根據檔案類型的標準 SIP。 這是選用項目。 如果省略此專案,則會使用預設 SIP 來雜湊成員。 如果找不到預設安裝的 SIP,則會使用一般 SIP。 |
guid |
GUID 的文字表示。 |
ATTRx |
選擇性。 關於檔案或內容的屬性或語句。 可以有任意數目的屬性,包括無。 |
類型 |
定義要以0x00000000 (文字) 格式新增的屬性類型。 此選項可以是零個或多個下列值的位OR 組合:
|
oid |
屬性參考索引鍵的文字表示。 它是以虛線四次表示 (法格式的文字字串形式的 OID,例如 a.b.c.d) 或文字名稱。 |
value |
屬性值的文字表示。 使用的文字表示類型取決於類型選項的值。 EOL 字元會決定長度。 |
<散 列> |
雜湊指定的檔案。 |
產生的目錄檔案是未簽署的。 如果要在傳輸之前簽署,則會使用 SignTool 簽署。