• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H22-Jan-2020-1,2421,020

doc/H03-May-2022-1,040675

src/H03-May-2022-218,601182,248

.appveyor.ymlH A D22-Jan-20206.1 KiB112103

.editorconfigH A D22-Jan-2020321 2418

.gitignoreH A D22-Jan-2020788 5950

.gitmodulesH A D22-Jan-2020121 54

.travis.ymlH A D22-Jan-202020.5 KiB560518

BUGSH A D22-Jan-20201.7 KiB5240

COPYINGH A D22-Jan-202017.7 KiB340281

LICENSEH A D22-Jan-20205.3 KiB13997

MakefileH A D22-Jan-2020857 3722

NEWSH A D22-Jan-202022.5 KiB523444

PROJECTSH A D22-Jan-20202.3 KiB8954

READMEH A D22-Jan-20204.5 KiB14091

README.1STH A D22-Jan-2020800 2516

README.SRCH A D22-Jan-20204.2 KiB14693

THANKSH A D22-Jan-20202.1 KiB6253

README

1                 ooooo     ooo ooooooooo.   ooooooo  ooooo
2                 `888'     `8' `888   `Y88.  `8888    d8'
3                  888       8   888   .d88'    Y888..8P
4                  888       8   888ooo88P'      `8888'
5                  888       8   888            .8PY888.
6                  `88.    .8'   888           d8'  `888b
7                    `YbodP'    o888o        o888o  o88888o
8
9
10                    The Ultimate Packer for eXecutables
11   Copyright (c) 1996-2020 Markus Oberhumer, Laszlo Molnar & John Reiser
12                           https://upx.github.io
13
14
15
16WELCOME
17=======
18
19Welcome to UPX !
20
21Please don't forget to read the file LICENSE - UPX is distributed
22under the GNU General Public License (GPL) with special exceptions
23allowing the distribution of all compressed executables, including
24commercial programs.
25
26
27INTRODUCTION
28============
29
30UPX is an advanced executable file compressor. UPX will typically
31reduce the file size of programs and DLLs by around 50%-70%, thus
32reducing disk space, network load times, download times and
33other distribution and storage costs.
34
35Programs and libraries compressed by UPX are completely self-contained
36and run exactly as before, with no runtime or memory penalty for most
37of the supported formats.
38
39UPX supports a number of different executable formats, including
40Windows 95/98/ME/NT/2000/XP/CE programs and DLLs, DOS programs,
41and Linux executables and kernels.
42
43UPX is free software distributed under the term of the GNU General
44Public License. Full source code is available.
45
46UPX may be distributed and used freely, even with commercial applications.
47See the UPX License Agreement for details.
48
49UPX is rated number one in the well known Archive Comparison Test. Visit
50http://compression.ca/ .
51
52UPX aims to be Commercial Quality Freeware.
53
54
55SHORT DOCUMENTATION
56===================
57
58'upx program.exe' will compress a program or DLL. For best compression
59results try 'upx --brute program.exe'.
60
61Please see the file UPX.DOC for the full documentation. The files
62NEWS and BUGS also contain various tidbits of information.
63
64
65DISCLAIMER
66==========
67
68UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
69
70Having said that, we think that UPX is quite stable now. Indeed we
71have compressed lots of files without any problems. Also, the
72current version has undergone several months of beta testing -
73actually it's almost 8 years since our first public beta.
74
75This is the first production quality release, and we plan that future
76releases will be backward compatible with this version.
77
78Please report all problems or suggestions to the authors. Thanks.
79
80
81THE FUTURE
82==========
83
84  - AArch64 (64-bit ARM) for Linux and iOS.
85
86  - The Linux approach could probably get ported to a lot of other Unix
87    variants, at least for other i386 architectures it shouldn't be too
88    much work. If someone sends me a fresh hard disk and an official
89    FreeBSD/OpenBSD/NetBSD/Solaris/BeOS... CD I might take a look at it ;-)
90
91  - We will *NOT* add any sort of protection and/or encryption.
92    This only gives people a false feeling of security because
93    by definition all protectors/compressors can be broken.
94    And don't trust any advertisement of authors of other executable
95    compressors about this topic - just do a websearch on "unpackers"...
96
97  - Fix all remaining bugs - keep your reports coming ;-)
98
99  - See the file PROJECTS in the source code distribution if you want
100    to contribute.
101
102
103COPYRIGHT
104=========
105
106Copyright (C) 1996-2020 Markus Franz Xaver Johannes Oberhumer
107Copyright (C) 1996-2020 Laszlo Molnar
108Copyright (C) 2000-2020 John F. Reiser
109
110This program may be used freely, and you are welcome to
111redistribute it under certain conditions.
112
113This program is distributed in the hope that it will be useful,
114but WITHOUT ANY WARRANTY; without even the implied warranty of
115MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
116UPX License Agreement for more details.
117
118You should have received a copy of the UPX License Agreement along
119with this program; see the file LICENSE. If not, visit the UPX home page.
120
121
122Share and enjoy,
123Markus & Laszlo & John
124
125
126   Markus F.X.J. Oberhumer              Laszlo Molnar
127   <markus@oberhumer.com>               <ezerotven+github@gmail.com>
128
129   John F. Reiser
130   <jreiser@BitWagon.com>
131
132
133[ The term UPX is a shorthand for the Ultimate Packer for eXecutables
134  and holds no connection with potential owners of registered trademarks
135  or other rights. ]
136
137[ Feel free to contact us if you have commercial compression requirements
138  or interesting job offers. ]
139
140

README.1ST

1                 ooooo     ooo ooooooooo.   ooooooo  ooooo
2                 `888'     `8' `888   `Y88.  `8888    d8'
3                  888       8   888   .d88'    Y888..8P
4                  888       8   888ooo88P'      `8888'
5                  888       8   888            .8PY888.
6                  `88.    .8'   888           d8'  `888b
7                    `YbodP'    o888o        o888o  o88888o
8
9
10                    The Ultimate Packer for eXecutables
11   Copyright (c) 1996-2020 Markus Oberhumer, Laszlo Molnar & John Reiser
12                           https://upx.github.io
13
14
15MAJOR NEWS IN UPX 3
16===================
17
18The main news since UPX 2 are:
19
20  * new format: added support for linux elf/arm
21
22  * better compression using the LZMA algorithm (option '--lzma')
23
24  * better support for MacOS
25

README.SRC

1                        The UPX Hacker's Guide
2                        ======================
3
4
5Foreword
6--------
7
8  The precompiled UPX versions are linked against the NRV compression
9  library instead of the UCL library. Using the same compression algorithms,
10  NRV achieves a better compression ratio. NRV is not publicly
11  available, though, and probably never will be.
12
13  While you may be disappointed that you don't have access to the
14  latest state-of-the-art compression technology this is actually
15  a safe guard for all of us. The UPX source code release makes
16  it very easy for any evil-minded person to do all sort of bad
17  things. By not providing the very best compression ratio it is much
18  more difficult to create fake or otherwise disguised UPX versions (or
19  similar trojans), as any end user will notice when the compression
20  has gotten worse with a new "version" or "product".
21
22  Finally please be aware that you now have your hands on the source
23  code of the most sophisticated executable packer ever.
24  Let's join our forces to make it even better :-)
25
26  Share and enjoy,
27  Markus & Laszlo
28
29
30Introduction
31------------
32
33  Welcome to the UPX source code release!
34
35  UPX is not a toy for kids. Apart from basic knowledge about executables
36  and data compression you will need to be firm in C++, assembler,
37  Perl and Makefiles. Probably some other things as well.
38
39  If you can't manage to compile it then the sources are
40  probably not for you. Don't email us for help.
41
42  The authors use Linux for development. You might want to as well.
43
44
45Short overview
46--------------
47
48  The UPX source code consists of two mainly independent parts:
49
50  1) The src/stub directory contains the decompression stubs that
51     will get added to each compressed executable.
52     The stubs are mainly written in assembler and get "compiled"
53     into ordinary C header files.
54
55  2) The src directory contains the actual packer sources. The stubs
56     are #included by the individual executable format handlers.
57
58
59Prerequisites
60-------------
61
62  - first of all you need to build the UCL compression library
63    http://www.oberhumer.com/opensource/ucl/
64    Use "CC=gcc -std=gnu89" especially with gcc-6.3 and gcc-7.1.
65    To build for native aarch64 (64-bit ARM) the files config.guess
66    and config.sub must be updated according to the recipe at
67    https://www.gnu.org/software/gettext/manual/html_node/config_002eguess.html
68
69
70Tools needed to build/modify the UPX sources
71--------------------------------------------
72
73  - A C++ compiler: gcc >= 3.3 or clang.
74
75  - GNU make 3.81 or better
76
77  - zlib and zlib-devel [or zlib-dev] software packages for your
78    host environment
79
80  - LZMA SDK from https://github.com/upx/upx-lzma-sdk
81    When using git run 'git submodule update --init --recursive'.
82
83
84To compile the packer sources
85-----------------------------
86
87  Set the environment variable UPX_UCLDIR to point to your
88  UCL build directory, e.g.
89
90     set UPX_UCLDIR=c:\src\ucl-1.03                   (DOS / Windows)
91     export UPX_UCLDIR=$HOME/local/src/ucl-1.03       (Unix)
92
93  Finally type
94
95     make
96
97
98If you want to modify the stub sources you'll also need
99-------------------------------------------------------
100
101  - Perl & Python
102
103  - upx-stubtools - a number of cross-assemblers and cross-compilers.
104    Precompiled binaries for i386-linux hosts are available from
105    https://github.com/upx/upx-stubtools/releases
106
107
108Misc. notes
109-----------
110
111  As the docs say: UPX is a portable, extendable and endian neutral
112  program, so if you want to add some new stuff, try not to break these
113  nice properties.
114
115  - Use the types LE16, LE32, BE16 and BE32 for fields in file headers.
116  - Use [sg]et_[bl]e(16|32) for getting/setting values in the data
117    stream.
118  - Use gcc extensions and other compiler specific stuff only through
119    macros.
120
121***
122
123Some conventions:
124
125  - follow our coding style
126  - indent level = 4
127  - expand all tabulators
128
129  - Use throwSomeException() functions instead of throw SomeException():
130    this makes the code shorter if used often.
131
132***
133
134Patches/Contributions
135
136  - Please send us bug fixes/contributions only using
137
138      diff -u oldfile newfile
139
140    or
141
142      diff -uNr olddirectory newdirectory
143
144
145# vim:set ts=4 sw=4 et:
146