InstallShield

From XentaxWiki
Revision as of 15:13, 15 September 2017 by WATTO (talk | contribs) (Created page with " Game: InstallShield Status: Complete Extension: cab Category:Extension_cab +...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 cab + hdr
Platforms: unknown
Endian Order: Little Endian



Format Specifications (Type 1)

The *.cab file contains the file data, the *.hdr file contains the directory
Uses a variant of ZLib Compression (ZLibX, as defined by Aluigi from ZenHax)
Not all files have filenames
HDR FILE...
HEADER
  uint32 {4}       - File Header
  uint32 {4}       - Unknown (16798209)
  uint32 {4}       - null
  uint32 {4}       - Strings Directory Offset (512)
  uint32 {4}       - Strings Directory Length
  uint32 {4}       - Length of this HDR file

byte {X}         - Unknown Stuff to offset 512
STRINGS DIRECTORY
  uint32 {4}       - English Strings Tables Offset
  uint32 {4}       - null
  uint32 {4}       - Unknown Length/Offset
  uint32 {4}       - Strings Directory Length
  uint32 {4}       - null
  uint32 {4}       - Unknown (337)
  uint32 {4}       - Unknown (337)
  uint32 {4}       - Unknown (1)
  uint32 {4}       - null
  uint32 {4}       - Unknown (4)
  uint32 {4}       - Unknown (5)
  uint32 {4}       - Unknown (4)
  byte {X}         - Unknown Stuff

FILES DIRECTORY
  uint32 {4}       - Files Directory Length
  for each file
    uint32 {4}       - Offset to File Details (relative to the start of the Files Directory)

  for each file (58 bytes per entry)
    uint32 {4}       - Filename Offset (relative to the start of the Files Directory) (or null if not a file)
    uint32 {4}       - null
    uint16 {2}       - Entry Type (12=Unknown, 4=File)
    uint32 {4}       - Decompressed File Length (or null if not a file)
    uint32 {4}       - Compressed File Length (or null if not a file)
    uint32 {4}       - Unknown (128) (or null if not a file)
    uint32 {4}       - Unknown (or null if not a file)
    uint32 {4}       - Unknown (or null if not a file)
    uint32 {4}       - null
    uint32 {4}       - null
    uint32 {4}       - File Data Offset in CAB file (first entry starts at 512, non-file entries retain the previous offset value)
    uint64 {8}       - Chechsum? Hash? Time?
    uint64 {8}       - Chechsum? Hash? Time?

  for each filename
    byte {X}         - Filename
    byte {1}         - null Filename Terminator

  byte {1}         - null End of HDR File Terminator?

CAB FILE...
HEADER
  uint32 {4}       - File Header
  uint32 {4}       - Unknown (16798209)
  uint32 {4}       - null
  uint32 {4}       - File Data Offset (512)
  uint32 {4}       - null
  uint32 {4}       - File Data Offset (512)
  uint32 {4}       - null
  uint32 {4}       - null
  uint32 {4}       - Unknown (4)

byte {X}         - Unknown Stuff
FILE DATA
  for each file
    for each compressed block in the file (keep reading until you reach the DecompressedFileLength or the CompressedFileLength, depending on what you're recording...)
      uint16 {2}       - Compressed Data Block Length
      byte {X}         - File Data (compressed)



Format Specifications (Type 2)

The *.cab file contains the file data, the *.hdr file contains the directory.
There are quire often 2 cab files (data1.cab, data2.cab), and just 1 hdr file (data1.hdr).
Uses a variant of ZLib Compression (ZLibX, as defined by Aluigi from ZenHax).
Not all files have filenames
HDR FILE...
HEADER
  uint32 {4}       - File Header
  uint32 {4}       - Unknown (16801804)
  uint32 {4}       - null
  uint32 {4}       - Strings Directory Offset (512)
  uint32 {4}       - Strings Directory Length
  uint32 {4}       - Length of this HDR file

byte {X}         - Unknown Stuff to offset 512
STRINGS DIRECTORY
  uint32 {4}       - English Strings Tables Offset
  uint32 {4}       - null
  uint32 {4}       - Unknown Length/Offset
  uint32 {4}       - Strings Directory Length
  uint32 {4}       - null
  uint32 {4}       - Files Directory Length
  uint32 {4}       - Files Directory Length
  uint32 {4}       - Number of Directories
  uint32 {4}       - null
  uint32 {4}       - Length of Directories Offset Section (numDirectories * 4)
  uint32 {4}       - Number of Files
  uint32 {4}       - Length of Directories Offset Section (numDirectories * 4)
  byte {X}         - Unknown Stuff

FILES DIRECTORY
  for each directory
    uint32 {4}       - Directory Name Offset (relative to the start of the files directory)

  for each file (87 bytes per entry)
    uint16 {2}       - Entry Type (12=Unknown, 4=File, 0=Setup-related File)
    uint64 {8}       - Decompressed File Length (or null if not a file)
    uint64 {8}       - Compressed File Length (or null if not a file)
    uint64 {8}       - File Offset
    byte {16}        - Checksum/Hash/?
    uint16 {2}       - Unknown
    uint16 {2}       - Unknown
    uint32 {4}       - Unknown
    uint64 {8}       - null
    uint32 {4}       - Filename Offset (relative to the start of the files directory)
    uint16 {2}       - Directory ID (zero-based ID to one of the directories listed at the start of the files directory)
    uint32 {4}       - Unknown Flags
    uint32 {4}       - Unknown
    byte {13}        - null
    uint16 {2}       - Data File Number? (1/2)

  for each filename
    byte {X}         - Filename
    byte {1}         - null Filename Terminator

  for each directory
    byte {X}         - Directory Name
    byte {1}         - null Directory Name Terminator

CAB FILE...
HEADER
  uint32 {4}       - File Header
  uint32 {4}       - Unknown (16801804)
  uint32 {4}       - null
  uint32 {4}       - File Data Offset (512)
  uint32 {4}       - null
  uint32 {4}       - File Data Offset (512)
  uint32 {4}       - null
  uint32 {4}       - null
  uint32 {4}       - Unknown (4)

byte {X}         - Unknown Stuff
FILE DATA
  for each file
    for each compressed block in the file (keep reading until you reach the DecompressedFileLength or the CompressedFileLength, depending on what you're recording...)
      uint16 {2}       - Compressed Data Block Length
      byte {X}         - File Data (compressed)



Format Specifications (Type 3)

Uses a variant of ZLib Compression (ZLibX, as defined by Aluigi from ZenHax)
Not all files have filenames
HEADER
  uint32 {4}       - File Header
  uint16 {2}       - Version? (4)
  uint16 {2}       - Unknown (256)
  uint32 {4}       - null
  uint32 {4}       - Unknown Data Block Offset (512)
  uint32 {4}       - Unknown Data Block Length (approximate only) [-8 or -16]
  uint32 {4}       - Unknown
  uint32 {4}       - null
  uint32 {4}       - null
  uint32 {4}       - Number of Files [+1] (including files of type=8)

byte {X}         - Unknown Stuff to offset 512
UNKNOWN DATA BLOCK
  uint32 {4}       - Unknown
  uint32 {4}       - null
  uint32 {4}       - Unknown
  uint32 {4}       - Unknown Data Block Length (including these header fields)
  byte {X}         - Unknown

FILES DIRECTORY
  uint32 {4}       - Files Directory Length
  for each file and each directory
    uint32 {4}       - Offset to File Details (relative to the start of the Files Directory) (not necessarily in offset order!) (or offset to directory name)

  for each file (42 bytes per entry)
    uint32 {4}       - Filename Offset (relative to the start of the Files Directory) (or -35520232 if not a file)
    uint32 {4}       - Directory Name ID Number (index starts at 0)
    uint16 {2}       - Entry Type (8=Unknown, 4=File)
    uint32 {4}       - Decompressed File Length (or null if not a file)
    uint32 {4}       - Compressed File Length (or null if not a file)
    uint32 {4}       - Unknown (32/33) (or null if not a file)
    uint32 {4}       - Unknown (or null if not a file)
    uint32 {4}       - Unknown (or null if not a file)
    uint32 {4}       - null
    uint32 {4}       - null
    uint32 {4}       - File Data Offset

  for each filename
    byte {X}         - Filename
    byte {1}         - null Filename Terminator

  for each directory name
    byte {X}         - Directory Name (can be empty - ie 0 bytes)
    byte {1}         - null Directory Name Terminator

FILE DATA
  for each file
    for each compressed block in the file (keep reading until you reach the DecompressedFileLength or the CompressedFileLength, depending on what you're recording...)
      uint16 {2}       - Compressed Data Block Length
      byte {X}         - File Data (compressed)



MultiEx BMS Script

No BMS script

Supported Programs



Notes

No additional notes

Games

  • InstallShield



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