Microsoft Cabinet

From XentaxWiki
Jump to: navigation, search

Contents: GRAFs page - All - 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - Edit

Format Type: Archive
Extensions: cab
Platforms: unknown
Endian Order: Little Endian



Format Specifications

CFHEADER
  uint32 {4}       - Header (MSCF)
  uint32 {4}       - Reserved (null)
  uint32 {4}       - Archive Length
  uint32 {4}       - Reserved (null)
  uint32 {4}       - Offset to the first CFFILE
  uint32 {4}       - Reserved (null)
  byte {1}         - Minor Version (3)
  byte {1}         - Major Version (1)
  uint16 {2}       - Number of Folders
  uint16 {2}       - Number of Files
  uint16 {2}       - Flags
  uint16 {2}       - Cabinet Set ID Number
  uint16 {2}       - Sequential Number of this Cabinet file in a Set
  if (flags & 4){
    uint16 {2}       - Header Reserve Size
    byte {1}         - Folder Reserve Size
    byte {1}         - File Reserve Size
    if (HeaderReserveSize != 0){
      byte {X}         - Reserve Data (length = HeaderReserveSize)
      }

    }

  if (flags & 1){
    byte {0-255}     - Previous CAB Filename
    byte {1}         - null Filename Terminator
    byte {0-255}     - Previous Disk Name
    byte {1}         - null Disk Name Terminator
    }

  if (flags & 2){
    byte {0-255}     - Next CAB Filename
    byte {1}         - null Filename Terminator
    byte {0-255}     - Next Disk Name
    byte {1}         - null Disk Name Terminator
    }

for each Folder
  CFFOLDER
    uint32 {4}       - Offset to the first CFDATA in this Folder
    uint16 {2}       - Number of CFDATA blocks in this Folder
    uint16 {2}       - Compression Format for each CFDATA in this Folder (1 = MSZIP)
    if (flags & 4){
      byte {X}         - Reserve Data (length = FolderReserveSize)
      }

for each File
  CFFILE
    uint32 {4}       - Uncompressed File Length
    uint32 {4}       - Offset in the Uncompressed CFDATA for the Folder this file belongs to (relative to the start of the Uncompressed CFDATA for this Folder)
    uint16 {2}       - Folder ID (starts at 0)
    uint16 {2}       - File Date
    uint16 {2}       - File Time
    uint16 {2}       - File Attributes
    if (FileAttributes & 64){
      byte {X}         - Filename (Unicode)
      byte {2?}        - null Filename Terminator
      }

    else {
      byte {X}         - Filename (ASCII)
      byte {1}         - null Filename Terminator
      }

for each File
  CFDATA
    uint32 {4}       - Checksum
    uint16 {2}       - Compressed Data Length
    uint16 {2}       - Uncompressed Data Length
    if (flags & 4){
      byte {X}         - Reserve Data (length = FileReserveSize)
      }

    byte {X}         - Compressed Data

MSZIP COMPRESSION
  for each compressed block (uncompressed size of the block is at most 32k)
    uint16 {2}       - Zip Header (67, 75)
    byte {X}         - Compressed Data (Deflate)



MultiEx BMS Script

No BMS script

Supported Programs



Notes

No additional notes

Games

  • Microsoft Cabinet



Navigation

Jump to a listing by...
All Formats - Common Formats - Standard Formats - Malformed Pages
Platforms
Microsoft:
Xbox
Xbox 360
Nintendo:
GameCube
DS
Desktop:
PC
Sega:
Dreamcast
Sony:
PlayStation
PlayStation 2
PlayStation 3
PlayStation Portable
Type
Animation - Archive - Audio - Image - Mesh - Miscellaneous - Model - Video
Endianness
Little-endian - Big-endian
BMS Scripts
Pages Without a BMS Script

All Pages with Scripts:
Recently Added Scripts

Program Support
No Known Support

MultiEx Commander - Game Extractor

Format Specification Completion
Work in Progress - Almost Done - Completed
Compression and Encryption
No Compression or Encryption Used - Unknown Compression or Encryption Used

One or Both Used:
Compression Used - Both Compression and Encryption Used