UPX is a Portable Executable Compressor or "Exe Packer" that operates from a command line or drag and drop. This free executable compression utility allows you to compress executable files with an excellent compression ratio while still retaining fast decompression (compresses better than zip or gzip).
UPX Executable Compressor in action
UPX, which stands for the "Ultimate Packer for eXecutables," is a free, open-source executable packer that is used to compress and decompress executable files. It works primarily with files on Microsoft Windows and Linux operating systems. Here are some of its most notable features:
- Compression: Compresses executable files (such as executable programs and libraries) to reduce their size. This compression can significantly reduce the file size of executables without affecting their functionality.
- Efficiency: Achieves high compression ratios by using a variety of compression algorithms and techniques, including data deduplication, entropy coding, and other methods.
- Portability: Designed to be portable and works across multiple platforms, including Windows, Linux, macOS, and various Unix-like systems.
- Ease of Use: Provides a command-line interface (CLI) for compressing and decompressing files, making it straightforward to integrate into build processes or automation scripts.
- Compatibility: Compressed executables remain compatible with their respective operating systems and can be executed without any special runtime support. This means that compressed executables can be distributed and run on target systems as usual.
- Security: While packing exe files can make reverse engineering more challenging due to the compression, this is not a security tool per se. However, its compression can hinder casual inspection of executables.
- Open Source: It is released under the GNU General Public License (GPL) and is freely available for anyone to use, modify, and distribute.
Overall, this is a popular tool for reducing the size of executable files, which can be beneficial for various purposes such as distributing software, saving disk space, and optimizing performance.
The tool uses very little system resources to accomplish it's task and you can list, test and unpack your executables using the same tool. Additionally, a checksum of both the compressed and uncompressed file is maintained internally.
Note that if you just want to compress an executable, just drag and drop your exe file onto upx.exe. Advanced usage requires the use of commands and options outlined in upx.doc.