http://upx.sourceforge.net/
Для самосборки нужен make не ниже 3.81:
ftp://ftp.gnu.org/gnu/make/
Ключ --ultra-brute действительно работает мощнее, чем -9 в 2.0.
Но мееедленно.
==================================================================
User visible changes for UPX
==================================================================
Changes in 3.00 (27 Apr 2007):
  * watcom/le & tmt/adam: fixed a problem when using certain filters
Changes in 2.93 beta (08 Mar 2007):
  * new formats Mach/i386 and Mach/fat support Mac OS X i686 and
    Universal binaries [i686 and PowerPC only]
  * dos/exe: LZMA is now also supported for 16-bit dos/exe. Please note that
    you have to explicitly use '--lzma' even for '--ultra-brute' here
    because runtime decompression is about 30 times slower than NRV -
    which is really noticeable on old machines.
  * dos/exe: fixed a rarely occuring bug in relocation handling
  * win32/pe & arm/pe: better icon compression handling
Changes in 2.92 beta (23 Jan 2007):
  * new option '--ultra-brute' which tries even more variants
  * slightly improved compression ratio for some files when
    using '--brute' or '--ultra-brute'
  * bug fixes
Changes in 2.91 beta (29 Nov 2006):
  * assorted bug fixes
  * arm/pe: fix "missing" icon & version info resource problem for wince 5
  * win32/pe & arm/pe: added option --compress-icons=3 to compress all icons
Changes in 2.90 beta (08 Oct 2006):
  * LZMA algorithm support for most of the 32-bit and 64-bit file formats;
    use new option '--lzma' to enable
  * new format: BSD/elf386 supporting FreeBSD, NetBSD and OpenBSD
    via auto-detection of PT_NOTE or EI_OSABI
  * arm/pe: all the NRV compression methods are now supported
    (only NRV2D is missing in thumb mode)
  * linux/elf386, linux/ElfAMD: remember /proc/self/exe in environment
  * major source code changes: the runtime decompression stubs are now
    built from internal ELF objects
==================================================================
Changes in 2.03 (07 Nov 2006):
  * bvmlinuz/386: fix for kernels not at 0x100000; also allow x86_64
  * linux/elf386: work around Linux kernel bug (0-length .bss needs PF_W)
Changes in 2.02 (13 Aug 2006):
  * linux/386: work around Linux kernel bug (".bss" requires PF_W)
  * linux/ppc32, mach/ppc32: compressed programs now work on a 405 CPU
  * vmlinuz/386: fixed zlib uncompression problem on DOS
Changes in 2.01 (06 Jun 2006):
  * arm/pe: better DLL support
  * dos/exe: device driver support added
  * linux/386: Fix --force-execve for PaX, grSecurity, and strict SELinux.
    /tmp must support execve(); therefore /tmp cannot be mounted 'noexec'.
  * win32/pe & arm/pe: added new option '--keep-resource=' for
    excluding selected resources from compression
			
		


