次の方法で共有


MakeCat

MakeCat ツールは、カタログ ファイルを作成する CryptoAPI ツールです。 MakeCat は、Windows 7 および .NET Framework 4.0 用 Microsoft Windows ソフトウェア開発キット (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

手記

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

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

 

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