UPX (Ultimate Packer for eXecutables) is a executable packer that is used to compress executable files.
UPX is a portable, high-performance executable packer for several different executable formats, includes support for Windows and Linux executables and DLLs. It achieves an excellent compression ratio and offers very fast decompression.
It is an open-source project.
For more information and downloading the software you can check this link