UPX Message
Boards

Announcements

Discussion

Applications

Data
Compression

LZO

lzop

NRV

UCL

UPX

Links

Homepage

Projects

Compression
Links

Email me

Markus
F.X.J. Oberhumer

the Ultimate Packer for
eXecutables

Version
1.20
23 May 2001

Copyright (C) 1996, 1997, 1998, 1999,
2000, 2001
Markus F.X.J.
Oberhumer & László
Molnár

[News] [Abstract]
[Download]
[Beta
versions] [Examples]

[Overview]
[Formats]
[Disclaimer]
[Copyright]

News

http://upx.sourceforge.net/
now is the new canonical UPX home. Please update your bookmarks and do
not use the old http://upx.tsx.org any longer.

UPX
1.20 has been released - featuring a native port to atari/tos. See
the file NEWS for
more info.

Visit the UPX
Message Board for discussions about problems, features, GUI
frontends, and more.

We'd like to hear from you if you are a happy author that uses UPX
to compress your programs! Please announce your files on the new UPX
Application Board.

The UCL
compression library has been released. UCL is a re-implementation of
some especially efficient NRV compression
algorithms. This is the first step of the UPX source code release as
UCL contains all of UPX's stub decompressors.

UPX is rated number one in the well-known Archive Comparison
Test .

Abstract

UPX is copyrighted software distributed under the terms of the GNU General Public
License, with special exceptions granting the free usage for
commercial programs as stated in the UPX
License Agreement.

UPX is a free, portable, extendable, high-performance executable
packer for several different executable formats. It achieves an
excellent compression ratio and offers very fast
decompression. Your executables suffer no memory overhead or other
drawbacks.

While you may use UPX freely for both non-commercial and commercial
executables (for details see the license),
we would highly appreciate if you credit UPX and ourselves in the
documentation, possibly including a reference to the UPX home page.
Thanks.

UPX aims to be Commercial Quality Freeware.

Download

File

Description

Size

upx120w.zip

Win32 console version

118 kB

upx120d.zip

32-bit DOS version

174 kB

upx120a.zip

Atari version

185 kB

upx-1.20-linux.tar.gz

precompiled Linux version

273 kB

upx-1.20-src.tar.gz

source code
(you also need UCL)

200 kB

All versions are functionally equivalent, i.e. each version can
handle all executable formats. Windows users should prefer the
Win32 version because of better long filename support.

Nice GUI frontends for Windows 95/98/ME/NT/2000 are under
development. Stay tuned.

Just in case, here is an archive of old
versions.

Unstable beta versions

All versions 1.1x and 1.9x are unstable beta releases - use them
only for testing, and never distribute a program that is packed with
them! There will be hidden bugs.

The current
stable release is 1.20, and the next stable release will be called
version 2.00.

The main news in the unstable versions are support for bootable Linux
kernels ("vmlinuz/386") and direct Linux ELF-to-memory decompression
("linux/elf386"). There's no reason to download the unstable versions
unless you want to try the new formats.

File

Description

Size

upx-1.11-linux.tar.gz

precompiled Linux version

313 kB

upx111w.zip

Win32 console version

---

upx111d.zip

32-bit DOS version

---

sourceforge.net

CVS source code
(you also need UCL)

n/a

Examples

Let's start with some examples to give you an idea about the
capabilities of UPX:

Application

Format

Executable

Original

Compressed

Ratio

Netscape 4.06

win32/pe

netscape.exe

2,934,336

1,124,352

0.383

Descent 2

watcom/le

descent2.exe

1,448,873

652,832

0.451

MAME 0.36

djgpp2/coff

mame.exe

8,214,016

1,810,056

0.220

OneOhOne

dos/exe

101.exe

438,144

179,566

0.410

Emacs 20.2

linux/386

emacs-20.2

2,772,657

925,543

0.334

g++
2.8.1

atari/tos

cc1plus.ttp

1,595,049

655,508

0.411

Total

17,403,075

5,347,857

0.307

Overview

UPX is a versatile executable packer with the following features:

excellent compression ratio: typically compresses better than
WinZip/zip/gzip, use UPX to decrease the size of your
distribution !

very fast decompression: more than 10 MB/sec even on my old
Pentium 133

no memory overhead for your compressed executables

safe: you can list, test and unpack your executables. Also, a
checksum of both the compressed and uncompressed file is maintained
internally.

universal: UPX can pack a number of executable formats:

atari/tos

djgpp2/coff

dos/com

dos/exe

dos/sys

linux/386

rtm32/pe

tmt/adam

watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)

win32/pe

portable: UPX is written in portable endian-neutral C++

extendable: because of the class layout it's very easy to add new
executable formats or new compression algorithms

free: UPX is distibuted with full source code under the GNU
General Public License, and may be used freely even with commercial
programs.

You probably understand now why we call UPX the "Ultimate Packer for
eXecutables".

UPX is based on experience with our previous packers DJP
and lzop
and uses the NRV compression
library.

Supported executable
formats

Here is a detailed list of all supported executable formats:

UPX

Pack

Unpack

Description

Link

atari/tos

X

X

Atari TOS/MiNT executable

FreeMiNT portal

djgpp2/coff

X

X

DOS 32-bit COFF

djgpp homepage

dos/com

X

X

DOS 16-bit .com file

dos/exe

X

X

DOS 16-bit executable

dos/sys

X

X

DOS 16-bit .sys file

linux/386

X

X

Linux AOUT/ELF/script

Linux

rtm32/pe

X

X

Windows 95/98/ME/NT/2000 executable or DLL

tmt/adam

X

X

DOS 32-bit executable

TMT Pascal

watcom/le

X

X

DOS 32-bit linear executable

Watcom C/C++

win32/pe

X

X

Windows 95/98/ME/NT/2000 executable or DLL

Disclaimer

UPX comes with ABSOLUTELY NO WARRANTY; for details see the UPX
License Agreement.

Having said that, we think that UPX is quite stable now. Indeed we
have compressed lots of files without any problems. Also, the current
version has undergone several months of beta testing - actually it's
almost 3 years since our first public beta.

This is the first production quality release, and we plan that future
releases will be backward compatible with this version.

Please report all problems or suggestions to the authors.
Thanks.

False virus
alerts

Some very old anti-virus scanners or monitors may warn about an
unknown virus in UPX compressed files. The files are not
infected ! Please update your anti-virus software and database
to the latest version if you are encountering these false
alerts.

Copyright

Copyright (C) 1996-2001 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2001 Laszlo Molnar
All Rights Reserved.

This program may be used freely, and you are welcome to
redistribute it under certain conditions.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
UPX License Agreement for more details.

Share and enjoy,
Markus & László

This page has been accessed

times since 23 Jan 2000.

The term UPX is a shorthand for the Ultimate Packer for
eXecutables and holds no connection with potential owners of registered
trademarks or other rights.