UPX is a portable, free, 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.
UPX supports a number of different executable formats, including programs and DLLs, DOS programs, and Linux executables.
Here are some key features of "UPX":
· 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
What's New in This Release: [ read full changelog ]
· Fix allocation in runtime stub for darwin.macho-entry (i386 and amd64).
· Compress shared library on ELF i386 only [ld.so threatens even this case].
· Attempt to suport ELF on QNX 6.3.0 for armel (experimental).
· Better diagnostic when ELF -fPIC is needed.
· PT_NOTE improvements for *BSD.
· Preserve more ELF .e_flags on ARM.
· Minor code improvements for ELF stubs
· Defend against another flavor of corrupt PE header.
· bug fixes