UPX
upx.github.io
What it is
UPX is a portable executable packer and file compressor for Windows, macOS, and Linux. It works with executable formats including Windows programs and DLLs, macOS apps, and Linux executables; listed formats also include PE, ELF, Mach-O, COFF, DOS, and Atari/TOS. 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 runtime or memory penalties. 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 allowing unmodified UPX to compress commercial programs. UPX does not add protection or encryption, and the project advises handling only trusted files. Linux users should account for documented tradeoffs: compressed executables may require more RAM or swap when multiple processes run, and the generic Linux format recreates the original file in /tmp before launch.
Spec sheet
- Purpose
- UPX is a portable executable packer and file compressor for several executable formats.Read 30 Sep 2026 · upx.github.io
- Support
- The project asks users to report bugs through its GitHub issues page.Read 30 Sep 2026 · github.com
- License
- UPX is distributed with full source under GPL v2 or later, with a special exception allowing unmodified UPX to compress commercial programs.Read 30 Sep 2026 · upx.github.io
- 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.Read 30 Sep 2026 · upx.github.io
- Compression
- The project says UPX typically reduces program and DLL file sizes by around 50%–70%.Read 30 Sep 2026 · upx.github.io
- 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.Read 30 Sep 2026 · github.com
- Inspect and restore
- UPX can list, test, and unpack executables, and internally maintains checksums of compressed and uncompressed files.Read 30 Sep 2026 · upx.github.io
- 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.Read 30 Sep 2026 · github.com
- Linux temporary files
- For its generic Linux format, UPX recreates a copy of the original file in /tmp before running it.Read 30 Sep 2026 · github.com
- Runtime behavior
- Compressed programs are self-contained and run as before with no runtime or memory penalty for most supported formats.Read 30 Sep 2026 · upx.github.io
- Security handling
- The project warns that UPX inherits the security context of files it handles and says to use it only on trusted files.Read 30 Sep 2026 · github.com
- Security limits
- UPX describes itself as a packer and explicitly says it will not add protection or encryption features.Read 30 Sep 2026 · github.com
- Supported executable formats
- UPX supports formats including Windows programs and DLLs, macOS apps, and Linux executables.Read 30 Sep 2026 · upx.github.io
Plans and prices
Strong points and limits
Strong points
- Project reports typical size reductions of around 50%–70%
- Can list, test, and unpack executables
- Supports Windows, macOS, and Linux executable formats
- Free under GPL v2 or later
Limits
- Does not provide protection or encryption
- Use is advised only with trusted files
- Compressed Linux executables may need more RAM or swap
- Generic Linux format creates a copy in /tmp
Who it suits
UPX suits users who want to reduce executable file sizes and can work with command-line tools. Its formats cover Windows, macOS, and Linux, with specific runtime considerations for Linux users.
Verdict
UPX focuses on executable compression and inspection, with broad format support and no charge. It is not a security tool, and Linux users should review its runtime and temporary-file behavior.
Where Specifiction places it
- Executable Packers#16 of 287.4