Self-extracting ZIP

From Just Solve the File Format Problem
Jump to: navigation, search
File Format
Name Self-extracting ZIP
Ontology
Extension(s) .exe, others

Self-extracting ZIP is a family of a executable/ZIP hybrid formats. On a compatible operating system, such a file can be executed, and it will extract the files contained in it.

Alternatively, it can usually be processed as if it were a ZIP file, even on an incompatible operating system. Renaming the file to end in ".zip" may make this easier.

Contents

Format details

A self-extracting ZIP archive usually consists of an "executable stub" segment, followed by the part of the file containing the ZIP-formatted data.

In EXE-based formats, the ZIP data is usually placed in the "overlay" segment (refer to MS-DOS EXE#Special file positions). So, signature bytes 'P' 'K' 0x03 0x04 usually appear at the start of the overlay segment, sometimes after a padding byte.

DOS files made by PKZIP

Most versions of PKZIP for DOS include a ZIP2EXE.EXE utility that converts a ZIP file to a self-extracting archive. The files it creates can perhaps be put into four classes:

  1. The format made by PKZIP 0.90 to 1.02. Creating such files involves a convoluted method whereby the executable stub is copied from the original distribution file (e.g. PKZ090.EXE). The user must enable the feature by using the included MAKESFX.COM utility to generate the not-included PKSFX.PRG file required by ZIP2EXE.EXE. Every self-extracting EXE then begins with the bytes in PKSFX.PRG.
  2. The "standard" format made by v1.10. The executable stub seems to be significantly different from earlier versions. Also, as of v1.10, the MAKESFX.COM method is no longer used.
  3. The "standard" format made by v2.04c and higher. The executable stub is pre-compressed with PKLITE.
  4. The "PKSFXjr" format supported by v1.10+, selected using ZIP2EXE's -j option. This is also known as "Mini" or "Junior" format. PKSFXjr files have a smaller size overhead, but limited features. Only a single compression method is supported (Implode or Deflate, depending on the version).

Software

Sample files

Various:

Files made by ZIP2EXE from PKZIP:

  • v1.10
  • v1.10, export version
  • v2.04c shareware
  • v2.04c registered
    • [1] → GAMES/PATCHES/HPATPG13.ZIP → HELL2.EXE
    • [2] → PRINTING/BBSPLV30.ZIP → UNZIPME.EXE
  • v2.04c/e/g, "mini" format. (Note: Shareware v2.04c-2.04g all produce identical "mini" files, reporting version number "2.04c". A file containing "2.04g" is likely from a registered version of v2.04g.)
  • v2.04e shareware
  • v2.04e registered
    • [3] → EDUCATE/CONST10.ZIP → CONST101.EXE, EDUCATE/MOG20.ZIP → MOG201.EXE
  • v2.04g shareware
  • v2.04g registered
  • v2.04g registered, "Shareware Marketing" edition
    • [4] → FINANCE/FTTLV500.ZIP → HJS.EXE
  • v2.04g registered, "mini" format

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox