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.
• 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.
Changes in version 3.05 (27 Apr 2010):
* i386-linux and amd64-linux support shared libraries (DT_INIT must exist, all info needed by runtime loader must be first in .text, etc.)
* Linux /proc/self/exe now is preserved by default, by leaving behind one page. New compress-time option --unmap-all-pages is available.
* Withdraw support for shared libraries on Darwin (Apple Mac OS X) because upx does not understand enough about .dylib.
* bug fixes
Size: 338 KB
Download for Windows
Download for DOS