mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
Small updates.
committer: mfx <mfx> 1066732696 +0000
This commit is contained in:
parent
bcb5e7d852
commit
a55b3480ef
1
NEWS
1
NEWS
|
@ -11,6 +11,7 @@ Changes in 1.91 beta (XX Sep 2003):
|
||||||
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
|
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
|
||||||
* djgpp2/coff: added support for recent binutils versions
|
* djgpp2/coff: added support for recent binutils versions
|
||||||
* watcom/le: don't crash on files without relocations
|
* watcom/le: don't crash on files without relocations
|
||||||
|
* Option `--brute' now implies `--crp-ms=999999'.
|
||||||
|
|
||||||
Changes in 1.90 beta (11 Nov 2002):
|
Changes in 1.90 beta (11 Nov 2002):
|
||||||
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
|
* UNSTABLE BETA VERSION - DO NOT USE EXCEPT FOR TESTING
|
||||||
|
|
34
doc/upx.pod
34
doc/upx.pod
|
@ -20,7 +20,8 @@ B<upx> S<[ I<command> ]> S<[ I<options> ]> I<filename>...
|
||||||
B<UPX> is a portable, extendable, high-performance executable packer for
|
B<UPX> is a portable, extendable, high-performance executable packer for
|
||||||
several different executable formats. It achieves an excellent compression
|
several different executable formats. It achieves an excellent compression
|
||||||
ratio and offers I<*very*> fast decompression. Your executables suffer
|
ratio and offers I<*very*> fast decompression. Your executables suffer
|
||||||
no memory overhead or other drawbacks for most of the formats supported.
|
no memory overhead or other drawbacks for most of the formats supported,
|
||||||
|
because of in-place decompression.
|
||||||
|
|
||||||
While you may use B<UPX> freely for both non-commercial and commercial
|
While you may use B<UPX> freely for both non-commercial and commercial
|
||||||
executables (for details see the file LICENSE), we would highly
|
executables (for details see the file LICENSE), we would highly
|
||||||
|
@ -36,11 +37,6 @@ is considered not politically correct ;-) ]
|
||||||
|
|
||||||
B<UPX> comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
|
B<UPX> comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
|
||||||
|
|
||||||
Having said that, we think that B<UPX> is quite stable now. Indeed we
|
|
||||||
have compressed lots of files without any problems. Also, the
|
|
||||||
current version has undergone several months of beta testing -
|
|
||||||
actually it's more than 4 years since our first public beta back in 1998.
|
|
||||||
|
|
||||||
This is the first production quality release, and we plan that future 1.xx
|
This is the first production quality release, and we plan that future 1.xx
|
||||||
releases will be backward compatible with this version.
|
releases will be backward compatible with this version.
|
||||||
|
|
||||||
|
@ -55,7 +51,8 @@ B<UPX> is a versatile executable packer with the following features:
|
||||||
- excellent compression ratio: compresses better than zip/gzip,
|
- excellent compression ratio: compresses better than zip/gzip,
|
||||||
use UPX to decrease the size of your distribution !
|
use UPX to decrease the size of your distribution !
|
||||||
|
|
||||||
- very fast decompression: about 10 MB/sec even on my old Pentium 133
|
- very fast decompression: about 10 MB/sec on an ancient Pentium 133,
|
||||||
|
about 200 MB/sec on an Athlon XP 2000+.
|
||||||
|
|
||||||
- no memory overhead for your compressed executables for most of the
|
- no memory overhead for your compressed executables for most of the
|
||||||
supported formats
|
supported formats
|
||||||
|
@ -174,7 +171,7 @@ Quick start for achieving the best compression ratio:
|
||||||
|
|
||||||
=over 4
|
=over 4
|
||||||
|
|
||||||
Try B<upx --brute --crp-ms=999999 myfile.exe>.
|
Try B<upx --brute myfile.exe>.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -190,9 +187,6 @@ Use the compression level B<--best>.
|
||||||
|
|
||||||
Try one or both of the options B<--all-methods> and B<--all-filters>.
|
Try one or both of the options B<--all-methods> and B<--all-filters>.
|
||||||
|
|
||||||
Info: the option B<--brute> is an abbrevation for all the options
|
|
||||||
B<S<--best> S<--all-methods> S<--all-filters>>.
|
|
||||||
|
|
||||||
=item *
|
=item *
|
||||||
|
|
||||||
Try the option B<--crp-ms=NUMBER>. This uses more memory during compression
|
Try the option B<--crp-ms=NUMBER>. This uses more memory during compression
|
||||||
|
@ -203,6 +197,11 @@ The default value is 10000 (ten thousand).
|
||||||
|
|
||||||
=item *
|
=item *
|
||||||
|
|
||||||
|
Info: the option B<--brute> is an abbrevation for the options
|
||||||
|
B<S<--best> S<--all-methods> S<--all-filters> S<--crp-ms=999999>>.
|
||||||
|
|
||||||
|
=item *
|
||||||
|
|
||||||
Try if B<--overlay=strip> works.
|
Try if B<--overlay=strip> works.
|
||||||
|
|
||||||
=item *
|
=item *
|
||||||
|
@ -215,9 +214,15 @@ For win32/pe programs there's B<--strip-relocs=0>. See notes below.
|
||||||
|
|
||||||
=head1 OVERLAY HANDLING OPTIONS
|
=head1 OVERLAY HANDLING OPTIONS
|
||||||
|
|
||||||
|
Info: An "overlay" means auxillary data atached after the logical end of
|
||||||
|
an executable, and it often contains application specific data
|
||||||
|
(this is a common practice to avoid an extra data file, though
|
||||||
|
it would be better to use resource sections).
|
||||||
|
|
||||||
B<UPX> handles overlays like many other executable packers do: it simply
|
B<UPX> handles overlays like many other executable packers do: it simply
|
||||||
copies the overlay after the compressed image. This works with some
|
copies the overlay after the compressed image. This works with some
|
||||||
files, but doesn't work with others.
|
files, but doesn't work with others, depending on how an application
|
||||||
|
actually accesses this overlayed data.
|
||||||
|
|
||||||
Since version 0.90 UPX defaults to B<--overlay=copy> for
|
Since version 0.90 UPX defaults to B<--overlay=copy> for
|
||||||
all executable formats.
|
all executable formats.
|
||||||
|
@ -249,7 +254,8 @@ environment variable because of a COMMAND.COM limitation.
|
||||||
Not all of the options are valid in the environment variable -
|
Not all of the options are valid in the environment variable -
|
||||||
B<UPX> will tell you.
|
B<UPX> will tell you.
|
||||||
|
|
||||||
You can use the B<--no-env> option to turn this support off.
|
You can explicitly use the B<--no-env> option to ignore the
|
||||||
|
environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -859,7 +865,7 @@ Extra options available for this executable format:
|
||||||
address greater or equal to 0x400000. Usually the
|
address greater or equal to 0x400000. Usually the
|
||||||
compressed files becomes smaller, but some files
|
compressed files becomes smaller, but some files
|
||||||
may become larger. Note that the resulting file will
|
may become larger. Note that the resulting file will
|
||||||
not work under Win32s.
|
not work under Windows 3.x (Win32s).
|
||||||
UPX never strips relocations from a DLL
|
UPX never strips relocations from a DLL
|
||||||
regardless of this option.
|
regardless of this option.
|
||||||
|
|
||||||
|
|
23
src/Makefile
23
src/Makefile
|
@ -3,20 +3,23 @@
|
||||||
#
|
#
|
||||||
# usage:
|
# usage:
|
||||||
# `make target=linux' # linux
|
# `make target=linux' # linux
|
||||||
# `make target=djggp2' # dos32 - djggp2
|
# `make target=dos32-djggp2' # dos32 - djggp2
|
||||||
# `make target=cygwin' # win32 - cygwin 1.3.x
|
# `make target=win32-cygwin' # win32 - cygwin
|
||||||
# `make target=mingw32' # win32 - mingw32
|
# `make target=win32-mingw32' # win32 - mingw32
|
||||||
# `make target=no-cygwin' # win32 - mingw32 as included in cygwin
|
# `make target=win32-no-cygwin' # win32 - mingw32 as included in cygwin
|
||||||
# `make target=rsxnt' # win32 - rsxnt
|
# `make target=win32-rsxnt' # win32 - rsxnt
|
||||||
# `make target=bc' # win32 - Borland C++
|
# `make target=win32-bc' # win32 - Borland C++
|
||||||
# `make target=dm' # win32 - Digital Mars C++
|
# `make target=win32-dm' # win32 - Digital Mars C++
|
||||||
# `make target=ic' # win32 - Intel C++
|
# `make target=win32-ic' # win32 - Intel C++
|
||||||
# `make target=vc' # win32 - Visual C++
|
# `make target=win32-vc' # win32 - Visual C++
|
||||||
# `make target=wc' # win32 - Watcom C++
|
# `make target=win32-wc' # win32 - Watcom C++
|
||||||
|
# `make target=cross-amd64-linux' # x86_64-linux cross compiler
|
||||||
# `make target=cross-mingw32' # i586-mingw32msvc cross compiler
|
# `make target=cross-mingw32' # i586-mingw32msvc cross compiler
|
||||||
# `make target=cross-mint' # m68k-atari-mint cross compiler
|
# `make target=cross-mint' # m68k-atari-mint cross compiler
|
||||||
# `make target=gcc' # generic gcc
|
# `make target=gcc' # generic gcc
|
||||||
#
|
#
|
||||||
|
# you can also set the `UPX_MAKE_TARGET' environment variable.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
# configuration section
|
# configuration section
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // setup
|
# // perpare setup
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
@ -217,7 +217,7 @@ ifeq ($(target),cross-amd64-linux)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
CC = x86_64-linux-gcc
|
CC = x86_64-linux-gcc
|
||||||
CXX = x86_64-linux-g++
|
CXX = x86_64-linux-g++
|
||||||
##LDLIBS += -lmcheck
|
LDLIBS += -lmcheck
|
||||||
endif # cross-amd64-linux
|
endif # cross-amd64-linux
|
||||||
|
|
||||||
ifeq ($(target),cross-m68k-linux)
|
ifeq ($(target),cross-m68k-linux)
|
||||||
|
@ -270,7 +270,7 @@ endif
|
||||||
### dos32 - djgpp2 / emx
|
### dos32 - djgpp2 / emx
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),djgpp2)
|
ifeq ($(target),dos32-djgpp2)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
e = .exe
|
e = .exe
|
||||||
CXX = gxx
|
CXX = gxx
|
||||||
|
@ -284,7 +284,7 @@ endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(target),emx)
|
ifeq ($(target),dos32-emx)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
e = .exe
|
e = .exe
|
||||||
CXX = gcc
|
CXX = gcc
|
||||||
|
@ -298,24 +298,27 @@ endif
|
||||||
### win32 - cygwin / mingw32 / rsxnt
|
### win32 - cygwin / mingw32 / rsxnt
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),cygwin)
|
ifeq ($(target),win32-cygwin)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
##CXX = g++-2
|
##CXX = g++-2
|
||||||
e = .exe
|
e = .exe
|
||||||
CCARCH += -mcygwin -march=i386 -mcpu=i686
|
CCARCH += -mcygwin -march=i386 -mcpu=i686
|
||||||
|
LDLIBS += -lwinmm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(target),mingw32)
|
ifeq ($(target),win32-mingw32)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
e = .exe
|
e = .exe
|
||||||
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
|
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
|
||||||
|
LDLIBS += -lwinmm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# mingw32 as included in cygwin
|
# mingw32 as included in cygwin
|
||||||
ifeq ($(target),no-cygwin)
|
ifeq ($(target),win32-no-cygwin)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
e = .exe
|
e = .exe
|
||||||
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
|
CCARCH += -mno-cygwin -march=i386 -mcpu=i686
|
||||||
|
LDLIBS += -lwinmm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# mingw32 cross compiler
|
# mingw32 cross compiler
|
||||||
|
@ -325,10 +328,11 @@ e = .exe
|
||||||
CC = i586-mingw32msvc-gcc
|
CC = i586-mingw32msvc-gcc
|
||||||
CXX = i586-mingw32msvc-g++
|
CXX = i586-mingw32msvc-g++
|
||||||
CCARCH += -march=i386 -mcpu=i686
|
CCARCH += -march=i386 -mcpu=i686
|
||||||
|
LDLIBS += -lwinmm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# rsxnt (g++ 2.8.1)
|
# rsxnt (g++ 2.8.1)
|
||||||
ifeq ($(target),rsxnt)
|
ifeq ($(target),win32-rsxnt)
|
||||||
include $(srcdir)/Makedefs.gcc
|
include $(srcdir)/Makedefs.gcc
|
||||||
e = .exe
|
e = .exe
|
||||||
CXX = gcc
|
CXX = gcc
|
||||||
|
@ -343,7 +347,7 @@ endif
|
||||||
### win32 - Borland C++
|
### win32 - Borland C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),bc)
|
ifeq ($(target),win32-bc)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -374,14 +378,14 @@ else
|
||||||
CFLAGS += -O2 -d
|
CFLAGS += -O2 -d
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif # bc
|
endif # win32-bc
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win32 - Digital Mars C++
|
### win32 - Digital Mars C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),dm)
|
ifeq ($(target),win32-dm)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -404,14 +408,14 @@ else
|
||||||
CFLAGS += -o
|
CFLAGS += -o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif # dm
|
endif # win32-dm
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win32 - Intel C++
|
### win32 - Intel C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),ic)
|
ifeq ($(target),win32-ic)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -446,14 +450,14 @@ else
|
||||||
endif
|
endif
|
||||||
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
|
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
|
||||||
|
|
||||||
endif # ic
|
endif # win32-ic
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win32 - Symantec C++
|
### win32 - Symantec C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),sc)
|
ifeq ($(target),win32-sc)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -476,14 +480,14 @@ else
|
||||||
CFLAGS += -o
|
CFLAGS += -o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif # dm
|
endif # win32-sc
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win32 - Visual C++
|
### win32 - Visual C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),vc)
|
ifeq ($(target),win32-vc)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -519,14 +523,14 @@ else
|
||||||
endif
|
endif
|
||||||
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
|
RESOURCES := $(subst .rc,.res,$(notdir $(wildcard $(srcdir)/*.rc)))
|
||||||
|
|
||||||
endif # vc
|
endif # win32-vc
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win32 - Watcom C++
|
### win32 - Watcom C++
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),wc)
|
ifeq ($(target),win32-wc)
|
||||||
o = .obj
|
o = .obj
|
||||||
a = .lib
|
a = .lib
|
||||||
e = .exe
|
e = .exe
|
||||||
|
@ -560,11 +564,11 @@ else
|
||||||
CFLAGS += -olr
|
CFLAGS += -olr
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif # wc
|
endif # win32-wc
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win64 - Intel C++
|
### win64 - Intel C++ [IA64]
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),win64-ic)
|
ifeq ($(target),win64-ic)
|
||||||
|
@ -606,7 +610,7 @@ endif # win64-ic
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### win64 - Visual C++
|
### win64 - Visual C++ [AMD64 & IA64]
|
||||||
###
|
###
|
||||||
|
|
||||||
ifeq ($(target),win64-vc)
|
ifeq ($(target),win64-vc)
|
||||||
|
|
|
@ -158,7 +158,7 @@ protected:
|
||||||
//
|
//
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#if 0
|
#if 0 /* NOT USED */
|
||||||
class MemoryOutputFile : public FileBase
|
class MemoryOutputFile : public FileBase
|
||||||
{
|
{
|
||||||
typedef FileBase super;
|
typedef FileBase super;
|
||||||
|
|
|
@ -530,6 +530,7 @@ static int do_option(int optc, const char *arg)
|
||||||
opt->method = -1;
|
opt->method = -1;
|
||||||
opt->all_filters = true;
|
opt->all_filters = true;
|
||||||
opt->filter = -1;
|
opt->filter = -1;
|
||||||
|
opt->crp.m_size = 999999;
|
||||||
/* fallthrough */
|
/* fallthrough */
|
||||||
case 900: // --best
|
case 900: // --best
|
||||||
if (!set_method(-1, 10))
|
if (!set_method(-1, 10))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user