
UPX (the Ultimate Packer for eXecutables) is an executable packer that supports several different platforms and file formats. A compressed executable file consists of an unpacking/initialization module and a data block containing the original file in compressed form.
When launched, the unpacking module allocates memory and unpacks the contents of the data block into it. For some platforms, unpacking into memory is impossible; in these cases, unpacking into a temporary file is used. UPX uses a lossless compression algorithm called UCL.
15