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 because of in-place decompression.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: ~10 MB/sec on an ancient Pentium 133, ~200 MB/sec on an Athlon XP 2000+. <*> no memory overhead for your compressed executables because of in-place decompression. <*> 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: o atari/tos o djgpp2/coff o dos/com o dos/exe o dos/sys o linux/386 o rtm32/pe o tmt/adam o watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay) o 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 distributed 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.
News A new unstable beta version UPX 2.93 has been released. (08 Mar 2007) http://upx.sourceforge.net/download/unstable The main news are optional LZMA compression and support for BSD systems. We have also made many internal changes, so please use this for testing only and report all problems. http://sourceforge.net/tracker/?group_id=2331 UPX 2.03 has been released. (07 Nov 2006) Please report all problems and bugs in our bug tracker. http://sourceforge.net/tracker/?group_id=2331 The main news in version 2 are: new format: added support for arm/pe (ARM executables running on WinCE) new format: added support for linux elf/amd64 new format: added support for linux elf/ppc32 new format: added support for mach/ppc32 (Apple Mac OS X) new format: added support for bootable Linux kernels ("vmlinuz/386") new format: added support for Playstation exes ("ps1/exe") slightly better compression using the new NRV2E algorithm new options for compression tuning (e.g. '--brute') improved win32/pe compatibility direct ELF-to-memory decompression various bug fixes Also have a look at the more detailed ChangeLog. http://upx.sourceforge.net/upx-news.txt