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 個以上の組み合わせを できます。
|
oid |
属性の参照キーのテキスト表現。 これは、ドット付きクワッド表記のテキスト文字列 (a.b.c.d など) またはテキスト名の形式の OID です。 |
価値 |
属性の値のテキスト表現。 使用されるテキスト表現の種類は、type オプションの値によって異なります。 EOL 文字によって長さが決まります。 |
<HASH> |
指定したファイルをハッシュします。 |
生成されたカタログ ファイルは符号なしです。 転送前に署名する場合は、SignTool 使用して署名されます。