Section courante

A propos

Section administrative du site

Introduction

Extension d'un fichier compressée utilisé par Microsoft pour compresser leurs logiciels. Ils peuvent être décompressés par des versions récentes de WinZip ou bien avec l'utilitaire CabView fourni avec l'ensemble Tweak UI.

Structure d'entête du fichier

Voici la structure d'entête du fichier CAB :

Déplacement Taille Description
0000h 4 octets Ce champ permet d'indiquer la signature du fichier CAB: «MSCF».
0004h 4 octets Ce champ est réservé, souvent 0.
0008h 4 octets Ce champ permet d'indiquer la taille du fichier de cabinet.
000Ch 4 octets Ce champ est réservé, souvent 0.
0010h 4 octets Ce champ permet d'indiquer la position de départ de la table de fichiers
0014h 4 octets Ce champ est réservé.
0016h 2 octets Ce champ est réservé.
0018h 2 octets Ce champ permet d'indiquer le nombre de fichiers prérequis.
001Ah 2 octets Ce champ permet d'indiquer le nombre de fichiers compressé dans le fichier de cabinet.
001Ch 2 octets Ce champ est réservé.
001Eh 4 octets Ce champ est réservé.

Structure du corps du fichier

Voici la structure d'un enregistrement d'entrée d'un nom de fichier compressé dans le CAB :

Déplacement Taille Description
0000h 4 octets Ce champ permet d'indiquer la taille original du fichier.
0004h 4 octets Ce champ est réservé.
0008h 4 octets Ce champ permet d'indiquer la date du fichier en format compacté.
000Ch 4 octets Ce champ permet d'indiquer l'heure du fichier en format compacté.
0010h variable Ce champ permet d'indiquer le nom du fichier compacté.

Exemple

Voici un exemple montrant la structure de ce format suivant en Turbo Pascal 7 :

  1. Type
  2.   {Entête de fichier compressé d'installation de Windows 95/98 : «.CAB» }
  3.  CabHeader=Record
  4.   Sign:Array[0..3]of Char;    { Signature: Toujours "MSCF" }
  5.   ResA:LongInt;               { Réservé, souvent 0 }
  6.   FileSize:LongInt;           { Taille du fichier }
  7.   ResB:LongInt;               { Réservé, souvent 0 }
  8.   StartTable:LongInt;         { Position de départ de la table des fichiers }
  9.   ResC:LongInt;               
  10.   ResD:Word;                  
  11.   NumPreFiles:Word;           { Nombre de fichiers prérequis }
  12.   NumFiles:Word;              { Nombre de fichiers compressé dans ce fichier }
  13.   ResE:Word;                  
  14.   ResF:LongInt;               
  15.  End;
  16.  
  17.   {Entrée de fichier d'un fichier compressé CAB }
  18.  CabEntryFiles=Record
  19.   OSize:LongInt;                 { Taille original }
  20.   ResB:LongInt;                 
  21.   Date:LongInt;                  { Date en format compacté }
  22.   Time:LongInt;                  { Heure en format compacté }
  23.   NameData:Array[0..255]of Char; { Début du nom...}
  24.  End;
  25.  

Voir également

Format d'image Bitmap pour Windows (.BMP)
Format d'icône pour Windows (.ICO)

Dernière mise à jour : Mardi, le 24 juin 2014