upx

UPX stands for the "Ultimate Packer for eXecutables". Its home page is http://upx.sourceforge.net/ .


Overview from their web site.

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.
  • 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.
  • 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