UPX compression results
  • UPX is a free, portable, extendable, high-performance
    executable packer for several executable formats.
Download UPX~400kB, multiplatform
 

News

30 Sep 2013: UPX 3.91 has been released. Changes include

  • experimental support for Win64/PE

To know more about this release, see the detailed changelog. Please report all problems and bugs in our bug tracker.

Share and enjoy,
Markus, László & John

Supported executable formats

Format full name Format description
amd64-linux.elf
amd64-linux.kernel.vmlinux
amd64-win64.pe
Linux ELF
Linux kernel
Windows 64-bit executable or DLL
arm-linux.elf
arm-linux.kernel.vmlinux
arm-wince.pe
Linux ELF
Linux kernel
Windows CE executable or DLL
armeb-linux.elf
armeb-linux.kernel.vmlinux
Linux ELF
Linux kernel
fat-darwin.macho Mac OS X executable
i086-dos16.com
i086-dos16.exe
i086-dos16.sys
DOS 16-bit .com file
DOS 16-bit executable
DOS 16-bit .sys file
i386-bsd.elf.execve
i386-darwin.macho
i386-dos32.djgpp2.coff
i386-dos32.tmt.adam
i386-dos32.watcom.le
i386-freebsd.elf
i386-linux.elf
i386-linux.elf.execve
i386-linux.elf.shell
i386-linux.kernel.bvmlinuz
i386-linux.kernel.vmlinux
i386-linux.kernel.vmlinuz
i386-netbsd.elf
i386-openbsd.elf
i386-win32.pe
BSD generic
Mac OS X executable
DOS 32-bit COFF
DOS 32-bit executable
DOS 32-bit linear executable
FreeBSD ELF
Linux ELF
Linux generic
Linux shell script
Linux kernel
Linux kernel
Linux kernel
NetBSD ELF
OpenBSD ELF
Windows 32-bit executable or DLL
m68k-atari.tos Atari TOS/MiNT executable
mips-linux.elf Linux ELF
mipsel-linux.elf
mipsel.r3000-ps1
Linux ELF
PlayStation 1 executable
powerpc-darwin.macho
powerpc-linux.elf
powerpc-linux.kernel.vmlinux
Mac OS X executable
Linux ELF
Linux kernel

Overview

UPX achieves an excellent compression ratio and offers very fast decompression. Your executables suffer no memory overhead or other drawbacks for most of the formats supported, because of in-place decompression. UPX strengths in a nutshell:

  • 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 v2+, with special exceptions granting the free usage for commercial programs as stated in the UPX License Agreement.

You probably understand now why we call UPX the "Ultimate Packer for eXecutables". UPX aims to be commercial quality free software, based on experience with our previous packers (DJP, lzop, and the NRV library).

Download

File OS/Hardware
Windowsupx391w.zip Win32/i386
Linuxupx-3.91-i386_linux.tar.bz2 Linux/i386
Linuxupx-3.91-amd64_linux.tar.bz2 Linux/AMD64
Linuxupx-3.91-armeb_linux.tar.bz2 Linux/ARM
Linuxupx-3.91-mipsel_linux.tar.bz2 Linux/MIPS
Linuxupx-3.91-powerpc_linux.tar.bz2 Linux/PPC
MS-DOSupx391d.zip DOS/i386
Atariupx391a.zip Atari TOS-MiNT/m68k
Sourceupx-3.91-src.tar.bz2 Source code (you will need UCL)

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

Legal terms

Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 László Molnár
Copyright (C) 2000-2013 John F. Reiser

All Rights Reserved. This program may be used freely, and you are welcome to redistribute and/or modify 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.