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로 설정된 경우 "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 등의 확장명을 가진 파일 이름을 카탈로그에 추가할 수 있습니다.
ALTSIPID
파일 형식에 따라 표준 SIP 대신 해시에 사용할 SIP GUID입니다. 이 항목은 선택 항목입니다. 이 항목을 생략하면 멤버가 기본 SIP를 사용하여 해시됩니다. 설치된 기본 SIP가 없으면 Flat SIP가 사용됩니다.
guid
GUID의 텍스트 표현입니다.
ATTRx
선택 사항입니다. 파일 또는 콘텐츠에 대한 특성 또는 문입니다. 없음을 포함하여 여러 특성이 있을 수 있습니다.
형식
0x00000000(텍스트) 형식으로 추가되는 특성 유형을 정의합니다. 이 옵션은 다음 값 중 0개 이상의 비트 OR 조합일 수 있습니다.
  • 인증된 특성(서명됨, 해시에 포함)을 0x10000000.
  • 0x20000000 인증되지 않은 특성입니다(서명되지 않음, 해시에 포함되지 않음, 확인할 수 없음).
  • 0x01000000 특성은 CatalogVersion 2 카탈로그의 SHA1 항목에 복제되지 않습니다.
  • 0x00010000 특성은 일반 텍스트로 표시됩니다. 변환은 수행되지 않습니다.
  • 0x00020000 특성은 base-64 인코딩으로 표시됩니다. 이 값은 이진 데이터를 나타내는 데 사용됩니다.
  • 0x00000001 특성은 이름-값 쌍입니다. 이름에 oid 옵션을 사용합니다. 이 특성은 느립니다. 따라서 이 옵션은 아끼지 않고 사용합니다.
  • 0x00000002 특성은 OID( 개체 식별자 )에서 참조됩니다.

oid
특성 참조 키의 텍스트 표현입니다. 점선 쿼드 표기법(예: a.b.c.d) 또는 텍스트 이름에 있는 텍스트 문자열 형식의 OID입니다.

특성 값의 텍스트 표현입니다. 사용되는 텍스트 표현의 형식은 형식 옵션의 값에 따라 달라집니다. EOL 문자는 길이를 결정합니다.
<해시>
지정된 파일을 해시합니다.

 

생성된 카탈로그 파일은 서명되지 않았습니다. 전송 전에 서명하는 경우 SignTool을 사용하여 서명됩니다.