Microsoft Compress

from Wikipedia, the free encyclopedia

Microsoft Compress is the name of two early compression formats from Microsoft that were mainly used for their own products in order to reduce the size of the installation files and thus the number of floppy disks.

With these formats only individual files can be compressed, in contrast to the later CAB file format , which also supports the compression of several files and directories. Compressed files can usually be recognized by the fact that the last character of the file extension has been replaced by an underscore or a dollar sign (i.e. DATEI.EX_or DATEI.EX$instead of DATEI.EXE). Files in these formats can be created with the program COMPRESS.EXEthat comes with various products (such as early versions of Visual C ++ ). Unpacking is also EXPAND.EXEpossible with the program . (Current versions of EXPAND.EXEno longer support these old formats and can only extract files from CAB archives.)

Both formats were originally undocumented, but could be reconstructed through reverse engineering . The libmspack package was developed for Linux, which can unpack both formats.

SZDD

The older format was first used in 1990 and can be recognized by the magic word SZDD at the beginning of the file.

The file structure is very simple: the magic word is followed by the compression format (only one, namely A), the last character of the file extension and the file size as a 32-bit integer. The compressed data stream then follows immediately, using the LZSS algorithm.

KWAJ

The newer format was first used in 1993 and can be recognized by the magic word KWAJ at the beginning of the file.

In contrast to the previous format, the file format is much more complicated. After the magic word, the compression algorithm is specified as a 16-bit integer. The format supports five compression algorithms:

  1. uncompressed
  2. uncompressed, but 0xFFXOR-coded with the value
  3. LZSS
  4. a proprietary compression algorithm from Microsoft that combines LZSS and Huffman
  5. CAB

This is followed by the offset to the compressed data stream as a 16-bit integer. Optional header extensions are then supported with which additional metadata can be specified, e.g. B. the file size or the full file name.

Web links