Free Software for DOS
Archivers, Compressors, EXE Packers, & related – 2

21 Aug 2006

Global Menu:
Go back to Front Page Menus

Go to top of Archivers – 1
Go to top of Archivers – 3

This page:



Page 1:


Page 3:






(Thanks to Lars-Erik Sandberg for bringing most of these to my attention – RLG).

Sky Compressor — Freeware archiver, auto disk spanning as with ARJ, good compression, sfx creation, single exe.


[added 1998-12-15, updated 2004-12-17]

Some features: Source files are compressed before archiving. Can create multi-volume archives (360, 720, 1200 or 1440 KB compressed file size). Five settings from fastest operation to best compression. Comments may be added to archive. Docs in French & English.

Author: Jean-Michel Hervé, France (1997).

1997-07-09: v1.15.

Download (57K).

ESP (Extension Sort Packer) — Fast, tight file compression.


[added 1998-12-15, updated 2005-12-09]

Quite useful: Small, fast, tight (solid archive), sfx creation, file split and easy to handle. Manual in Hungarian, Slovak, German & English.

Programs in package:
Compression Program
Decompression Program
Self-Extracting Maker
Convert fragments to a single archive file
Picture converter for graphics archive-comments
Simple ANSI to BIN converter for color archive-comments
ESP: the compression program
Usage: ESP [/switches] arc_name[.ESP] [source_path\]
       [filemask] [@listfile]

/R          recursively scan subdirs
/P          without /R: save subdir's name
            with /R: don't save pathnames
/Mx         select compression method where x means:
              0=best 3=fast 4=storing (default=0)
/J          disable repeat-search mode
/Sabcd      sorting priority
              default=1240 (size, path, attrib, name)
              a, b, c and d is one of the follows:
              0=Name  1=Size  2=Path  3=Date/Time  4=Attribute
/T          disable internal EXTENSION-table
/Gpassword  garble with password (encrypt file)
/Cn=name    use archive comment file 'name' type 'n'
              1 = ASCII TEXT
              2 = Color text  (binary screen format)
              4 = 320x200x256
              5 = 320x200xN
              6 = 640x480xN
/D[sn[,ss]] add Data Recovery Record to archive
              sn=number of sectors    (default=4)
              ss=(size of sector)/256 (default=2)
/Vnnn[K|M]  enable multiple volumes, volume size is nnn
              (example: /V1440K)
/B          enable BEEPing (if user input is needed
            or at the end of compression)
/Y          always Yes option (don't wait for a key
            before next volume)
/MM         enable MultiMedia compression method for
            8-bit sound and 256-color/greyscale images.
/MM2        enable MultiMedia compression method for
            24-bit images
/MEx        select method (1=old or 2=new) of encryption

*** Note: During the compression process you can press F1
          for playing TETRIS or F2 for playing NIBBLES.

UNESP: the decompression program
Usage: UNESP command[switch][password] arc_name[.ESP]
       [dest_dir\] [path\][filemask] [@listfile]

 ?       View help message
 e       Extract files from archive
 x       eXtract files with full path
 l       List contents of archive
 v       Verbosely list contents of archive
 t       Test archive

 f       list to bin file - works with 'L'&'V' command
         (example: UNESP VF arc bin)
 k       wait for a key at end of every screen
 p       set password   (example: UNESP XPsecret FILE.ESP)
         & DRR handling
 y       always Yes
 n       always No
 b       enable BEEP

ESP2EXE: self-extract maker from an ESP archive
Usage: ESP2EXE archive_name.ESP [exe_name.EXE]

ESPLINK: converter, makes a single archive from fragments
Usage: ESPLINK first_fragment[.ESP] [single_arc_file.ESP]

GIF2PIC: picture converter for archive-comments
~~~~~~~  (GIF format -> ESP's new PIC format)

Usage: GIF2PIC picture_name[.GIF] [picture_name.PIC]

Handles 2, 16 and 256 color pictures with any resolution.
You can add this picture as a comment to an ESP-archive.

ANS2BIN: simple ANSI to BINary converter for color archive-comments
Usage: ANS2BIN [/number_of_lines] picture_name[.ANS]
You can add a BIN file as a comment to your ESP-archive
with the command /C2: ESP /C2=LOGO.BIN archive.ESP

Authors: András Bártházi & Árpád Gereöffys / ESP-team, Hungary (1996).

1996-05-16: v1.92.

Download esp_v192.exe (69K), sfx.

LHARK — Brother of LHA, faster and tighter.

* * *

[updated 2005-09-24]

Fully compatible with LHA archives. But compression is not fully compatible: LHARK has an additional mode that LHA cannot decompress. LHARK also has a password protection function that LHA lacks.

From the docs:
There are two LHARK modes. The first one (known as LHARK-A) has a set of commands and options that is slightly different from LHA. The second mode (LHARK-B) has a set of commands and options that is compatible with LHA.
Usage: LHARKA4 command archive[.lzh] [-options...] [dir] [@][files...]
  a: Add       u: Update   f: Freshen   c: Check
  e: Extract   l: List     t: Test      o: mOde change
  d: Delete    s: Sfx      p: Print
  m: Move files                    v: Verify result
  p: save/expand Paths             k: keep Temp file on abort
  r: Recurse subdirectories        s: archive time Stamp
  e: Encrypt with password         o: Overwrite without asking
  i: do not Ignore file name case  a: any Attribute
  d: archive Directories also      l: use Long file names
  -: treat '@' and '-' as filename chracters
  c[0|5|7]: Compression method (0=store; 5=lh5; 7=new/lh7/default)
  t[t|a1|a2|oa|ob]: compression Type (t=Turbo/fast; a1=Acceptable-1;
                     a2=Acceptable-2/default; oa=Optimal-A; ob=Optimal-B)
Run "LHARKA4 o" to use a different set of commands and options.

Usage: LHARKB4 command archive[.lzh] [-options...] [dir] [@][files...]
  a: Add       u: Update   m: Move      s: SFX         x: eXtract (paths)
  f: Freshen   d: Delete   p: disPlay   t: Test        o: mOde change
  e: Extract   l: List     c: Check     v: View (List)
<Options> (those in parenthesis "(...)" are accepted but has no effect)
  r: Recursively collect files       w: (assign Work directory)
  x: allow eXtended file names       m: no Message for query
  p: distinguish full Path names     c: skip time-stamp Check
  a: allow any Attributes of files   z: Zero compression (only store)
  t: archive's Time-stamp option     h: (select Header level(default=1))
  o: use Old method (-lh5-)          n: (display No indicator/pathname)
  i: not Ignore lower case           l: (display Long name with indicator)
  s: (Skip by time is not reported)  -: '@' and/or '-' as usual letters
  d: pack Directory name also        f: (Force to write without check)
  e: Encrypt with password           k: Keep temp file on abort
  v: Verify result                   u: Use long file names.
  y: compression tYpe (0=turbo/fast; 1=defualt/acceptable; 2=optimal)
Run "LHARKB4 o" to use a different set of commands and options.

Author: Kerwin F. Medina, Canada (1996).

1997-01-28: v.04d.

Download (38K).

ERI and ARI — Excellent compression of multimedia files.


[added 1999-11-21, updated 2005-09-24]

ERI offers excellent compression stats w/ multimedia files, its specialty (good w/ text files too); average results with executables. Files may be added, extracted or modified within an archive. Two archives can be joined. "Doesn't decompress under WinNT, 2000 and XP. Only under Windows 95 and 98." Available in several languages. ARI is actually an earlier version of ERI, and still useful: good compression, solid archive option, disk spanning, sfx, password encryption, but no multimedia extensions. Some ARI features are no longer available in ERI (e.g., no sfx).

Usage:ERI <command> [-<option>] <ArchiveName>[.ERI] [files...] [-uList] [-x...]
        Example commands:
Convert all BitMaPs to .ERI:           ERI c *.bmp
Add two images to archive:             ERI a archive first.bmp second.bmp
Add files, try to get more compression:ERI a -m archive2 *.exe
Convert .ERI images back to .BMP:      ERI b path\name
Move files from archive, use password: ERI e -d -gdgrbestx archive
Update files in directory, exclude one:ERI e -on archive *.bmp -xGO.*
Delete files, keep same archive date:  ERI d -k archive m*x*.bmp *.bak
Garble two files in archive:           ERI g -gPASSWORD archive name1 name2
Sample files, quering for deleting:    ERI s -dq archive *.*p
Test specified files in archive:       ERI t -s archive \old\*0.* -x\old\.bmb
View all files existing in archive:    ERI v -q -w&x archive

  c: Convert specified .BMPs to .ERIs   n: reName files in archive     
  b: convert Back given.ERIs to .BMPs   o: Optimize files in archive **
  a: Add files to archive               r: Remove paths from filenames
  d: Delete files from archive          s: Sample files to screen with pause
  e: Extract files from archive         t: Test integrity of archive
  f: Freshen files in archive           u: Update files to archive
  g: Garble files in archive            v: Verbosely list contents of archive
  l: List contents of archive           w: Where are text strings in archive **
  m: Move files to archive              x: eXtract files with full pathname

-o   Overwrite destination file (DF) by the source file (SF) always, skip if
  DestFile doesn't exist  -o0      DF exists (=-o{SL|DE|ON|TA}=) -o1
  DF is Older than SF     -oO      DF is same or Newer than SF   -oN
  DF is not the same Time -oT      DF is the sAme date and time  -oA
  DF is Shorter than SF   -oS      DF is same or Longer than SF  -oL
  DF has Different size   -oD      DF is the samE size with SF   -oE
-d   Delete source file (always), syntax to skip deleting is the same
  Query in case '*',*={01SLDEONTA} -o*Q; default for command A is A -O1q -D01

-a  allow Any archive extension            -j<h,s,r> mask hidden/system/readonly files
-b* create temp file on drive *            -w<h,s,&> exclude hid/sys files/volume label
-n don't print path with fileName          -w*x (AOFMU) disable -w* for further files
-q don't exclude doubled files             -r  Recurse subdirectories under base
-! don't beep on error                     -s  recurse subdir-s under Spicified
-+ inhibit ERI_SW usage                    -rx\  (AOFMU) disable -R a/o -S for
-k Keep original .ERI file date            -sx/  all further filenames/wildnames
-l set .ERI date to the Latest file        -i Ignore dir-ry structure in destination
-g*** (un)Garble with password ***         -m[M] set compression Method
-f<file> generate list name File           -cNN set main size=NN (NN<256)
-u<file> Use list name file                -tNN seT division size=NN (NN<256)
-x<file> eXclude specified file            -y  accept single keY when quering
-x-u<Lf> exclude f-s in spec-d ListFile    --  disable option character
-v[?][Length] (all commands) enable multiple Volumes
-hm  (all) add/display/delete coMMents with each directory       **  Removed
-hu<file> (AOFMU,ESWTX) Use specified file(s) as dictionary      **
-ho  sOlid archive (use previous files as dictionary)            **   from
-hx  (AOFMU,DGR) create a self-eXtracting archive                **
-hr  (DGR) Recover broken archive          -h<1|2> force bin/text type  **  freeware
-hi recurse subdIr-s for archives          -hg Garble file headers also **
-he include Empty directories              -hd Delete empty directories **  version
-hf store/use Full specified drive and default directory information
-hy assume Yes on all queries              -ha<path> assign bAse directory
-hp<N> set Page size to N                  -hw<path> assign Work directory
-3[c|d|e|f...|n]NN transformations         -hb keep a .Bak of ERI archive
-h9[X],hz[Z],-e[E],-z[Z] variables         -hk Keep temp archive on error
-hs<N> Skip first N files                  -hn<N> skip first N bytes in each file
-ht<N> Take only  N files                  -hl[!|N] take only N bytes from each file

-%[N] reduce noise: Useful for natural images:can be done only once for a .BMP,
                    modifies _some_ pixels , not more than 2/16777216 =0.00001%

Author: Alexander Ratushnyak, Russia (1997, 2002).


For more resources, go to the COMPRESSION PROJECT in Russian, or in English.

X1 — Super tight file archiver can also compress to common archive formats.


[added 1997, updated 2006-08-21]

X1 compresses text documents significantly better than PKZIP / InfoZip and Ultracompressor, but the compression advantage is less for some other file types (e.g., programs, binaries). While X1 is recognized chiefly for its tight proprietary compression, it also has the ability to compress files to other common archive formats: PKZIP, ARJ, LHA, HA, ZOO, TGZ. Compression, file listing, and extraction are supported, but proprietary options associated with these archivers are not. X1 is available in compilations for DOS, OS/2 and Win9x/NT: all are 32-bit programs, requiring at least an 80386-SX CPU and 4MB RAM. Many command options. Message screens are in English, Dutch, Spanish. Hungarian, Italian, Finnish, German, French.

In X1 for DOS, Win32 LFN support can be set on or off (default=off). Runs under DOS 3.3 or later, including IBM PC DOS 7 and Win9x/NT+.

Usage: X1DOS command[<options>..] <archive> [<data files>..]
<archive>    is the archive name, with a default extension of .ZIP
<data files> are the files to archive, defaulting to all files if none are
             specified.  Wildcards *, ? can be used.

Valid commands are:
A Add files to archive        L List archive contents
C Add comment                 P Add error correcting code (ECC)
D Delete files from archive   R Repair/test archive using ECC
E Extract files from archive  T Test archive cyclic redundance checksum (CRC)
F Freshen files in archive    U Remove error recovery infomation
H Help                        X Extract files with path

Limitations: X1 cannot create self-extracting (SFX) archives. It creates "solid" archives which, if damaged, may offer little hope of repair – attempts to repair may erase files. X1 does offer a data protection option. There may be memory conflicts with some OS & memory manager combinations.

Notes, from a reader: On my P166/32 (DR-DOS 7.03 Lite), with VCPI ("EMM386 DPMI", DPMI turned off at cmdline and NWCACHE loaded), it reboots my machine. If I replace the PMODE/W stub (1.20) to the latest version I can find (1.33), it works without problems. Plus, UPX 2.00 will shrink X1DOS.EXE to less than 200K. However, I think it won't handle newer .ARJ archives (slight change in format?).

X1 has never gone beyond beta testing, and has not been updated in some time.

Author: Stig Valentini, Denmark (1997).

1997-05-03: v0.95a beta.


BOA Constrictor Archiver — Super-tight, option-limited flexible/solid archiver with great compression statistics...


[added 1999-11-21, updated 2006-03-14]

This tool has the option of creating solid archives (which can't be updated) and offers great compression statistics, but requires significant RAM to achieve best results. Decompression requires like amounts of RAM.

   Usage: boa [command] [options] arcname.boa [files...]

   -a         Add files to a a new archive, or an existing one (FLEXIBLE
              only).  This is the default command and may be omitted.
   -x         Extract files with pathnames.
   -e         Extract files without pathnames.
   -v         View archive contents.
   -d         Delete files from archive.  FLEXIBLE archives only.
   -t         Perform integrity testing on files.  This will check the
              archive for CRC errors.  If an error is found, it means that
              the archive is corrupt.  There is currently no way to repair
              a broken archive.

   If you are adding files (-a), then you have additional options.

   -s         Use SOLID archiving.  This option takes advantage of
              redundancy across files.	Compression ratios can be very
              much improved, especially when compressing many similar
              small files.

   -r         Recurse into subdirectories.  This option will make BOA
              also look through directories in the specified paths for
              files to add.

   -p<0,r,s>  Store no paths, recursed paths (see previous option), or
              both specified and recursed paths.

   -m<x>      Use 'x' megabytes of extended memory.  More memory means
              better compression in most cases, but be aware that the
              same amount of memory will be needed on decompresssion.

   -X<file>   Exclude specified file.

   -S	      Include hidden/system files.

32-bit DJGPP program, requires 80386+, DOS Protected Mode Interface (CWSDPMI [included] or other), 2MB+ RAM; default compression requires 8MB RAM. Long file Name (LFN) support under Win9x.

Author: Ian Sutton (1998).

1998-02-05: v0.58.

Download (75K).

QuickFileCollection (QFC) — Collects multiple files into uncompressed archive.


[added 1998-12-15, updated 2005-12-09]

Use this tool as a first step toward reducing the sizes of archive files. Individual files can have unused space in them, because their clusters have minimum sizes that are not always filled. QFC works by closing up the dead spaces in and between collected files, giving archivers (Zip, ARJ & others) less to encode and store. Unix tar is similar, but works only on individual files, still leaving some empty space that QFC does not. Requires DOS 4+, 80286 (80386 & Win9x for LFNs). Package includes source (Pascal/ASM).

Note: Some archivers do the same job, in producing "solid" archives.

Authors: George Lyapko, Ukraine (1999); Win9x LFN support & other updates by Jason Hood, Australia (2005).

2005-10-01: v3.02.

Download (36K).

Jason Hood's QuickFileCollection page.

More in these pages from Jason Hood.

ZOO — Older archiver, still useful for unpacking some downloaded files.


[added 1998-12-15, updated 2004-10-29]

No longer competitive in terms of features / compression statistics. Main use today is for unpacking old .zoo archives stored on some ftp sites. A file repair tool is included in the program package.

Author: Rahul Dhesi (1991).

1991-07-07: v2.10e.



Familiar to most programmers and power users – but if you're obsessed with saving disk space, you might want to experiment with these programs (Note: If you already use disk compression software these utils won't save you much space).

UPX (Ultimate Packer for eXecutables) — Tight and versatile 32-bit DOS and Win32 exe compressor.

* * * * *

[updated 2006-08-21]

Maybe the most versatile exe format packer on the scene – and it's free. Distinguished from the other packers listed here by its combination of tight compression and an ability to pack a diverse array of executable formats including: DOS exe, sys, & com; DJGPP2 coff, Watcom le (supporting DOS4G & other extenders); 95/98/ME/NT/2000/XP/CE DLLs, Win32 pe (e.g., Netscape.exe), Linux, RTM32 pe, TMT adam, arm/pe, Playstation. Fast decompression; no memory overhead, and can also list, test, and unpack. Still under development. Free under GNU General Public License.

UPX for the PC is a 32-bit program, requiring 80386+. The DOS version is a DJGPP compilation, and requires a DOS Protected Mode Interface (CWSDPMI or other). The Win32 console version has better LFN support than the DOS version. UPX is also available for Linux (80386+, AMD64 & Power PC) and for Atari.

Authors: Markus F.X.J. Oberhumer, Austria; László Molnár, Hungary; John F. Reiser, US (2006).

2006-06-06: v2.01.


Go to the UPX page for source, info, and versions for other OSes.

32LiTE — Tight and versatile 32-bit DOS EXE compressor.


[added 1999-07-14]

This program packs a wider variety of DOS EXE formats than UPX (e.g., WDOS/X, DOS32, W32RUN, PHARLAP, "P3", and mixed format EXEs) and relies on APACK (see next item) code for good compression.

Author: Oleg Prokhorov. Russia (1999).

1999-06-26: v0.02d.

Download (99K).

aPACK — Super tight EXE and COM compressor.


[added 1998-07-07, updated 2000-10-13]

An EXE and COM packer that's in the running for the honor of being the tightest available. Excels with smaller files. Requires 80386+ with at least 4MB RAM. Free for non-commercial use only.

Author: Jørgen Ibsen / Ibsen Software, Denmark (2000). Suggested by Lars-Erik Sandberg.

2000-09-24: v0.99b.

Download (63K).

Go to the aPACK page for more info and related programs.

LZEXE — Compresses many executables into smaller, functional programs.
UNLZEXE — Decompresses EXEs packed by LZEXE.


[updated 2005-12-09]

LZEXE is an older exe packer, one of the first programs of its type. Executables with overlays cannot be compressed. Saves a backup of the original exe. Available in the original French-language version and in English translation. LZEXE was widely used but in recent years has been mostly replaced by other programs, based on more efficient compression algorithms.

LZEXE distribution packages also include:
Converts COM files to EXE (reverse of EXE2BIN)
Reports exe file length on disk, length of code, min/max memory requested, & more
Decompresses exes packed by MS EXEPACK

UNLZEXE might now be more useful than LZEXE. It decompresses exes that have been packed by LZEXE 0.91 or the earlier (first version) 0.90, including LZEXE.EXE itself. English-language LZEXE packages include UNLZEXE v0.5 (exe + C source code). The later UNLZEXE v0.8 is available in its own package, with version history in the source code's comments.


LZEXE v0.91
Fabrice Bellard, France

English translation by Luigi Bianchi et al.
LZEXE v1.00
Revision by IS2 France Diffusion
Mitugu (Kou) Kurizono, Japan
David Kirschbaum, US
Alan Modra, Australia
Vesselin Bontchev, Bulgaria & Iceland.



LZEXE v0.91

LZEXE v1.00a


LZEXE v0.91
English & French
LZEXE v1.00a

Fabrice Bellard's LZEXE home page.

Diet — Compresses executables and other files.


[updated 2005-03-02]

Diet compresses files that LzExe can't: EXEs with overlays (with some preconditions), COM files, device drivers, and some data files (.DBF and others).

Usage:  DIET [option] filename [filename]...

-X    compress as executable file          -L    list out DIET files
-D    compress as data file                -H    check DIET files
-R    retrieve data files                  -!    check original DIET.EXE
-RA   retrieve all files                   -B    compare by byte size
-G    choose great SFX routine             -I    ignore warnings
-K    kill tmporary file at program end    -J    JAPANESE message
-$    compress recorded files manually     -A    set R/O attribute

-Z[n] stay on memory  (n=0,1,2:EMS mode)   -P    recompress retrieved files
      / change status (if already stayed)  -W    compress newly created files
-ZR   remove from memory                   -E    retrieve files at R/O open
-ZA   activate TSR function   (DIET ON )   -N    not compress automatically
-ZD   deactivate TSR function (DIET OFF)   -M    no message output
                                           -S    set original file size
-Oxxxx  output file/directory designation
-Cxxxx  copy files with compressing/retrieving (check timestamp)
-Txxxx  temporary file directory designation

Author: Teddy Matsumoto, Japan (1992).

1992-06-25: v1.45F.

Download (45K).

UNP — Unpacks compressed executables.


If you need to un-compress a packed .exe (perhaps to pack with a tighter compressor), try this universal decompressor tool. Becoming a bit dated, but simple to use.

Author: Ben Castricum, Netherlands (1995).

Has docs
No docs


CUP386 (CyberWare Universal Unpacker, UCFCUP, CUP) — Unpacks many compressed executables.


[updated 2005-03-02]

CUP386 is regularly cited as one of the best EXE unpackers around – it was developed primarily for hackers and others with a programming bent. Although CUP386 has many debugging and other power-user options, it is often capable of unpacking many formats in one easy step, and that's why I include it here. CUP386 has been tested with the following formats – but was designed to unpack executables packed with unknown software: PkLite, Diet, LzExe, TinyProg, PgmPak, HackStop, WWPack.

Requires a 386+, functions best when memory managers (e.g., EMM386) are not loaded.

Author: Alex Petroukine / Cyberware, Russia (1997).

1997-07-20: v3.4. Final version, development has ended.

Download (49K).


These programs can identify, but not list contents of archives. For archive content finders and listers, go to the File Identifiers and File Finders: System and Archive sections in File Utils - 3. See in particular GetTyp – identifies packer origin of many compressed executables.

SH Archive Identifier (SHAID, Archid) — Command line archive identifier.

* * * * *

[added ?1997, updated 2000-08-09]

The SH Archive Identifier (executable name is Archid) can identify nearly any archive format in recent use, including many self-extracting archives (those which have an *.exe extension). Recognizes ~170 archives and ~76 executable archives. SHAID returns error levels specific to each archive type and has obvious uses in batch files.

Author: Eero T. Heinonen, Finland (2000).

2000-07-29: v 2.70.

Download (42K).

SH Archive Identifier page

IDArc — Identifies ~180 different archive formats; Win9x LFN support.


[added 1999-03-04, updated 2006-03-14]

Also see the related Universal Unpacker.

Author: Jürgen Peters, Germany (2004).

2004-02-02: v2.15.03. Last version, development has ended.


Go to Top | Front Page ]

©1994-2004, Richard L. Green.
©2004-2006, Short.Stop.