MakeCat

MakeCat ツールは、カタログ ファイルを作成する CryptoAPI ツールです。 MakeCat は、Windows 7 および .NET Framework 4.0 用 Microsoft Windows Software Development Kit (SDK) の一部として使用でき、既定では SDK インストール パスの \Bin フォルダーにインストールされます。

MakeCat ツールでは、次のコマンド構文が使用されます。

MakeCat [-n-r-v||] FileName

パラメーター

パラメーター 説明
-n
回復可能なエラーで停止しないでください。
-r
回復可能なエラーが発生した場合、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

Note

.cdf ファイルの最後のエントリは、常に行の末尾に明示的な改行文字を含む必要があります。

 

[CatalogHeader] セクションでは、カタログ ファイル全体に関する情報を定義します。

オプション 説明
名前
カタログ ファイルの名前 (拡張子を含む)。
ResultDir
作成された .cat ファイルが配置されるディレクトリ。 指定されていない場合は、既定の現在のディレクトリが使用されます。 ディレクトリが存在しない場合は、作成されます。
PublicVersion
このオプションはサポートされていません。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: カタログ のバージョン。 空白のままにすると、既定値の 1 が使用されます。

CatalogVersion
カタログ のバージョン。 バージョンが存在しない場合、または 1 に設定されている場合は、CryptCATOpen 関数の dwPublicVersion パラメーターに "0x100" が渡され、バージョン 1 のカタログ ファイルが作成されます。 HashAlgorithms オプションは空であるか、SHA1 を含んでいる必要があります。
バージョンが 2 に設定されている場合、CryptCATOpen 関数の dwPublicVersion パラメーターに "0x200" が渡され、バージョン 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。
AltSIPID
ファイルの種類に基づく標準 SIP ではなく、ハッシュに使用される SIP GUID。 このエントリは省略可能です。 このエントリを省略すると、メンバーは既定の SIP を使用してハッシュされます。 既定でインストールされている SIP が見つからない場合は、フラット SIP が使用されます。
guid
GUID のテキスト表現。
ATTRx
省略可能。 ファイルまたはコンテンツに関する属性またはステートメント。 任意の数の属性 (none を含む) を指定できます。

0x00000000形式 (テキスト) で追加する属性の種類を定義します。 このオプションは、次の値の 0 個以上のビットごとの OR の組み合わせにすることができます。
  • 0x10000000 Authenticated 属性 (ハッシュに含まれる署名済み)。
  • 0x20000000認証されていない属性 (署名なし、ハッシュに含まれていない、検証不可能)。
  • 0x01000000 属性は、CatalogVersion 2 カタログ内の SHA1 エントリにはレプリケートされません。
  • 0x00010000属性はプレーンテキストで表されます。 変換は行われません。
  • 0x00020000属性は base-64 エンコードで表されます。 これは、バイナリ データを表すために使用されます。
  • 0x00000001 属性は名前と値のペアです。 名前には oid オプションを使用します。 この属性は低速です。そのため、このオプションは控えめに使用してください。
  • 0x00000002 属性は、 オブジェクト識別子 (OID) によって参照されます。

oid
属性の参照キーのテキスト表現。 これは、ドット四角形表記のテキスト文字列 (例: a.b.c.d) またはテキスト名の形式の OID です。
value
属性の値のテキスト表現。 使用されるテキスト表現の種類は、type オプションの値によって異なります。 EOL 文字によって長さが決まります。
<HASH>
指定したファイルをハッシュします。

 

生成されたカタログ ファイルは署名されていません。 転送前に署名する場合は、 SignTool を使用して署名されます。