PKLITE

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Identification)
Line 5: Line 5:
 
|released=1990
 
|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.
+
'''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 [[MS-DOS EXE|.EXE]] and [[DOS executable (.com)|.COM]] formats. Version 2.01 added the ability to compress [[New Executable|Windows 3.x executables]].
 
It supports mainly DOS [[MS-DOS EXE|.EXE]] and [[DOS executable (.com)|.COM]] formats. Version 2.01 added the ability to compress [[New Executable|Windows 3.x executables]].
Line 12: Line 12:
  
 
== Identification ==
 
== Identification ==
The PKLITE software includes a "CHK4LITE.EXE" utility that identifies PKLITE-compressed files, and the version of PKLITE they were created with.
+
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 "{{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:
 +
 +
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 ==
 
=== Version 1.20 ===
 
=== Version 1.20 ===
The CHK4LITE utility will identify some files as having been compressed with "PKLITE Ver. 1.20", but there is no free version 1.20. There is a Professional version that creates these files, though it's not completely clear which one.
+
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 (look for "pklt120r.arj"), but is actually a hacked copy of v1.12 Professional. The files it creates will be identified as version "1.12".
+
There is also a fake version that claims to be v1.20 (look for "pklt120r.arj"), but is actually a hacked copy of v1.12 Professional. The files it creates will be identified as version 1.12.
  
 
== Specifications ==
 
== Specifications ==
 +
* [https://moddingwiki.shikadi.net/wiki/PKLite ModdingWiki: PKLite]
 
* [https://github.com/afritz1/OpenTESArena/blob/main/docs/pklite_specification.md PKLITE V1.12 compression format]
 
* [https://github.com/afritz1/OpenTESArena/blob/main/docs/pklite_specification.md PKLITE V1.12 compression format]
  

Revision as of 16:19, 23 September 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.

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:

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

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 (look for "pklt120r.arj"), 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)
    • 1.00ß 1990-05-29: [10] (not an authorized release[11])

Static decompression:

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

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 [14].

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox