Ultimate Packer for eXecutables
Copyright (C) 1996 - 2026
UPX 5.3.0 Markus Oberhumer, Laszlo Molnar & John Reiser Oct 28th 2026
Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..
Commands:
-1 compress faster -9 compress better
--best compress best (can be slow for big files)
-d decompress -l list compressed file
-t test compressed file -V display version number
--fileinfo show parameters of already-compressed file
-h give this help -L display software license
Options:
-q be quiet -v be verbose
-oFILE write output to 'FILE'
-f force compression of suspicious files
-i info mode
--no-color, --mono, --color, --no-progress change look
Compression tuning options:
--lzma try LZMA [slower but tighter than NRV]
--brute try all available compression methods & filters [slow]
--ultra-brute try even more compression variants [very slow]
Backup options:
-k, --backup keep backup files
--no-backup no backup files [default]
Overlay options:
--overlay=copy copy any extra data attached to the file [default]
--overlay=strip strip any extra data attached to the file [DANGEROUS]
--overlay=skip don't compress a file with an overlay
File system options:
--force-overwrite force overwrite of output files
--link preserve hard links (Unix only) [USE WITH CARE]
--no-link do not preserve hard links but rename files [default]
--no-mode do not preserve file mode (aka permissions)
--no-owner do not preserve file ownership
--no-time do not preserve file timestamp
Options for djgpp2/coff:
--coff produce COFF output [default: EXE]
Options for dos/com:
--8086 make compressed com work on any 8086
Options for dos/exe:
--8086 make compressed exe work on any 8086
--no-reloc put no relocations in to the exe header
Options for dos/sys:
--8086 make compressed sys work on any 8086
Options for linux/elf:
--preserve-build-id copy .gnu.note.build-id to compressed output
--catch-sigsegv debug errors in hardware or de-compressor
Options for ps1/exe:
--8-bit uses 8 bit size compression [default: 32 bit]
--8mib-ram 8 megabyte memory limit [default: 2 MiB]
--boot-only disables client/host transfer compatibility
--no-align don't align to 2048 bytes [enables: --console-run]
Options for watcom/le:
--le produce LE output [default: EXE]
Options for win32/pe, win64/pe & rtm32/pe:
--compress-exports=0 do not compress the export section
--compress-exports=1 compress the export section [default]
--compress-icons=0 do not compress any icons
--compress-icons=1 compress all but the first icon
--compress-icons=2 compress all but the first icon directory [default]
--compress-icons=3 compress all icons
--compress-resources=0 do not compress any resources at all
--keep-resource=list do not compress resources specified by list
--strip-relocs=0 do not strip relocations
--strip-relocs=1 strip relocations [default]
file.. executables to (de)compress
This version supports:
amd64-darwin.dylib dylib/amd64
amd64-darwin.macho macho/amd64
amd64-linux.elf linux/amd64
amd64-linux.kernel.vmlinux vmlinux/amd64
amd64-win64.pe win64/pe
arm-darwin.macho macho/arm
arm-linux.elf linux/arm
arm-linux.kernel.vmlinux vmlinux/arm
arm-linux.kernel.vmlinuz vmlinuz/arm
arm-wince.pe wince/arm
arm64-darwin.macho macho/arm64
arm64-linux.elf linux/arm64
arm64-win64.pe win64/arm64
armeb-linux.elf linux/armeb
armeb-linux.kernel.vmlinux vmlinux/armeb
fat-darwin.macho macho/fat
i086-cpm86.cmd cpm86/cmd
i086-dos16.com dos/com
i086-dos16.exe dos/exe
i086-dos16.sys dos/sys
i386-bsd.elf.execve bsd.exec/i386
i386-darwin.macho macho/i386
i386-dos32.djgpp2.coff djgpp2/coff
i386-dos32.tmt.adam tmt/adam
i386-dos32.watcom.le watcom/le
i386-freebsd.elf freebsd/i386
i386-linux.elf linux/i386
i386-linux.elf.execve linux.exec/i386
i386-linux.elf.interp linux/elfi386
i386-linux.elf.shell linux.sh/i386
i386-linux.kernel.bvmlinuz bvmlinuz/i386
i386-linux.kernel.vmlinux vmlinux/i386
i386-linux.kernel.vmlinuz vmlinuz/i386
i386-netbsd.elf netbsd/i386
i386-openbsd.elf openbsd/i386
i386-win32.pe win32/pe
m68k-atari.tos atari/tos
mips-linux.elf linux/mips
mipsel-linux.elf linux/mipsel
mipsel.r3000-ps1 ps1/exe
powerpc-darwin.macho macho/ppc32
powerpc-linux.elf linux/ppc32
powerpc-linux.kernel.vmlinux vmlinux/ppc32
powerpc64-linux.elf linux/ppc64
powerpc64le-linux.elf linux/ppc64le
powerpc64le-linux.kernel.vmlinux vmlinux/ppc64le
riscv64-linux.elf linux/riscv64
UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io
Options (44)
| Option | Description | Source |
|---|---|---|
-1 | compress faster -9 compress better | help |
-d | decompress -l list compressed file | help |
-t | test compressed file -V display version number | help |
-h | give this help -L display software license | help |
-q be | be quiet -v be verbose | help + man |
-f force | force compression of suspicious files | help + man |
-i info | info mode | help + man |
--no-color, --mono, --color, --no-progress change | change look | help + man |
--lzma try | try LZMA [slower but tighter than NRV] | help + man |
--brute try | try all available compression methods & filters [slow] | help + man |
--ultra-brute try | try even more compression variants [very slow] | help + man |
-k, --backup keep | keep backup files | help + man |
--no-backup | no backup files [default] | help |
--overlay copy | copy any extra data attached to the file [default] | help |
--force-overwrite force | force overwrite of output files | help + man |
--link preserve | preserve hard links (Unix only) [USE WITH CARE] | help + man |
--no-link do | do not preserve hard links but rename files [default] | help + man |
--no-mode do | do not preserve file mode (aka permissions) | help + man |
--no-owner do | do not preserve file ownership | help + man |
--no-time do | do not preserve file timestamp | help + man |
--coff | produce COFF output [default: EXE] | help |
--8086 | make compressed com work on any 8086 | help |
--no-reloc | put no relocations in to the exe header | help |
--preserve-build-id | copy .gnu.note.build-id to compressed output | help |
--catch-sigsegv | debug errors in hardware or de-compressor | help |
--8-bit | uses 8 bit size compression [default: 32 bit] | help |
--8mib-ram | 8 megabyte memory limit [default: 2 MiB] | help |
--boot-only | disables client/host transfer compatibility | help |
--no-align | don't align to 2048 bytes [enables: --console-run] | help |
--le | produce LE output [default: EXE] | help |
--compress-exports 0 | do not compress the export section | help |
--compress-icons 0 | do not compress any icons | help |
--compress-resources 0 | do not compress any resources at all | help |
--keep-resource list | do not compress resources specified by list | help |
--strip-relocs 0 | do not strip relocations | help |
--help prints | (in the manual page but not in --help) | man |
--version print | (in the manual page but not in --help) | man |
-o file: | (in the manual page but not in --help) | man |
-v be | (in the manual page but not in --help) | man |
--no-env ignore | (in the manual page but not in --help) | man |
--fileinfo show | (in the manual page but not in --help) | man |
--no-lzma do | (in the manual page but not in --help) | man |
--all-methods compress | (in the manual page but not in --help) | man |
--all-filters compress | Overlay handling options: --overlay=copy, --overlay=strip, --overlay=skip. (in the manual page but not in --help) | man |