PKLITE

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
Line 16: Line 16:
 
PKLITE-compressed files normally contain a copyright message near the beginning of the file (though this is not a very robust way to identify them). Based on limited testing, the message starts with either "{{magic|PKLITE}}" or "{{magic|PKlite}}". It is at offset 46 or 48 for COM files, 30 for DOS EXE files, 66 for Windows EXE files. Exception: COM files from v1.00β have "{{magic|PK Copyr}}" at offset 38.
 
PKLITE-compressed files normally contain a copyright message near the beginning of the file (though this is not a very robust way to identify them). Based on limited testing, the message starts with either "{{magic|PKLITE}}" or "{{magic|PKlite}}". It is at offset 46 or 48 for COM files, 30 for DOS EXE files, 66 for Windows EXE files. Exception: COM files from v1.00β have "{{magic|PK Copyr}}" at offset 38.
  
If the DOS EXE signature at offset 30 is missing, CHK4LITE still identifies a file as PKLITE-compressed if it starts with the following byte pattern:
+
It's likely that all DOS EXE files made by v1.00 through v2.01 (though not the leaked v1.00β) have bytes {{magic|00 00}} or {{magic|01 00}} at offset 6, and {{magic|00 01 f0 ff}} at offset 20. This is fairly distinctive, though false positives are possible.
 
+
4D 5A ?? ?? ?? ?? 01 00 ?? ?? ?? ?? ?? ?? ?? ??
+
?? ?? ?? ?? 00 01 F0 FF
+
 
+
This translates to ''number of relocations'' = 1, ''IP register'' = 256, ''CS register'' = -16. The pattern likely matches all DOS EXE files made by v1.00 through v2.01 (though not the leaked v1.00β). False positives are possible, but presumably rare.
+
  
 
== Technical notes ==
 
== Technical notes ==
Line 51: Line 46:
 
* PKLITE (with <code>-x</code> option)
 
* PKLITE (with <code>-x</code> option)
 
* [https://github.com/hackerb9/depklite depklite] (Not a complete decompression utility, but maybe useful.)
 
* [https://github.com/hackerb9/depklite depklite] (Not a complete decompression utility, but maybe useful.)
 +
* [https://github.com/virginwidow/mz-explode mz-explode]
  
 
Dynamic decompression:
 
Dynamic decompression:
Line 57: Line 53:
 
** [https://johnpc.home.xs4all.nl/dislite/dislite.zip Source code]
 
** [https://johnpc.home.xs4all.nl/dislite/dislite.zip Source code]
 
* A number of other DOS utilities exist to decompress PKLITE files; a few are at [{{CdTextfilesURL|pdos9606/ARCHIVER/EXECOMP/}}].
 
* A number of other DOS utilities exist to decompress PKLITE files; a few are at [{{CdTextfilesURL|pdos9606/ARCHIVER/EXECOMP/}}].
 +
 +
== Sample files ==
 +
* https://github.com/camoto-project/testexe/tree/master/compress
  
 
== Links ==
 
== Links ==

Revision as of 16:19, 16 October 2021

File Format
Name PKLITE
Ontology
Released 1990

PKLITE is an executable compression utility, from the makers of PKZIP (see ZIP). There was a free-for-noncommercial-use version, and a "Professional" version. There was a separate PKLITE32 product for 32-bit Windows.

It supports mainly DOS .EXE and .COM formats. Version 2.01 added the ability to compress Windows 3.x executables.

Many files compressed by PKLITE can be decompressed by PKLITE, using the -x option. The main exception is files compressed with -e, an option only available in the Professional version.

Contents

Identification

The PKLITE software includes CHK4LITE, a utility that tries to identify PKLITE-compressed files, and the version of PKLITE they were created with.

PKLITE-compressed files normally contain a copyright message near the beginning of the file (though this is not a very robust way to identify them). Based on limited testing, the message starts with either "PKLITE" or "PKlite". It is at offset 46 or 48 for COM files, 30 for DOS EXE files, 66 for Windows EXE files. Exception: COM files from v1.00β have "PK Copyr" at offset 38.

It's likely that all DOS EXE files made by v1.00 through v2.01 (though not the leaked v1.00β) have bytes 00 00 or 01 00 at offset 6, and 00 01 f0 ff at offset 20. This is fairly distinctive, though false positives are possible.

Technical notes

Version 1.20

The CHK4LITE utility will identify some files as having been compressed with "PKLITE Ver. 1.20", but there is no freely-distributable v1.20. There is a Professional version that creates these files, though it's not completely clear which one.

There is also a fake version that claims to be v1.20, but is actually a hacked copy of v1.12 Professional. The files it creates will be identified as version 1.12.

Specifications

Software

  • PKLITE freeware/shareware, for DOS
    • v1.00 1990-12-01: [1]
    • v1.03 1990-12-20: [2]
    • v1.05 1991-03-20: [3]
    • v1.12 1991-06-15: [4]
    • v1.13 1991-08-01: [5]
    • v1.14 1992-06-01: [6]
    • v1.15 1992-07-30: [7]
    • v1.50 1995-04-10: [8]
    • v2.01 1996-03-15: [9]
  • PKLITE - other
    • v1.00β 1990-05-29: [10] (not an authorized release[11])
    • fake v1.20 (1992-08-20): [12], [13], [14]

Static decompression:

  • PKLITE (with -x option)
  • depklite (Not a complete decompression utility, but maybe useful.)
  • mz-explode

Dynamic decompression:

  • DISLITE (notable because its source code was released)
  • A number of other DOS utilities exist to decompress PKLITE files; a few are at [17].

Sample files

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox