UPX
What it is
UPX is a portable tool for packing and compressing executable files on Windows, macOS, and Linux. The project says compression commonly reduces program and DLL sizes by around 50%–70%. For most supported formats, compressed programs are self-contained and run as before without a runtime or memory penalty. Supported types include Windows programs and DLLs, macOS apps, and Linux executables, along with formats such as PE, ELF, Mach-O, COFF, DOS, and Atari/TOS. UPX can list, test, and unpack executables, and maintains checksums for compressed and uncompressed files. It is free software under GPL v2 or later, with a special exception permitting unmodified UPX to compress commercial programs. UPX is a packer, not a protection or encryption tool, and its maintainers advise using it only on trusted files. Linux users should note two format-specific tradeoffs: compressed executables do not share RAM at runtime like file-mapped executables, which may increase RAM or swap needs for concurrent processes; the generic Linux format recreates a copy of the original in /tmp before running.
For and against
For
- Free software under GPL v2 or later.
- Supports Windows, macOS, and Linux executable formats.
- Can list, test, and unpack executables.
- Maintains checksums for compressed and uncompressed files.
Against
- It does not provide protection or encryption.
- Use is advised only with trusted files.
- Concurrent Linux processes may need more RAM or swap.
- Generic Linux format creates a copy in /tmp before running.
The verdict
UPX compresses supported executables and includes tools for inspecting or restoring them. It is not a security layer, and Linux users should consider the documented memory and temporary-file tradeoffs.
Who it suits
UPX suits users who need to reduce the size of supported executable files and libraries. Linux users should account for its runtime memory and temporary-file behavior.
Plans and prices
UPX
Free software under GPL v2+; special license exception permits use with commercial programs
Read 30 Sep 2026 · upx.github.io
On the record
- Compression
- The project says UPX typically reduces program and DLL file sizes by around 50%–70%.upx.github.io · read 30 Sep 2026
- Download platforms
- The latest release page provides Linux and Windows binaries, DOS builds, and a source tarball; it says each build handles all supported executable formats.github.com · read 30 Sep 2026
- Inspect and restore
- UPX can list, test, and unpack executables, and internally maintains checksums of compressed and uncompressed files.upx.github.io · read 30 Sep 2026
- License
- UPX is distributed with full source under GPL v2 or later, with a special exception allowing unmodified UPX to compress commercial programs.upx.github.io · read 30 Sep 2026
- Linux runtime tradeoff
- The documentation says compressed Linux executables do not share RAM at runtime like file-mapped executables, so concurrent processes may need more RAM or swap.github.com · read 30 Sep 2026
- Linux temporary files
- For its generic Linux format, UPX recreates a copy of the original file in /tmp before running it.github.com · read 30 Sep 2026
- Maker
- The homepage says UPX is maintained by the UPX Team and credits Markus F.X.J. Oberhumer, László Molnár, and John F. Reiser.upx.github.io · read 30 Sep 2026
- Purpose
- UPX is a portable executable packer and file compressor for several executable formats.upx.github.io · read 30 Sep 2026
- Runtime behavior
- Compressed programs are self-contained and run as before with no runtime or memory penalty for most supported formats.upx.github.io · read 30 Sep 2026
- Security handling
- The project warns that UPX inherits the security context of files it handles and says to use it only on trusted files.github.com · read 30 Sep 2026
- Security limits
- UPX describes itself as a packer and explicitly says it will not add protection or encryption features.github.com · read 30 Sep 2026
- Support
- The project asks users to report bugs through its GitHub issues page.github.com · read 30 Sep 2026
- Supported executable formats
- UPX supports formats including Windows programs and DLLs, macOS apps, and Linux executables.upx.github.io · read 30 Sep 2026