2000-09-10 00:14:27 +00:00
|
|
|
==================================================================
|
2023-02-10 08:49:29 +00:00
|
|
|
User visible changes for UPX
|
2000-09-10 00:14:27 +00:00
|
|
|
==================================================================
|
2000-05-19 16:04:55 +00:00
|
|
|
|
2024-01-03 17:43:18 +00:00
|
|
|
Changes in 4.2.2 (03 Jan 2024):
|
2023-11-01 14:07:18 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/15
|
|
|
|
|
2023-11-01 11:00:03 +00:00
|
|
|
Changes in 4.2.1 (01 Nov 2023):
|
|
|
|
* linux: /proc/self/exe now is optional
|
2023-10-30 13:15:35 +00:00
|
|
|
* windows: use SetFileTime to preserve sub-second file timestamps
|
2023-10-30 11:17:51 +00:00
|
|
|
* official Windows builds: revert activeCodePage change introduced in 4.2.0
|
2023-10-26 10:25:13 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/14
|
|
|
|
|
2023-10-26 09:09:48 +00:00
|
|
|
Changes in 4.2.0 (26 Oct 2023):
|
2023-10-23 12:26:37 +00:00
|
|
|
* win32/pe and win64/pe: stricter relocation checks; please report regressions
|
2023-10-30 11:17:51 +00:00
|
|
|
* unix: use utimensat to preserve sub-second file timestamps
|
2023-09-04 20:34:21 +00:00
|
|
|
* new option '--link' to preserve hard-links (Unix only; use with care)
|
2023-08-31 10:31:31 +00:00
|
|
|
* add support for NO_COLOR env var; see https://no-color.org/
|
2023-10-26 09:09:48 +00:00
|
|
|
* disable macOS support until we fix compatibility with macOS 13+
|
2023-10-30 13:15:35 +00:00
|
|
|
* official Windows builds: set activeCodePage to UTF-8
|
2023-09-18 13:19:37 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/13
|
2023-08-08 10:43:47 +00:00
|
|
|
|
2023-08-08 08:38:12 +00:00
|
|
|
Changes in 4.1.0 (08 Aug 2023):
|
2023-05-28 12:06:11 +00:00
|
|
|
* ELF: handle shared libraries with more than 2 PT_LOAD segments
|
2023-01-30 12:39:49 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/11
|
|
|
|
|
2023-01-30 10:18:06 +00:00
|
|
|
Changes in 4.0.2 (30 Jan 2023):
|
2022-11-22 19:51:56 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/9
|
|
|
|
|
2022-11-16 22:15:38 +00:00
|
|
|
Changes in 4.0.1 (16 Nov 2022):
|
2022-10-28 15:10:52 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/8
|
|
|
|
|
2022-10-28 08:38:03 +00:00
|
|
|
Changes in 4.0.0 (28 Oct 2022):
|
2022-10-27 15:36:02 +00:00
|
|
|
* Switch to semantic versioning
|
2020-12-03 01:10:05 +00:00
|
|
|
* SECURITY NOTES: emphasize the security context in the docs
|
2022-10-27 14:00:13 +00:00
|
|
|
* Support easy building from source code with CMake
|
2022-10-27 16:10:29 +00:00
|
|
|
* Support easy rebuilding the stubs from source with Podman/Docker
|
|
|
|
* Add integrated doctest C++ testing framework
|
2021-12-24 23:05:53 +00:00
|
|
|
* Add support for EFI files (PE x86; Kornel Pal)
|
2022-11-11 04:32:59 +00:00
|
|
|
* win32/pe and win64/pe: set correct SizeOfHeaders in the PE header
|
2020-01-22 22:11:13 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/6
|
2022-10-28 08:38:03 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/7
|
2020-01-22 22:11:13 +00:00
|
|
|
|
2020-01-22 21:29:58 +00:00
|
|
|
Changes in 3.96 (23 Jan 2020):
|
2020-01-08 03:21:30 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/5
|
2018-08-26 04:08:40 +00:00
|
|
|
|
2018-08-22 11:15:50 +00:00
|
|
|
Changes in 3.95 (26 Aug 2018):
|
2018-05-19 13:30:23 +00:00
|
|
|
* Flag --android-shlib to work around bad design in Android
|
|
|
|
* Flag --force-pie when ET_DYN main program is not marked as DF_1_PIE
|
2018-08-21 00:10:00 +00:00
|
|
|
* Better compatibility with varying layout of address space on Linux
|
|
|
|
* Support for 4 PT_LOAD layout in ELF generated by binutils-2.31
|
|
|
|
* bug fixes, particularly better diagnosis of malformed input
|
2018-08-22 11:15:50 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/4
|
2017-05-12 13:28:47 +00:00
|
|
|
|
2017-05-12 10:47:14 +00:00
|
|
|
Changes in 3.94 (12 May 2017):
|
2017-05-12 11:01:20 +00:00
|
|
|
* Add support for arm64-linux (aka "aarch64").
|
|
|
|
* Add support for --lzma compression on 64-bit PowerPC (Thierry Fauck).
|
|
|
|
* For Mach, "upx -d" will unpack a prefix of the file (and warn).
|
|
|
|
* Various improvements to the ELF formats.
|
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/3
|
2017-01-29 13:05:00 +00:00
|
|
|
|
2017-01-29 11:07:00 +00:00
|
|
|
Changes in 3.93 (29 Jan 2017):
|
2017-05-12 11:01:20 +00:00
|
|
|
* Fixed some win32/pe and win64/pe regressions introduced in 3.92
|
2017-05-13 18:44:02 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/2
|
2016-12-11 16:50:03 +00:00
|
|
|
|
2016-12-11 15:12:06 +00:00
|
|
|
Changes in 3.92 (11 Dec 2016):
|
2018-08-26 02:58:09 +00:00
|
|
|
* INFO: UPX has moved to GitHub - the new home page is https://upx.github.io
|
2016-11-30 23:45:25 +00:00
|
|
|
* IMPORTANT: all PE formats: internal changes: reunited the diverged source
|
|
|
|
files - please report all regressions into the bug tracker and try UPX 3.91
|
|
|
|
in case of problems.
|
|
|
|
* Support Apple MacOS 10.12 "Sierra", including more-robust de-compression.
|
|
|
|
* Explicitly diagnose Go-language bad PT_LOAD; recommend hemfix.c.
|
|
|
|
https://sourceforge.net/p/upx/bugs/195/ https://github.com/pwaller/goupx
|
2015-05-16 22:33:31 +00:00
|
|
|
* Fix CERT-FI Case 829767 UPX command line tools segfaults.
|
|
|
|
Received by UPX Team on 2015-May-08; originally reported
|
|
|
|
by Codenomicon to NCSC-FI on 2015-01-08.
|
|
|
|
The vulnerabilities were discovered by Joonas Kuorilehto and
|
2016-09-28 10:31:44 +00:00
|
|
|
Antti Häyrynen from Codenomicon.
|
2017-05-12 11:01:20 +00:00
|
|
|
* bug fixes - see https://github.com/upx/upx/milestone/1
|
2014-01-07 22:08:00 +00:00
|
|
|
|
2013-09-30 12:21:37 +00:00
|
|
|
Changes in 3.91 (30 Sep 2013):
|
2013-09-20 05:19:06 +00:00
|
|
|
* Added experimental support for Windows 64-bit PE files, based on
|
|
|
|
work by Stefan Widmann. Please use for testing only!
|
2013-08-27 19:22:21 +00:00
|
|
|
* bug fixes
|
2013-02-20 12:50:12 +00:00
|
|
|
|
2013-09-20 05:19:06 +00:00
|
|
|
==================================================================
|
|
|
|
|
2013-02-18 10:03:33 +00:00
|
|
|
Changes in 3.09 (18 Feb 2013):
|
2013-02-12 09:32:11 +00:00
|
|
|
* New option --preserve-build-id for GNU ELF.
|
2012-11-14 17:07:10 +00:00
|
|
|
* Allow for code signing and LC_UUID on Mac OS X executables.
|
|
|
|
* Allow non-contiguous LC_SEGMENTs and 0==.vmsize for Mach-O.
|
|
|
|
* Allow zero-filled final page in PackUnix::canUnpack().
|
2012-08-03 20:28:33 +00:00
|
|
|
* bug fixes
|
2011-12-13 00:30:00 +00:00
|
|
|
|
2011-12-12 10:55:45 +00:00
|
|
|
Changes in 3.08 (12 Dec 2011):
|
2011-12-06 16:22:44 +00:00
|
|
|
* Fix allocation in runtime stub for darwin.macho-entry (i386 and amd64).
|
|
|
|
* Compress shared library on ELF i386 only [ld.so threatens even this case].
|
2011-12-14 17:06:39 +00:00
|
|
|
* Attempt to support ELF on QNX 6.3.0 for armel (experimental).
|
|
|
|
* Better diagnostic when ELF -fPIC is needed.
|
2023-02-05 16:20:32 +00:00
|
|
|
* PT_NOTE improvements for BSD.
|
2011-12-06 16:22:44 +00:00
|
|
|
* Preserve more ELF .e_flags on ARM.
|
2011-12-14 17:06:39 +00:00
|
|
|
* Minor code improvements for ELF stubs.
|
2011-12-06 16:22:44 +00:00
|
|
|
* Defend against another flavor of corrupt PE header.
|
|
|
|
* bug fixes
|
2010-09-08 16:04:39 +00:00
|
|
|
|
2010-09-08 14:02:04 +00:00
|
|
|
Changes in 3.07 (08 Sep 2010):
|
|
|
|
* win32/pe: fixed relocation handling for files with *no* TLS callbacks
|
2010-09-08 14:56:49 +00:00
|
|
|
[severe bug introduced in 3.06]
|
2010-09-04 18:23:02 +00:00
|
|
|
|
2010-09-04 11:11:59 +00:00
|
|
|
Changes in 3.06 (04 Sep 2010):
|
2010-08-31 12:35:59 +00:00
|
|
|
* win32/pe: TLS callback support contributed by Stefan Widmann. Thanks!
|
2010-09-04 11:11:59 +00:00
|
|
|
* bug fixes
|
2010-04-27 15:26:05 +00:00
|
|
|
|
2010-03-06 15:50:17 +00:00
|
|
|
Changes in 3.05 (27 Apr 2010):
|
2010-01-18 03:58:58 +00:00
|
|
|
* i386-linux and amd64-linux support shared libraries (DT_INIT must
|
|
|
|
exist, all info needed by runtime loader must be first in .text, etc.)
|
2010-02-28 23:58:08 +00:00
|
|
|
* Linux /proc/self/exe now is preserved by default, by leaving behind
|
|
|
|
one page. New compress-time option --unmap-all-pages is available.
|
2010-04-27 14:09:41 +00:00
|
|
|
* Withdraw support for shared libraries on Darwin (Apple Mac OS X)
|
|
|
|
because upx does not understand enough about .dylib.
|
2010-01-18 03:58:58 +00:00
|
|
|
* bug fixes
|
2009-09-27 18:08:49 +00:00
|
|
|
|
2009-09-27 18:06:01 +00:00
|
|
|
Changes in 3.04 (27 Sep 2009):
|
2009-09-01 14:30:37 +00:00
|
|
|
* new format Mach/AMD64 supports 64-bit programs on Apple Macintosh.
|
2009-05-31 19:57:10 +00:00
|
|
|
* new formats Dylib/i386 and Dylib/ppc32 support shared libraries
|
|
|
|
[such as browser plugins] on Darwin (Apple Macintosh). An existing
|
|
|
|
-init function (LC_ROUTINES command) is required.
|
2008-09-15 17:18:19 +00:00
|
|
|
* new format vmlinuz/armel for Debian NSLU2 (etc.) linux kernel
|
2008-08-05 00:28:23 +00:00
|
|
|
* bvmlinuz boot protocol 2.08 for 386 Linux kernel
|
|
|
|
* Extended ABI version 4 for armel-eabi ARM Linux ELF
|
2009-04-19 16:46:31 +00:00
|
|
|
* bug fixes
|
2008-04-27 16:46:52 +00:00
|
|
|
|
2008-04-17 10:16:23 +00:00
|
|
|
Changes in 3.03 (27 Apr 2008):
|
2008-02-26 20:15:09 +00:00
|
|
|
* implement cache flushing for PowerPC (esp. model 440)
|
2008-04-26 06:48:13 +00:00
|
|
|
* fix cache flushing on MIPS (>3 MiB compressed, or with holes)
|
2008-04-03 16:01:55 +00:00
|
|
|
* fix MIPS big-endian
|
2008-04-17 10:16:23 +00:00
|
|
|
* bug fixes
|
2007-12-16 14:10:44 +00:00
|
|
|
|
2007-12-16 14:07:05 +00:00
|
|
|
Changes in 3.02 (16 Dec 2007):
|
2007-08-30 18:55:58 +00:00
|
|
|
* fix unmapping on arm-linux.elf
|
2007-09-08 13:55:47 +00:00
|
|
|
* fix error checking in mmap for i386-linux.elf [triggered by -fPIE]
|
2007-12-16 14:07:05 +00:00
|
|
|
* bug fixes
|
2007-07-31 20:50:23 +00:00
|
|
|
|
2007-07-31 13:06:53 +00:00
|
|
|
Changes in 3.01 (31 Jul 2007):
|
2007-06-19 13:14:12 +00:00
|
|
|
* new options --no-mode, --no-owner and --no-time to disable preservation
|
|
|
|
of mode (file permissions), file ownership and timestamps.
|
2007-05-08 16:23:41 +00:00
|
|
|
* dos/exe: fixed an incorrect error message caused by a bug in
|
|
|
|
relocation handling
|
2007-06-04 17:13:14 +00:00
|
|
|
* new format linux/mipsel supports ELF on [32-bit] R3000
|
|
|
|
* fix argv[0] on PowerPC with --lzma
|
2007-07-31 13:06:53 +00:00
|
|
|
* bug fixes
|
2007-04-30 17:34:26 +00:00
|
|
|
|
2007-04-22 14:55:41 +00:00
|
|
|
Changes in 3.00 (27 Apr 2007):
|
|
|
|
* watcom/le & tmt/adam: fixed a problem when using certain filters
|
2007-03-08 07:26:28 +00:00
|
|
|
|
2007-03-04 16:13:11 +00:00
|
|
|
Changes in 2.93 beta (08 Mar 2007):
|
2007-02-12 23:22:22 +00:00
|
|
|
* new formats Mach/i386 and Mach/fat support Mac OS X i686 and
|
2007-03-06 05:26:36 +00:00
|
|
|
Universal binaries [i686 and PowerPC only]
|
2007-03-04 16:01:50 +00:00
|
|
|
* dos/exe: LZMA is now also supported for 16-bit dos/exe. Please note that
|
2007-02-26 00:37:03 +00:00
|
|
|
you have to explicitly use '--lzma' even for '--ultra-brute' here
|
|
|
|
because runtime decompression is about 30 times slower than NRV -
|
2007-03-04 16:01:50 +00:00
|
|
|
which is really noticeable on old machines.
|
2017-07-22 10:54:37 +00:00
|
|
|
* dos/exe: fixed a rarely occurring bug in relocation handling
|
2007-03-04 16:01:50 +00:00
|
|
|
* win32/pe & arm/pe: better icon compression handling
|
2007-01-23 21:17:02 +00:00
|
|
|
|
2007-01-23 21:11:23 +00:00
|
|
|
Changes in 2.92 beta (23 Jan 2007):
|
2006-12-01 01:47:46 +00:00
|
|
|
* new option '--ultra-brute' which tries even more variants
|
2007-01-23 12:50:39 +00:00
|
|
|
* slightly improved compression ratio for some files when
|
|
|
|
using '--brute' or '--ultra-brute'
|
|
|
|
* bug fixes
|
2006-11-29 04:41:39 +00:00
|
|
|
|
2006-11-29 02:43:29 +00:00
|
|
|
Changes in 2.91 beta (29 Nov 2006):
|
2006-11-07 13:07:43 +00:00
|
|
|
* assorted bug fixes
|
2023-02-12 17:58:11 +00:00
|
|
|
* wince/arm: fix "missing" icon & version info resource problem for WinCE 5
|
2006-11-29 02:43:29 +00:00
|
|
|
* win32/pe & arm/pe: added option --compress-icons=3 to compress all icons
|
2006-10-11 11:06:17 +00:00
|
|
|
|
|
|
|
Changes in 2.90 beta (08 Oct 2006):
|
2006-10-04 07:26:34 +00:00
|
|
|
* 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
|
2006-10-03 14:20:59 +00:00
|
|
|
via auto-detection of PT_NOTE or EI_OSABI
|
2006-10-04 07:26:34 +00:00
|
|
|
* arm/pe: all the NRV compression methods are now supported
|
2006-10-03 13:56:39 +00:00
|
|
|
(only NRV2D is missing in thumb mode)
|
2006-10-11 11:47:12 +00:00
|
|
|
* linux/elf386, linux/ElfAMD: remember /proc/self/exe in environment
|
|
|
|
* major source code changes: the runtime decompression stubs are now
|
2006-10-04 07:26:34 +00:00
|
|
|
built from internal ELF objects
|
2006-08-13 19:44:40 +00:00
|
|
|
|
2006-10-11 11:06:17 +00:00
|
|
|
==================================================================
|
|
|
|
|
2006-11-07 18:56:15 +00:00
|
|
|
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)
|
|
|
|
|
2006-08-14 06:46:55 +00:00
|
|
|
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
|
2006-10-11 11:47:12 +00:00
|
|
|
* vmlinuz/386: fixed zlib uncompression problem on DOS
|
2006-08-11 15:59:12 +00:00
|
|
|
|
2006-06-06 15:36:34 +00:00
|
|
|
Changes in 2.01 (06 Jun 2006):
|
2006-05-08 09:39:55 +00:00
|
|
|
* arm/pe: better DLL support
|
2006-05-18 17:01:03 +00:00
|
|
|
* dos/exe: device driver support added
|
2006-05-22 22:15:21 +00:00
|
|
|
* linux/386: Fix --force-execve for PaX, grSecurity, and strict SELinux.
|
|
|
|
/tmp must support execve(); therefore /tmp cannot be mounted 'noexec'.
|
2006-06-06 15:36:34 +00:00
|
|
|
* win32/pe & arm/pe: added new option '--keep-resource=' for
|
2006-05-18 17:01:03 +00:00
|
|
|
excluding selected resources from compression
|
2006-05-08 08:48:41 +00:00
|
|
|
|
2006-04-19 08:38:44 +00:00
|
|
|
Changes in 2.00 (27 Apr 2006):
|
|
|
|
* linux/386: the stub now prints an error message if some strict
|
2006-04-19 08:46:18 +00:00
|
|
|
SELinux mode does prevent runtime decompression and execution
|
2006-04-19 11:05:08 +00:00
|
|
|
(for a fully SELinux-compatible but otherwise inferior compression
|
|
|
|
format you can use the '--force-execve' option)
|
2006-04-19 08:46:18 +00:00
|
|
|
* linux/386: worked around a problem where certain Linux kernels
|
2006-04-13 22:48:32 +00:00
|
|
|
clobber the %ebx register during a syscall
|
2006-04-19 08:38:44 +00:00
|
|
|
* win32/pe: disable filters for files with broken PE headers
|
2006-04-09 12:38:12 +00:00
|
|
|
|
2006-04-13 15:51:40 +00:00
|
|
|
Changes in 1.96 beta (13 Apr 2006):
|
|
|
|
* arm/pe: added filter support
|
|
|
|
* win32/pe: removed an unnecessary check so that Delphi 2006 and
|
2006-04-13 22:48:32 +00:00
|
|
|
Digital Mars C++ programs finally are supported
|
2006-04-13 15:51:40 +00:00
|
|
|
|
2006-04-08 19:01:24 +00:00
|
|
|
Changes in 1.95 beta (09 Apr 2006):
|
|
|
|
* arm/pe: added DLL support
|
|
|
|
* arm/pe: added thumb mode stub support
|
|
|
|
* arm/pe: added unpacking support
|
2006-03-16 15:40:08 +00:00
|
|
|
* win32/pe: really worked around R6002 runtime errors
|
2006-03-11 15:22:56 +00:00
|
|
|
|
|
|
|
Changes in 1.94 beta (11 Mar 2006):
|
2023-02-12 17:58:11 +00:00
|
|
|
* new format: added support for wince/arm (ARM executables running on WinCE)
|
2006-03-06 21:04:04 +00:00
|
|
|
* new format: added support for linux elf/amd64
|
|
|
|
* new format: added support for linux elf/ppc32
|
|
|
|
* new format: added support for mach/ppc32 (Apple Mac OS X)
|
2006-02-02 11:07:45 +00:00
|
|
|
* win32/pe: hopefully working "load config" support
|
2006-02-09 17:21:25 +00:00
|
|
|
* win32/pe: R6002 runtime errors worked around
|
2006-03-06 21:04:04 +00:00
|
|
|
* win32/pe: the stub now clears the dirty stack
|
2005-02-07 20:25:14 +00:00
|
|
|
|
|
|
|
Changes in 1.93 beta (07 Feb 2005):
|
2005-02-07 19:32:11 +00:00
|
|
|
* vmlinuz/386: fixes to support more kernels
|
2004-07-20 00:28:49 +00:00
|
|
|
|
|
|
|
Changes in 1.92 beta (20 Jul 2004):
|
2006-04-19 11:05:08 +00:00
|
|
|
* win32/pe: added option '--strip-loadconf' to strip the SEH load
|
2006-04-13 22:48:32 +00:00
|
|
|
config section [NOTE: this option is obsolete since UPX 1.94]
|
2004-07-19 16:56:02 +00:00
|
|
|
* win32/pe: try to detect .NET (win32/net) files [not yet supported by UPX]
|
2004-07-19 18:23:56 +00:00
|
|
|
* vmlinux/386: new format that directly supports building Linux kernels
|
2004-07-19 16:56:02 +00:00
|
|
|
* source code: now compiles cleanly under Win64
|
2004-06-30 04:03:23 +00:00
|
|
|
|
|
|
|
Changes in 1.91 beta (30 Jun 2004):
|
2003-04-01 22:52:33 +00:00
|
|
|
* djgpp2/coff: added support for recent binutils versions
|
2004-06-29 18:11:52 +00:00
|
|
|
* linux/elf386, linux/sh386: lots of improvements
|
|
|
|
* vmlinuz/386: added support for recent kernels
|
2003-04-01 22:52:33 +00:00
|
|
|
* watcom/le: don't crash on files without relocations
|
2004-06-29 18:11:52 +00:00
|
|
|
* win32/pe: stricter checks of some PE values
|
2006-04-19 11:05:08 +00:00
|
|
|
* option '--brute' now implies '--crp-ms=999999'.
|
2004-04-14 00:10:13 +00:00
|
|
|
* source code: much improved portability using ACC, the
|
|
|
|
Automatic Compiler Configuration
|
|
|
|
* source code: compile fixes for strict ISO C++ compilers
|
|
|
|
* source code: compile fixes for Win64
|
2004-06-29 23:40:16 +00:00
|
|
|
* re-synced with upx 1.25 branch
|
2003-04-01 22:52:33 +00:00
|
|
|
|
2002-11-10 23:07:16 +00:00
|
|
|
Changes in 1.90 beta (11 Nov 2002):
|
2001-01-02 15:39:05 +00:00
|
|
|
* implemented several new options for finer compression control:
|
2006-04-19 11:05:08 +00:00
|
|
|
'--all-methods', '--all-filters' and '--brute'
|
2002-10-14 18:19:35 +00:00
|
|
|
* ps1/exe: new format - UPX now supports PlayStation One programs
|
2006-04-19 11:05:08 +00:00
|
|
|
* linux/386: added the option '--force-execve'
|
2001-01-05 19:10:13 +00:00
|
|
|
* vmlinuz/386: better kernel detection and sanity checks
|
2002-12-29 11:53:01 +00:00
|
|
|
* re-synced with upx 1.24 branch
|
2001-01-04 19:20:47 +00:00
|
|
|
* documentation updates
|
2001-01-02 15:39:05 +00:00
|
|
|
|
2000-12-20 20:03:54 +00:00
|
|
|
Changes in 1.11 beta (20 Dec 2000):
|
2000-12-19 13:49:10 +00:00
|
|
|
* vmlinuz/386: new format - UPX now supports bootable linux kernels
|
2001-01-05 19:10:13 +00:00
|
|
|
* linux/elf386: added the new ELF direct-to-memory executable format - no
|
|
|
|
more temp files are needed for decompression!
|
|
|
|
* linux/sh386: added the new shell direct-to-memory executable format - no
|
2000-12-19 13:49:10 +00:00
|
|
|
more temp files are needed for decompression!
|
2000-09-21 08:50:30 +00:00
|
|
|
* reduced overall memory requirements during packing
|
2000-11-13 10:47:51 +00:00
|
|
|
* quite a number of internal source code rearrangements
|
2000-09-21 08:50:30 +00:00
|
|
|
|
2002-10-14 18:19:35 +00:00
|
|
|
==================================================================
|
|
|
|
|
2004-06-29 18:11:52 +00:00
|
|
|
Changes in 1.25 (29 Jun 2004)
|
2023-02-05 16:20:32 +00:00
|
|
|
* INFO: http://upx.sourceforge.net is the new UPX home page
|
2004-06-29 18:11:52 +00:00
|
|
|
* watcom/le: don't crash on files without relocations
|
|
|
|
* win32/pe: stricter checks of some PE values
|
|
|
|
* source code: much improved portability using ACC, the
|
|
|
|
Automatic Compiler Configuration
|
|
|
|
* source code: compile fixes for strict ISO C++ compilers
|
|
|
|
* source code: compile fixes for Win64
|
|
|
|
|
2002-11-10 23:07:16 +00:00
|
|
|
Changes in 1.24 (07 Nov 2002)
|
|
|
|
* djgpp2/coff: stricter check of the COFF header to work around a
|
|
|
|
problem with certain binutils versions
|
|
|
|
|
2002-10-14 18:19:35 +00:00
|
|
|
Changes in 1.23 (05 Sep 2002)
|
|
|
|
* atari/tos: fixed an unpacking problem where a buffer was too
|
|
|
|
small (introduced in 1.22)
|
|
|
|
* linux/386: don't give up too early if a single block turns out
|
|
|
|
to be incompressible
|
|
|
|
* documentation: added some quick tips how to achieve the best
|
|
|
|
compression ratio for the final release of your application
|
|
|
|
* fixed a rare situation where the exit code was not set correctly
|
|
|
|
|
2002-07-16 16:00:58 +00:00
|
|
|
Changes in 1.22 (27 Jun 2002)
|
|
|
|
* atari/tos: the stub now flushes the CPU cache to avoid
|
|
|
|
problems on 68030+ machines
|
2004-04-14 00:10:13 +00:00
|
|
|
* source code: additional compiler support for Borland C++,
|
|
|
|
Digital Mars C++ and Watcom C++
|
2002-07-16 16:00:58 +00:00
|
|
|
|
|
|
|
Changes in 1.21 (01 Jun 2002)
|
2006-04-19 11:05:08 +00:00
|
|
|
* New option '--crp-ms=' for slightly better compression at the cost
|
2002-07-16 16:00:58 +00:00
|
|
|
of higher memory requirements during compression.
|
2006-04-19 11:05:08 +00:00
|
|
|
Try 'upx --best --crp-ms=100000'. See the docs for more info.
|
2002-07-16 16:00:58 +00:00
|
|
|
* source code: portability fixes
|
|
|
|
* source code: compile fixes for g++ 3.0 and g++ 3.1
|
|
|
|
|
|
|
|
Changes in 1.20 (23 May 2001)
|
|
|
|
* slightly faster compression
|
|
|
|
* work around a gcc problem in the latest djgpp2 distribution
|
|
|
|
* watcom/le: fixed detection of already compressed files
|
|
|
|
* win32/pe: do not compress RT_MANIFEST resource types
|
|
|
|
* win32/pe: improved the error message for empty resource sections
|
|
|
|
* [NOTE: the jump from 1.08 to 1.20 is to avoid confusion with
|
|
|
|
our unstable development releases 1.1x and 1.9x]
|
|
|
|
|
|
|
|
Changes in 1.08 (30 Apr 2001)
|
|
|
|
* new native port to atari/tos
|
|
|
|
* win32/pe: shortened the identstring
|
|
|
|
* source code: portability fixes - UPX now builds cleanly under m68k CPUs
|
|
|
|
|
2001-02-20 16:59:57 +00:00
|
|
|
Changes in 1.07 (20 Feb 2001)
|
|
|
|
* win32/pe: corrected the TLS callback check
|
|
|
|
* win32/pe: really fixed that rare bug in relocation handling
|
|
|
|
* win32/pe: experimental support for SizeOfHeaders > 0x1000
|
|
|
|
* win32/pe: check for superfluous data between sections
|
|
|
|
* win32/pe: compressing screensavers (.scr) should finally work
|
|
|
|
|
2001-01-27 17:03:17 +00:00
|
|
|
Changes in 1.06 (27 Jan 2001)
|
|
|
|
* win32/pe: the check for TLS callbacks introduced in 1.05
|
|
|
|
was too strict - disabled for now
|
2001-02-07 23:12:44 +00:00
|
|
|
* dos/com: decreased the decompressor stack size a little bit
|
2001-01-27 17:03:17 +00:00
|
|
|
|
2001-01-24 20:25:39 +00:00
|
|
|
Changes in 1.05 (24 Jan 2001)
|
|
|
|
* win32/pe: refuse to compress programs with TLS callbacks
|
|
|
|
* win32/pe: stub changes to avoid slowdowns with some virus monitors
|
|
|
|
* win32/pe: reverted the relocation handling changes in 1.04
|
|
|
|
* linux/386: dont try to compress Linux kernel images (have a look
|
|
|
|
at the unstable UPX 1.1x beta versions for that)
|
|
|
|
|
2000-12-19 13:49:10 +00:00
|
|
|
Changes in 1.04 (19 Dec 2000)
|
2006-04-19 11:05:08 +00:00
|
|
|
* dos/exe: fixed an internal error when using '--no-reloc'
|
2000-12-19 13:49:10 +00:00
|
|
|
* win32/pe: fixed a rare bug in the relocation handling code
|
|
|
|
* some tunings for the default compression level
|
|
|
|
|
2000-11-30 17:41:21 +00:00
|
|
|
Changes in 1.03 (30 Nov 2000)
|
|
|
|
* linked with a new version of the NRV compression library:
|
|
|
|
- improved compression ratio a little bit
|
2000-12-12 03:44:19 +00:00
|
|
|
- overall significantly faster compression
|
2006-04-19 11:05:08 +00:00
|
|
|
- much faster when using high compression levels like '-9' or '--best'
|
2000-11-30 17:41:21 +00:00
|
|
|
- much faster with large files
|
|
|
|
* atari/tos: added support for FreeMiNT
|
|
|
|
* the 32-bit DOS version now uses the new CWSDSTUB extender
|
|
|
|
|
2000-09-13 17:39:06 +00:00
|
|
|
Changes in 1.02 (13 Sep 2000)
|
|
|
|
* watcom/le: fixed a problem with the Causeway extender
|
|
|
|
* win32/pe: don't automatically strip relocs if they seem needed
|
2006-04-19 11:05:08 +00:00
|
|
|
* support multiple backup generations when using '-k'
|
2000-09-13 17:39:06 +00:00
|
|
|
* updated the console screen driver
|
|
|
|
|
2000-05-19 16:04:55 +00:00
|
|
|
Changes in 1.01 (09 Apr 2000)
|
|
|
|
* win32/pe: fixed an uncompression problem in DLLs with empty
|
|
|
|
fixup sections
|
|
|
|
* win32/pe: fixed another rare uncompression problem - a field in the
|
|
|
|
PE header was set incorrectly
|
|
|
|
|
|
|
|
Changes in 1.00 (26 Mar 2000)
|
|
|
|
* documentation updates
|
|
|
|
* watcom/le: do not duplicate the non-resident name table
|
|
|
|
* win32/pe: fixed an import handling problem: sometimes too much data
|
|
|
|
could be deleted from a file -> the uncompressed file would not work
|
|
|
|
anymore
|
|
|
|
|
|
|
|
Changes in 0.99.3 (07 Mar 2000)
|
|
|
|
* win32/pe: fixed a rare problem in the stub string handling part
|
|
|
|
|
|
|
|
Changes in 0.99.2 (02 Mar 2000)
|
|
|
|
* dos/exe: fixed a typo causing an internal error (introduced in 0.99.1)
|
|
|
|
|
|
|
|
Changes in 0.99.1 (29 Feb 2000)
|
|
|
|
* win32/pe: fixed some object alignments which were causing
|
|
|
|
problems when loading compressed DLLs under Windows NT/2000
|
|
|
|
|
|
|
|
Changes in 0.99 (25 Feb 2000)
|
|
|
|
* FULL SOURCE CODE RELEASED UNDER THE TERMS OF THE GNU GPL
|
2006-04-19 11:05:08 +00:00
|
|
|
* win32/pe: changed default to '--strip-relocs=1'
|
2000-05-19 16:04:55 +00:00
|
|
|
* dos/com and dos/sys: fixed a bad decompressor problem
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: the counter for the progress indicator was off by one
|
2000-05-19 16:04:55 +00:00
|
|
|
|
2022-10-28 08:38:03 +00:00
|
|
|
==================================================================
|
|
|
|
|
2000-05-19 16:04:55 +00:00
|
|
|
Changes in 0.94 (06 Dec 1999)
|
|
|
|
* win32/pe: the stub now calls ExitProcess in case of import errors
|
|
|
|
* under DOS and Windows, the environment variable UPX now accepts
|
|
|
|
a '#' as replacement for '=' because of a COMMAND.COM limitation
|
|
|
|
|
|
|
|
Changes in 0.93 (22 Nov 1999)
|
|
|
|
* win32/pe: fixed --strip-relocs problem with uncompression
|
|
|
|
* win32/pe: fixed a bug which could produce a broken decompressor stub
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: yet another FreeBSD compatibility fix
|
2000-05-19 16:04:55 +00:00
|
|
|
|
|
|
|
Changes in 0.92 (14 Nov 1999)
|
|
|
|
* win32/pe: really fixed that one line (see below)
|
|
|
|
|
|
|
|
Changes in 0.91 (13 Nov 1999)
|
|
|
|
* win32/pe: an important one-line fix for the newly introduced problems
|
|
|
|
* dos/com and dos/sys: fixed an internal error
|
|
|
|
* dos/exe: correctly restore cs when uncompressing
|
|
|
|
|
|
|
|
Changes in 0.90 (10 Nov 1999)
|
2006-04-19 11:05:08 +00:00
|
|
|
* all formats: '--overlay=copy' now is the default overlay mode
|
2000-05-19 16:04:55 +00:00
|
|
|
* improved compression ratio for most files
|
|
|
|
* win32/pe: uncompression is finally supported
|
|
|
|
* win32/pe: never compress REGISTRY resources
|
|
|
|
* win32/pe: headersize was not set in PE header
|
|
|
|
* win32/pe: resource handling is rewritten
|
|
|
|
* win32/pe: the last :-) TLS problem is fixed
|
|
|
|
* win32/pe: somewhat less memory is required during compression
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: fixed compression of scripts which was broken since 0.71
|
|
|
|
* linux/386: more FreeBSD compatibility issues
|
2006-04-19 11:05:08 +00:00
|
|
|
* changed option: '-i' now prints some more details during compression
|
2000-05-19 16:04:55 +00:00
|
|
|
(not finished yet)
|
|
|
|
|
|
|
|
Changes in 0.84 (04 Oct 1999)
|
|
|
|
* dos/exe: fixed a rare problem where the decompressor could crash
|
|
|
|
* some other minor fixes
|
|
|
|
|
|
|
|
Changes in 0.83 (17 Sep 1999)
|
|
|
|
* dos/exe: fixed minimal memory requirement problem for some files
|
|
|
|
* win32/pe: fixed a bug which caused a crash in some compressed files
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: various improvements in the stub; also, for the sake
|
2000-05-19 16:04:55 +00:00
|
|
|
of FreeBSD users, the stub is now branded as Linux/ELF
|
|
|
|
|
|
|
|
Changes in 0.82 (16 Aug 1999)
|
|
|
|
* dos/exe: fixed a decompressor bug which could cause crash on some files
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: section headers are now stripped from the stub so that
|
2006-04-19 11:05:08 +00:00
|
|
|
'strip' won't ruin a compressed file any longer
|
2000-05-19 16:04:55 +00:00
|
|
|
* wc/le: support for stack not in the last object disabled again
|
|
|
|
* win32/pe: removed some unneeded data
|
|
|
|
|
|
|
|
Changes in 0.81 (04 Aug 1999)
|
|
|
|
* win32/pe: fixed an important bug in import handling
|
|
|
|
* dos/com: fixed an internal error that could happen with very small files
|
|
|
|
|
|
|
|
Changes in 0.80 (03 Aug 1999)
|
2006-04-19 11:05:08 +00:00
|
|
|
* you can set some default options in the environment var 'UPX'
|
2000-05-19 16:04:55 +00:00
|
|
|
* dos/com: the decompressor stub now checks for enough free memory
|
|
|
|
* dos/exe: decompressor rewritten, some bugs are fixed
|
2006-04-19 11:05:08 +00:00
|
|
|
* dos/exe: new option '--no-reloc': no relocation data is put into
|
2000-05-19 16:04:55 +00:00
|
|
|
the DOS header
|
|
|
|
* tmt/adam: added support for more stubs, detect already packed files
|
2006-04-19 11:05:08 +00:00
|
|
|
* tmt/adam: new option '--copy-overlay'
|
2000-05-19 16:04:55 +00:00
|
|
|
* wc/le: reduced memory requirement during uncompression
|
|
|
|
* wc/le: support files which do not contain their stack in the last object
|
|
|
|
* wc/le: fixed a bug which could cause a crash, improved relocation
|
|
|
|
handling
|
2006-04-19 11:05:08 +00:00
|
|
|
* wc/le: new option '--copy-overlay'
|
|
|
|
* win32/pe: '--compress-icons=2' is now the default
|
2000-05-19 16:04:55 +00:00
|
|
|
* win32/pe: even better TLS support
|
|
|
|
* win32/pe: versioninfo works on NT
|
|
|
|
* win32/pe: import by ordinal from kernel32.dll works
|
2007-03-06 05:26:36 +00:00
|
|
|
* win32/pe: other import improvements: importing a nonexistent DLL
|
|
|
|
results in a usual Windows message, importing a nonexistent function
|
2000-05-19 16:04:55 +00:00
|
|
|
results in program exit (instead of crash ;-)
|
2006-04-19 11:05:08 +00:00
|
|
|
* win32/pe: new option: '--compress-resources=0'
|
2000-05-19 16:04:55 +00:00
|
|
|
* win32/pe: reduced memory requirement during uncompression, some
|
|
|
|
files might even require LESS memory when they're compressed
|
|
|
|
* win32/pe: TYPELIBs should work now
|
|
|
|
* win32/pe: improved relocation handling, 16-bit relocations should work
|
2006-04-19 11:05:08 +00:00
|
|
|
* win32/pe: new option '--strip-relocs' (only if you know what you are doing)
|
|
|
|
* win32/pe: new option '--copy-overlay'
|
2000-05-19 16:04:55 +00:00
|
|
|
* important internal changes: now the stubs are built at runtime
|
|
|
|
|
|
|
|
Changes in 0.72 (12 May 1999)
|
|
|
|
* tmt/adam: fixed a serious problem in the decompressor stub; all
|
|
|
|
compressed tmt files should be recompressed
|
|
|
|
* win32/pe: fixed the 'shared sections not supported' warning:
|
|
|
|
read-only shared sections are fine
|
|
|
|
* win32/pe: never compress TYPELIB resources
|
|
|
|
* win32/pe: compressed files are hopefully less suspicious to heuristic
|
|
|
|
virus scanners now
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: minor decompressor stub updates, nicer progress bar
|
2000-05-19 16:04:55 +00:00
|
|
|
|
|
|
|
Changes in 0.71 (19 Apr 1999)
|
2006-04-19 11:05:08 +00:00
|
|
|
* dos/exe: added option '--no-overlay'
|
2000-12-19 13:49:10 +00:00
|
|
|
* linux/386: various improvements in the stub, most notably the
|
2000-05-19 16:04:55 +00:00
|
|
|
overhead for an extra cleanup process has been removed
|
|
|
|
* win32/pe: added support for export forwarders
|
|
|
|
* win32/pe: added support for DLLs without entry point or imports
|
|
|
|
* win32/pe: yet another .bss fix
|
2006-04-19 11:05:08 +00:00
|
|
|
* win32/pe: new option '--compress-icons=2': compress all icons
|
2000-05-19 16:04:55 +00:00
|
|
|
which are not in the first icon directory
|
|
|
|
* win32/pe: rearranged stub to avoid false alerts from some virus scanners
|
|
|
|
|
|
|
|
Changes in 0.70 (30 Mar 1999)
|
2000-12-19 13:49:10 +00:00
|
|
|
* added support for linux/386 executables
|
2000-05-19 16:04:55 +00:00
|
|
|
* improved compression ratio quite a bit
|
2006-04-19 11:05:08 +00:00
|
|
|
* added new compression level '--best' to squeeze out even some more bytes
|
2000-05-19 16:04:55 +00:00
|
|
|
* win32/pe: TLS support is much better now
|
|
|
|
* win32/pe: --compress-icons=0 should now work as well
|
|
|
|
* the usual minor fixes for win32/pe
|
|
|
|
|
|
|
|
Changes in 0.62 (16 Mar 1999)
|
|
|
|
* win32/pe: --compress-icons and --compress-exports are on now by default
|
|
|
|
* win32/pe: --compress-icons should really work now
|
|
|
|
* win32/pe: fixed a problem with embedded .bss sections
|
|
|
|
|
|
|
|
Changes in 0.61 (08 Mar 1999)
|
|
|
|
* atari/tos: fixed a problem where the bss segment could become too small
|
|
|
|
|
|
|
|
Changes in 0.60 (06 Mar 1999)
|
|
|
|
* win32/pe: fixed file corruption when the size of the export data is invalid
|
|
|
|
* win32/pe: fixed a problem with empty resource data
|
|
|
|
* win32/pe: compressed file alignment set to minimum value
|
2007-03-06 05:26:36 +00:00
|
|
|
* win32/pe: made all compressed sections writable
|
2000-05-19 16:04:55 +00:00
|
|
|
* fixed some other win32/pe bugs
|
|
|
|
* fixed an address optimization problem for some not Watcom LE files
|
|
|
|
* fixed a bug which could make UPX hang when an exe header contained
|
|
|
|
an illegal value
|
|
|
|
* added some compression flags for the win32/pe format
|
2001-01-02 15:39:05 +00:00
|
|
|
* added support for Atari ST/TT executables (atari/tos)
|
2000-05-19 16:04:55 +00:00
|
|
|
* improved compression ratio
|
|
|
|
* improved compression speed
|
|
|
|
|
|
|
|
Changes in 0.51 (14 Jan 1999)
|
|
|
|
* fixed a small bug in the PE header that would prevent some compressed
|
|
|
|
win32/pe executables from running under Windows NT and WINE
|
|
|
|
|
|
|
|
Changes in 0.50 (03 Jan 1999)
|
|
|
|
* added support for PE format executables (win32/pe & rtm32/pe)
|
|
|
|
* added support for TMT executables (tmt/adam)
|
|
|
|
* fixed a dos/sys bug that affected OpenDOS
|
|
|
|
|
|
|
|
Changes in 0.40 (05 Oct 1998)
|
|
|
|
* improved compression ratio
|
|
|
|
* fixed a small but fatal bug in dos/sys introduced in 0.30
|
|
|
|
* fixed a rare bug in dos/exe
|
|
|
|
* worked around a bug in djgpp's strip 2.8
|
2023-06-27 10:59:24 +00:00
|
|
|
* djgpp2/coff: Allegro packfile support should work now
|
2000-05-19 16:04:55 +00:00
|
|
|
* added dos/exeh compression method (works on 386+)
|
|
|
|
|
|
|
|
Changes in 0.30 (27 Jul 1998)
|
|
|
|
* fixed a serious bug in the 32-bit compressors - please don't use
|
2023-06-27 10:59:24 +00:00
|
|
|
djgpp2/coff and watcom/le compressed files from previous versions,
|
2000-05-19 16:04:55 +00:00
|
|
|
some of them are possibly damaged !
|
|
|
|
* the 16-bit uncompressors are a little bit shorter & faster
|
|
|
|
* fixed progress indicator for VESA and SVGA text modes
|
|
|
|
|
|
|
|
Changes in 0.20 (05 Jul 1998)
|
|
|
|
* second public beta release
|
|
|
|
* too many changes to list here
|
|
|
|
|
|
|
|
Changes in 0.05 (26 May 1998)
|
|
|
|
* first public beta release
|
2023-06-27 10:59:24 +00:00
|
|
|
* based on experience gained from our previous packers DJP (djgpp2/coff, 1996),
|
2023-02-10 08:49:29 +00:00
|
|
|
lzop (1996) and mfxpak (atari/tos, 1990)
|