From b248d0829f25d3474566e8397ceac528737265ea Mon Sep 17 00:00:00 2001 From: Echelon9 Date: Fri, 30 Oct 2015 00:27:54 +1100 Subject: [PATCH] Remove static import of upx. Development environment can contain this functionality, if required. Cleanup broken script. --- build/win32/Export.bat | 12 - import/upx/bin/upx.exe | Bin 199168 -> 0 bytes import/upx/doc/BUGS | 51 -- import/upx/doc/COPYING | 340 ----------- import/upx/doc/LICENSE | 138 ----- import/upx/doc/NEWS | 365 ------------ import/upx/doc/README | 142 ----- import/upx/doc/README.1ST | 33 -- import/upx/doc/THANKS | 59 -- import/upx/doc/TODO | 120 ---- import/upx/doc/upx.1 | 1160 ------------------------------------- import/upx/doc/upx.doc | 842 --------------------------- import/upx/doc/upx.html | 888 ---------------------------- 13 files changed, 4150 deletions(-) delete mode 100644 build/win32/Export.bat delete mode 100644 import/upx/bin/upx.exe delete mode 100644 import/upx/doc/BUGS delete mode 100644 import/upx/doc/COPYING delete mode 100644 import/upx/doc/LICENSE delete mode 100644 import/upx/doc/NEWS delete mode 100644 import/upx/doc/README delete mode 100644 import/upx/doc/README.1ST delete mode 100644 import/upx/doc/THANKS delete mode 100644 import/upx/doc/TODO delete mode 100644 import/upx/doc/upx.1 delete mode 100644 import/upx/doc/upx.doc delete mode 100644 import/upx/doc/upx.html diff --git a/build/win32/Export.bat b/build/win32/Export.bat deleted file mode 100644 index dab1d82..0000000 --- a/build/win32/Export.bat +++ /dev/null @@ -1,12 +0,0 @@ -cd ..\..\bin\release -..\..\import\upx\bin\upx -9 Cxbx.exe -..\..\import\upx\bin\upx -9 Cxbx.dll -copy Cxbx.exe ..\..\export\win32\bin\release\ -copy Cxbx.dll ..\..\export\win32\bin\release\ -cd ..\..\bin\debug -copy Cxbx.exe ..\..\export\win32\bin\debug\ -copy Cxbx.pdb ..\..\export\win32\bin\debug\ -copy CxbxKrnl.dll ..\..\export\win32\bin\debug\ -copy CxbxKrnl.pdb ..\..\export\win32\bin\debug\ -cd ..\..\build\win32 - diff --git a/import/upx/bin/upx.exe b/import/upx/bin/upx.exe deleted file mode 100644 index f1fbc8cb783f5232007b0533d24c1b60dedc16aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199168 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 >96dKv0V*>x(#ha+s;3 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

XzI}Av|3wbpqLF*Oapk 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⪙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 D=uO`~ diff --git a/import/upx/doc/BUGS b/import/upx/doc/BUGS deleted file mode 100644 index 721df81..0000000 --- a/import/upx/doc/BUGS +++ /dev/null @@ -1,51 +0,0 @@ - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser - http://upx.sourceforge.net - - -Limitations and other things which are not (yet) supported: -=========================================================== - -djgpp2/coff ------------ - * all overlays (except Allegro pakfiles) are silently stripped - -dos/exe -------- - * normal dos/exes with new exe headers - * max ~24000 relocation records (...should be enough for everyone ;-) - * exe + sys combined images - -watcom/le ---------- - * 16-bit selector alias fixups - * 16-bit offset relocation for objects larger than 4 kB - * 16:16 fixups - -If you need any of the above (they're very rare), send us an URL of a -test file. - - * 16-bit objects are not loaded into DOS memory - * There is still a problem with the wdosx extender: if you compress a - watcom/le file which does NOT contain the wdosx extender, and after this - you bind the wdosx stub to the compressed file, then it will work. - Otherwise it won't. - * unpacked pmwlite compressed programs might not work when compressed - with UPX (this is a bug in pmwunlite) - -win32/pe --------- - * writeable shared sections (`--force' *may* work) - * certificates in the image - * compressing files which contain a big BSS requires lots of memory - during compression - diff --git a/import/upx/doc/COPYING b/import/upx/doc/COPYING deleted file mode 100644 index b4951ab..0000000 --- a/import/upx/doc/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/import/upx/doc/LICENSE b/import/upx/doc/LICENSE deleted file mode 100644 index 444ded8..0000000 --- a/import/upx/doc/LICENSE +++ /dev/null @@ -1,138 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- - - - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar - http://wildsau.idv.uni-linz.ac.at/mfx/upx.html - http://www.nexus.hu/upx - http://upx.tsx.org - - -PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN -TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION. - - -ABSTRACT -======== - - UPX and UCL are copyrighted software distributed under the terms - of the GNU General Public License (hereinafter the "GPL"). - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - As a special exception we grant the free usage of UPX for all - executables, including commercial programs. - See below for details and restrictions. - - -COPYRIGHT -========= - - UPX and UCL are copyrighted software. All rights remain with the authors. - - UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - UPX is Copyright (C) 1996-2000 Laszlo Molnar - - UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer - - -GNU GENERAL PUBLIC LICENSE -========================== - - UPX and the UCL library are free software; you can redistribute them - and/or modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - UPX and UCL are distributed in the hope that they will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - - -SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES -============================================ - - The stub which is imbedded in each UPX compressed program is part - of UPX and UCL, and contains code that is under our copyright. The - terms of the GNU General Public License still apply as compressing - a program is a special form of linking with our stub. - - Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special - permission to freely use and distribute all UPX compressed programs - (including commercial ones), subject to the following restrictions: - - 1. You must compress your program with a completely unmodified UPX - version; either with our precompiled version, or (at your option) - with a self compiled version of the unmodified UPX sources as - distributed by us. - 2. This also implies that the UPX stub must be completely unmodfied, i.e. - the stub imbedded in your compressed program must be byte-identical - to the stub that is produced by the official unmodified UPX version. - 3. The decompressor and any other code from the stub must exclusively get - used by the unmodified UPX stub for decompressing your program at - program startup. No portion of the stub may get read, copied, - called or otherwise get used or accessed by your program. - - -ANNOTATIONS -=========== - - - You can use a modified UPX version or modified UPX stub only for - programs that are compatible with the GNU General Public License. - - - We grant you special permission to freely use and distribute all UPX - compressed programs. But any modification of the UPX stub (such as, - but not limited to, removing our copyright string or making your - program non-decompressible) will immediately revoke your right to - use and distribute a UPX compressed program. - - - UPX is not a software protection tool; by requiring that you use - the unmodified UPX version for your proprietary programs we - make sure that any user can decompress your program. This protects - both you and your users as nobody can hide malicious code - - any program that cannot be decompressed is highly suspicious - by definition. - - - You can integrate all or part of UPX and UCL into projects that - are compatible with the GNU GPL, but obviously you cannot grant - any special exceptions beyond the GPL for our code in your project. - - - We want to actively support manufacturers of virus scanners and - similar security software. Please contact us if you would like to - incorporate parts of UPX or UCL into such a product. - - - -Markus F.X.J. Oberhumer Laszlo Molnar -markus.oberhumer@jk.uni-linz.ac.at ml1050@cdata.tvnet.hu - -Linz, Austria, 25 Feb 2000 - - - ------BEGIN PGP SIGNATURE----- -Version: 2.6.3ia -Charset: noconv - -iQCVAwUBOLaLS210fyLu8beJAQFYVAP/ShzENWKLTvedLCjZbDcwaBEHfUVcrGMI -wE7frMkbWT2zmkdv9hW90WmjMhOBu7yhUplvN8BKOtLiolEnZmLCYu8AGCwr5wBf -dfLoClxnzfTtgQv5axF1awp4RwCUH3hf4cDrOVqmAsWXKPHtm4hx96jF6L4oHhjx -OO03+ojZdO8= -=CS52 ------END PGP SIGNATURE----- diff --git a/import/upx/doc/NEWS b/import/upx/doc/NEWS deleted file mode 100644 index daa16b4..0000000 --- a/import/upx/doc/NEWS +++ /dev/null @@ -1,365 +0,0 @@ -================================================================== -User visible changes for UPX -================================================================== - -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 - -Changes in 2.00 (27 Apr 2006): - * linux/386: the stub now prints an error message if some strict - SELinux mode does prevent runtime decompression and execution - (for a fully SELinux-compatible but otherwise inferior compression - format you can use the '--force-execve' option) - * linux/386: worked around a problem where certain Linux kernels - clobber the %ebx register during a syscall - * win32/pe: disable filters for files with broken PE headers - -Changes in 1.96 beta (13 Apr 2006): - * arm/pe: added filter support - * win32/pe: removed an unnecessary check so that Delphi 2006 and - Digital Mars C++ programs finally are supported - -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 - * win32/pe: really worked around R6002 runtime errors - -Changes in 1.94 beta (11 Mar 2006): - * new format: added support for arm/pe (ARM executables running on WinCE) - * 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) - * win32/pe: hopefully working "load config" support - * win32/pe: R6002 runtime errors worked around - * win32/pe: the stub now clears the dirty stack - -Changes in 1.93 beta (07 Feb 2005): - * vmlinuz/386: fixes to support more kernels - -Changes in 1.92 beta (20 Jul 2004): - * win32/pe: added option '--strip-loadconf' to strip the SEH load - config section [NOTE: this option is obsolete since UPX 1.94] - * win32/pe: try to detect .NET (win32/net) files [not yet supported by UPX] - * vmlinux/386: new format that directly supports building Linux kernels - * source code: now compiles cleanly under Win64 - -Changes in 1.91 beta (30 Jun 2004): - * djgpp2/coff: added support for recent binutils versions - * linux/elf386, linux/sh386: lots of improvements - * vmlinuz/386: added support for recent kernels - * watcom/le: don't crash on files without relocations - * win32/pe: stricter checks of some PE values - * option '--brute' now implies '--crp-ms=999999'. - * 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 - * re-synced with upx 1.25 branch - -Changes in 1.90 beta (11 Nov 2002): - * implemented several new options for finer compression control: - '--all-methods', '--all-filters' and '--brute' - * ps1/exe: new format - UPX now supports PlayStation One programs - * linux/386: added the option '--force-execve' - * vmlinuz/386: better kernel detection and sanity checks - * re-synced with upx 1.24 branch - * documentation updates - -Changes in 1.11 beta (20 Dec 2000): - * vmlinuz/386: new format - UPX now supports bootable linux kernels - * 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 - more temp files are needed for decompression! - * reduced overall memory requirements during packing - * quite a number of internal source code rearrangements - -================================================================== - -Changes in 1.25 (29 Jun 2004) - * INFO: http://upx.sourceforge.net is the permanent UPX home page - * 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 - -Changes in 1.24 (07 Nov 2002) - * djgpp2/coff: stricter check of the COFF header to work around a - problem with certain binutils versions - -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 - -Changes in 1.22 (27 Jun 2002) - * atari/tos: the stub now flushes the CPU cache to avoid - problems on 68030+ machines - * source code: additional compiler support for Borland C++, - Digital Mars C++ and Watcom C++ - -Changes in 1.21 (01 Jun 2002) - * New option '--crp-ms=' for slightly better compression at the cost - of higher memory requirements during compression. - Try 'upx --best --crp-ms=100000'. See the docs for more info. - * 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 - -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 - -Changes in 1.06 (27 Jan 2001) - * win32/pe: the check for TLS callbacks introduced in 1.05 - was too strict - disabled for now - * dos/com: decreased the decompressor stack size a little bit - -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) - -Changes in 1.04 (19 Dec 2000) - * dos/exe: fixed an internal error when using '--no-reloc' - * win32/pe: fixed a rare bug in the relocation handling code - * some tunings for the default compression level - -Changes in 1.03 (30 Nov 2000) - * linked with a new version of the NRV compression library: - - improved compression ratio a little bit - - overall significantly faster compression - - much faster when using high compression levels like '-9' or '--best' - - much faster with large files - * atari/tos: added support for FreeMiNT - * the 32-bit DOS version now uses the new CWSDSTUB extender - -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 - * support multiple backup generations when using '-k' - * updated the console screen driver - -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 - * win32/pe: changed default to '--strip-relocs=1' - * dos/com and dos/sys: fixed a bad decompressor problem - * linux/386: the counter for the progress indicator was off by one - -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 - * linux/386: yet another FreeBSD compatibility fix - -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) - * all formats: '--overlay=copy' now is the default overlay mode - * 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 - * linux/386: fixed compression of scripts which was broken since 0.71 - * linux/386: more FreeBSD compatibility issues - * changed option: '-i' now prints some more details during compression - (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 - * linux/386: various improvements in the stub; also, for the sake - 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 - * linux/386: section headers are now stripped from the stub so that - 'strip' won't ruin a compressed file any longer - * 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) - * you can set some default options in the environment var 'UPX' - * dos/com: the decompressor stub now checks for enough free memory - * dos/exe: decompressor rewritten, some bugs are fixed - * dos/exe: new option '--no-reloc': no relocation data is put into - the DOS header - * tmt/adam: added support for more stubs, detect already packed files - * tmt/adam: new option '--copy-overlay' - * 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 - * wc/le: new option '--copy-overlay' - * win32/pe: '--compress-icons=2' is now the default - * win32/pe: even better TLS support - * win32/pe: versioninfo works on NT - * win32/pe: import by ordinal from kernel32.dll works - * win32/pe: other import improvements: importing a nonexistant DLL - results in a usual Windows message, importing a nonexistant function - results in program exit (instead of crash ;-) - * win32/pe: new option: '--compress-resources=0' - * 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 - * win32/pe: new option '--strip-relocs' (only if you know what you are doing) - * win32/pe: new option '--copy-overlay' - * 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 - * linux/386: minor decompressor stub updates, nicer progress bar - -Changes in 0.71 (19 Apr 1999) - * dos/exe: added option '--no-overlay' - * linux/386: various improvements in the stub, most notably the - 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 - * win32/pe: new option '--compress-icons=2': compress all icons - 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) - * added support for linux/386 executables - * improved compression ratio quite a bit - * added new compression level '--best' to squeeze out even some more bytes - * 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 - * win32/pe: made all compressed sections writeable - * 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 - * added support for Atari ST/TT executables (atari/tos) - * 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 - * djgpp/coff: Allegro packfile support should work now - * 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 - djgpp/coff and watcom/le compressed files from previous versions, - 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 - diff --git a/import/upx/doc/README b/import/upx/doc/README deleted file mode 100644 index 1ba65dd..0000000 --- a/import/upx/doc/README +++ /dev/null @@ -1,142 +0,0 @@ - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser - http://upx.sourceforge.net - - - -WELCOME -======= - -Welcome to UPX ! - -Please don't forget to read the file LICENSE - UPX is distributed -under the GNU General Public License (GPL) with special exceptions -allowing the distribution of all compressed executables, including -commercial programs. - - -INTRODUCTION -============ - -UPX is an advanced executable file compressor. UPX will typically -reduce the file size of programs and DLLs by around 50%-70%, thus -reducing disk space, network load times, download times and -other distribution and storage costs. - -Programs and libraries compressed by UPX are completely self-contained -and run exactly as before, with no runtime or memory penalty for most -of the supported formats. - -UPX supports a number of different executable formats, including -Windows 95/98/ME/NT/2000/XP/CE programs and DLLs, DOS programs, -and Linux executables and kernels. - -UPX is free software distributed under the term of the GNU General -Public License. Full source code is available. - -UPX may be distributed and used freely, even with commercial applications. -See the UPX License Agreement for details. - -UPX is rated number one in the well known Archive Comparison Test. Visit -http://compression.ca/ . - -UPX aims to be Commercial Quality Freeware. - - -SHORT DOCUMENTATION -=================== - -'upx program.exe' will compress a program or DLL. For best compression -results try 'upx --brute program.exe'. - -Please see the file UPX.DOC for the full documentation. The files -NEWS and BUGS also contain various tidbits of information. - - -DISCLAIMER -========== - -UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE. - -Having said that, we think that 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 almost 8 years since our first public beta. - -This is the first production quality release, and we plan that future -releases will be backward compatible with this version. - -Please report all problems or suggestions to the authors. Thanks. - - -THE FUTURE -========== - - - We'd really love to support handheld systems like the PalmPilot because - compression makes a lot of sense here. And - because of the atari/tos - format - we already have a working decompressor in 68000 assembly. - Unfortunately we know next to nothing about the operating system - architecture of such handhelds, so we need some information from - an expert. Please contact us if you think you can help. - - - The Linux approach could probably get ported to a lot of other Unix - variants, at least for other i386 architectures it shouldn't be too - much work. If someone sends me a fresh hard disk and an official - FreeBSD/OpenBSD/NetBSD/Solaris/BeOS... CD I might take a look at it ;-) - - - We will *NOT* add any sort of protection and/or encryption. - This only gives people a false feeling of security because - by definition all protectors/compressors can be broken. - And don't trust any advertisment of authors of other executable - compressors about this topic - just do a websearch on "unpackers"... - - - Fix all remaining bugs - keep your reports coming ;-) - - - See the file PROJECTS in the source code distribution if you want - to contribute. - - -COPYRIGHT -========= - -Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer -Copyright (C) 1996-2006 Laszlo Molnar -Copyright (C) 2000-2006 John F. Reiser - -This program may be used freely, and you are welcome to -redistribute it under certain conditions. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -UPX License Agreement for more details. - -You should have received a copy of the UPX License Agreement along -with this program; see the file LICENSE. If not, visit the UPX home page. - - -Share and enjoy, -Markus & Laszlo - - - Markus F.X.J. Oberhumer Laszlo Molnar - markus@oberhumer.com ml1050@users.sourceforge.net - - - -[ The term UPX is a shorthand for the Ultimate Packer for eXecutables - and holds no connection with potential owners of registered trademarks - or other rights. ] - -[ Feel free to contact us if you have commercial compression requirements - or interesting job offers. ] - diff --git a/import/upx/doc/README.1ST b/import/upx/doc/README.1ST deleted file mode 100644 index c39d979..0000000 --- a/import/upx/doc/README.1ST +++ /dev/null @@ -1,33 +0,0 @@ - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser - http://upx.sourceforge.net - - - -MAJOR NEWS IN UPX 2 -=================== - -The main news since 1.25 are: - - * new format: added support for arm/pe (ARM executables running on WinCE) - * 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) - * new format: added support for bootable Linux kernels ("vmlinuz/386") - * new format: added support for Playstation exes ("ps1/exe") - - * slightly better compression using the new NRV2E algorithm - * new options for compression tuning (e.g. '--brute') - * improved win32/pe compatibility - * direct ELF-to-memory decompression - * various bug fixes - diff --git a/import/upx/doc/THANKS b/import/upx/doc/THANKS deleted file mode 100644 index df593b8..0000000 --- a/import/upx/doc/THANKS +++ /dev/null @@ -1,59 +0,0 @@ - ooooo ooo ooooooooo. ooooooo ooooo - `888' `8' `888 `Y88. `8888 d8' - 888 8 888 .d88' Y888..8P - 888 8 888ooo88P' `8888' - 888 8 888 .8PY888. - `88. .8' 888 d8' `888b - `YbodP' o888o o888o o88888o - - - The Ultimate Packer for eXecutables - Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser - http://upx.sourceforge.net - - -.___.. . - | |_ _.._ ;_/ __ - | [ )(_][ )| \_) --------------------- - -UPX would not be what it is today without the invaluable help of -everybody who was kind enough to spend time testing it, using it -in applications and reporting bugs. - -The following people made especially gracious contributions of their -time and energy in helping to track down bugs, add new features, and -generally assist in the UPX maintainership process: - -Adam Ierymenko - for severals ideas for the Linux version -Andi Kleen and Jamie Lokier - for the /proc/self/fd/X and other Linux suggestions -Andreas Muegge - for the Win32 GUI -Atli Mar Gudmundsson - for several comments on the win32/pe stub -Charles W. Sandmann - for the idea with the stubless decompressor in djgpp2/coff -Ice - for debugging the PE headersize problem down -Joergen Ibsen and d'b - for the relocation & address optimization ideas -John S. Fine - for the new version of the dos/exe decompressor -Lukundoo - for beta testing -Michael Devore - for initial dos/exe device driver support -Oleg V. Volkov - for various FreeBSD specific informations -The Owl & G-RoM - for the --compress-icons fix -Ralph Roth - for reporting several bugs -Salvador Eduardo Tropea - for beta testing -The WINE project (http://www.winehq.com/) - for lots of useful information found in their PE loader sources -Natascha - diff --git a/import/upx/doc/TODO b/import/upx/doc/TODO deleted file mode 100644 index 9045910..0000000 --- a/import/upx/doc/TODO +++ /dev/null @@ -1,120 +0,0 @@ -UPX TODO list. Last updated 2006-03-11. - - -IMPORTANT PROBLEMS THAT SHOULD BE FIXED SOON: - -- [None] - - -OTHER: - -- docs: convert docs from upx.pod to use AsciiDoc - -- check all to make sure they are not invalid - -- throwNotCompressible() is not a real error, so make the output nicer - (info: bla bla). Also ui.cpp (total_*). - - ------------------------------------------------------------------------ - - -IMPROVED COMPRESSION RATIO -========================== - -- experiment with new filters - -- implement filters for dos/exe - -- filters: could we exploit a f->firstcall info field ? - -- for small programs (e.g. < 64k), try an additional algorithm - to see if it gives better compression - - -ALL FORMATS -=========== - -- more thoroughly test the exe-header in canPack() - and throw exceptions when encountering bad values. - -- implement `--cpu=486' option to use bswap on the 32-bit formats - (if cpu >= 486) - -- consider removing "or ebp,-1" when not needed - - -FORMAT DJGPP2/COFF -================== - -- handle overlays - -- fix default file extension handling when the --coff option is set - - -FORMAT DOS/EXE -============== - -- implement filters - -- add a check so that we don't pack djgpp1 binaries - - -FORMAT LINUX/386 -================ - -- don't mmap() the temporary output file - this seems to improve - file io speed - - -FORMAT TMT/ADAM -=============== - -- the decompressors are already aligned, no need for an - extra alignment - - -FORMAT WATCOM/LE -================ - -- handle files without relocations - -- the decompressors are already aligned, no need for an - extra alignment - -- fix default file extension handling when the --le option is set - -- handle holes in the file - -- implement compressWithFilters() - -- add a call to verifyOverlappingDecompression() - - -FORMAT WIN16/NE -=============== - -- implement readFileHeader() to correctly identify a win16/ne - executable, so that the call for contribution will get thrown - - -FORMAT WIN32/PE -=============== - -- fix the section alignment with the Intel compiler - -- decrease runtime memory overhead - -3 - difficult) don't compress the BSS section and other holes. - -4 - medium - ml) fix when objectalign < 0x1000 - -4 - easy - ml) put the original offset of moved resources somewhere into - the res.dir. (if it's safe to do) - -4 - ??? - ml) fix FIXMEs - -5 - medium - ml) try to put the preprocessed imports & relocs back to their - original section if possible. this could save some virtual memory - address space. - diff --git a/import/upx/doc/upx.1 b/import/upx/doc/upx.1 deleted file mode 100644 index 5a572f4..0000000 --- a/import/upx/doc/upx.1 +++ /dev/null @@ -1,1160 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sh \" Subsection heading -.br -.if t .Sp -.ne 5 -.PP -\fB\\$1\fR -.PP -.. -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. | will give a -.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to -.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' -.\" expand to `' in nroff, nothing in troff, for use with C<>. -.tr \(*W-|\(bv\*(Tr -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" If the F register is turned on, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. nr % 0 -. rr F -.\} -.\" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.hy 0 -.if n .na -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "UPX 1" -.TH UPX 1 "2006-06-06" "upx 2.01" " " -.SH "NAME" -upx \- compress or expand executable files -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -\&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR... -.SH "ABSTRACT" -.IX Header "ABSTRACT" -.Vb 3 -\& The Ultimate Packer for eXecutables -\& Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser -\& http://upx.sourceforge.net -.Ve -.PP -\&\fB\s-1UPX\s0\fR is a portable, extendable, high-performance executable packer for -several different executable formats. It achieves an excellent compression -ratio and offers \fI*very*\fR fast decompression. Your executables suffer -no memory overhead or other drawbacks for most of the formats supported, -because of in-place decompression. -.PP -While you may use \fB\s-1UPX\s0\fR freely for both non-commercial and commercial -executables (for details see the file \s-1LICENSE\s0), we would highly -appreciate if you credit \fB\s-1UPX\s0\fR and ourselves in the documentation, -possibly including a reference to the \fB\s-1UPX\s0\fR home page. Thanks. -.PP -[ Using \fB\s-1UPX\s0\fR in non-OpenSource applications without proper credits -is considered not politically correct ;\-) ] -.SH "DISCLAIMER" -.IX Header "DISCLAIMER" -\&\fB\s-1UPX\s0\fR comes with \s-1ABSOLUTELY\s0 \s-1NO\s0 \s-1WARRANTY\s0; for details see the file \s-1LICENSE\s0. -.PP -This is the first production quality release, and we plan that future 1.xx -releases will be backward compatible with this version. -.PP -Please report all problems or suggestions to the authors. Thanks. -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fB\s-1UPX\s0\fR is a versatile executable packer with the following features: -.PP -.Vb 2 -\& - excellent compression ratio: compresses better than zip/gzip, -\& use UPX to decrease the size of your distribution ! -.Ve -.PP -.Vb 2 -\& - very fast decompression: about 10 MB/sec on an ancient Pentium 133, -\& about 200 MB/sec on an Athlon XP 2000+. -.Ve -.PP -.Vb 2 -\& - no memory overhead for your compressed executables for most of the -\& supported formats -.Ve -.PP -.Vb 3 -\& - safe: you can list, test and unpack your executables -\& Also, a checksum of both the compressed and uncompressed file is -\& maintained internally. -.Ve -.PP -.Vb 21 -\& - universal: UPX can pack a number of executable formats: -\& * atari/tos -\& * bvmlinuz/386 [bootable Linux kernel] -\& * djgpp2/coff -\& * dos/com -\& * dos/exe -\& * dos/sys -\& * linux/386 -\& * linux/elf386 -\& * linux/sh386 -\& * ps1/exe -\& * rtm32/pe -\& * tmt/adam -\& * vmlinuz/386 [bootable Linux kernel] -\& * vmlinux/386 -\& * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay) -\& * win32/pe (exe and dll) -\& * arm/pe (exe and dll) -\& * linux/elfamd64 -\& * linux/elfppc32 -\& * mach/elfppc32 -.Ve -.PP -.Vb 1 -\& - portable: UPX is written in portable endian-neutral C++ -.Ve -.PP -.Vb 2 -\& - extendable: because of the class layout it's very easy to support -\& new executable formats or add new compression algorithms -.Ve -.PP -.Vb 3 -\& - free: UPX can be distributed and used freely. And from version 0.99 -\& the full source code of UPX is released under the GNU General Public -\& License (GPL) ! -.Ve -.PP -You probably understand now why we call \fB\s-1UPX\s0\fR the "\fIultimate\fR" -executable packer. -.SH "COMMANDS" -.IX Header "COMMANDS" -.Sh "Compress" -.IX Subsection "Compress" -This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file -specified on the command line. -.Sh "Decompress" -.IX Subsection "Decompress" -All \fB\s-1UPX\s0\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg. -\&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed. -.Sh "Test" -.IX Subsection "Test" -The \fB\-t\fR command tests the integrity of the compressed and uncompressed -data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely -decompressed. Note, that this command doesn't check the whole file, only -the part that will be uncompressed during program execution. This means -that you should not use this command instead of a virus checker. -.Sh "List" -.IX Subsection "List" -The \fB\-l\fR command prints out some information about the compressed files -specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR -shows the compressed / uncompressed size and the compression ratio of -\&\fIyourfile.exe\fR. -.SH "OPTIONS" -.IX Header "OPTIONS" -\&\fB\-q\fR: be quiet, suppress warnings -.PP -\&\fB\-q \-q\fR (or \fB\-qq\fR): be very quiet, suppress errors -.PP -\&\fB\-q \-q \-q\fR (or \fB\-qqq\fR): produce no output at all -.PP -\&\fB\-\-help\fR: prints the help -.PP -\&\fB\-\-version\fR: print the version of \fB\s-1UPX\s0\fR -.PP -[ ...to be written... \- type `\fBupx \-\-help\fR' for now ] -.SH "COMPRESSION LEVELS & TUNING" -.IX Header "COMPRESSION LEVELS & TUNING" -\&\fB\s-1UPX\s0\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR, -and \fB\-\-best\fR. The default compression level is \fB\-8\fR for files -smaller than 512 kB, and \fB\-7\fR otherwise. -.IP "\(bu" 4 -Compression levels 1, 2 and 3 are pretty fast. -.IP "\(bu" 4 -Compression levels 4, 5 and 6 achieve a good time/ratio performance. -.IP "\(bu" 4 -Compression levels 7, 8 and 9 favor compression ratio over speed. -.IP "\(bu" 4 -Compression level \fB\-\-best\fR may take a long time. -.PP -Note that compression level \fB\-\-best\fR can be somewhat slow for large -files, but you definitely should use it when releasing a final version -of your program. -.PP -Quick start for achieving the best compression ratio: -.Sp -.RS 4 -Try \fBupx \-\-brute myfile.exe\fR. -.RE -.PP -Details for achieving the best compression ratio: -.IP "\(bu" 4 -Use the compression level \fB\-\-best\fR. -.IP "\(bu" 4 -Try one or both of the options \fB\-\-all\-methods\fR and \fB\-\-all\-filters\fR. -.IP "\(bu" 4 -Try the option \fB\-\-crp\-ms=NUMBER\fR. This uses more memory during compression -to achieve a (slightly) better compression ratio. -.Sp -\&\s-1NUMBER\s0 must be a decimal value from 10000 to 999999, inclusive. -The default value is 10000 (ten thousand). -.IP "\(bu" 4 -Info: the option \fB\-\-brute\fR is an abbrevation for the options -\&\fB\-\-best \-\-all\-methods \-\-all\-filters \-\-crp\-ms=999999\fR. -.IP "\(bu" 4 -Try if \fB\-\-overlay=strip\fR works. -.IP "\(bu" 4 -For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below. -.SH "OVERLAY HANDLING OPTIONS" -.IX Header "OVERLAY HANDLING OPTIONS" -Info: An \*(L"overlay\*(R" 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). -.PP -\&\fB\s-1UPX\s0\fR handles overlays like many other executable packers do: it simply -copies the overlay after the compressed image. This works with some -files, but doesn't work with others, depending on how an application -actually accesses this overlayed data. -.PP -.Vb 1 -\& --overlay=copy Copy any extra data attached to the file. [DEFAULT] -.Ve -.PP -.Vb 3 -\& --overlay=strip Strip any overlay from the program instead of -\& copying it. Be warned, this may make the compressed -\& program crash or otherwise unusable. -.Ve -.PP -.Vb 1 -\& --overlay=skip Refuse to compress any program which has an overlay. -.Ve -.SH "ENVIRONMENT" -.IX Header "ENVIRONMENT" -The environment variable \fB\s-1UPX\s0\fR can hold a set of default -options for \fB\s-1UPX\s0\fR. These options are interpreted first and -can be overwritten by explicit command line parameters. -For example: -.PP -.Vb 3 -\& for DOS/Windows: set UPX=-9 --compress-icons#0 -\& for sh/ksh/zsh: UPX="-9 --compress-icons=0"; export UPX -\& for csh/tcsh: setenv UPX "-9 --compress-icons=0" -.Ve -.PP -Under DOS/Windows you must use '#' instead of '=' when setting the -environment variable because of a \s-1COMMAND\s0.COM limitation. -.PP -Not all of the options are valid in the environment variable \- -\&\fB\s-1UPX\s0\fR will tell you. -.PP -You can explicitly use the \fB\-\-no\-env\fR option to ignore the -environment variable. -.SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS" -.IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS" -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1ATARI/TOS\s0" -.IX Subsection "NOTES FOR ATARI/TOS" -This is the executable format used by the Atari \s-1ST/TT\s0, a Motorola 68000 -based personal computer which was popular in the late '80s. Support -of this format is only because of nostalgic feelings of one of -the authors and serves no practical purpose :\-). -See http://www.freemint.de for more info. -.PP -Packed programs will be byte-identical to the original after uncompression. -All debug information will be stripped, though. -.PP -Extra options available for this executable format: -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1BVMLINUZ/I386\s0" -.IX Subsection "NOTES FOR BVMLINUZ/I386" -Same as vmlinuz/i386. -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/COM\s0" -.IX Subsection "NOTES FOR DOS/COM" -Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from -themselves (like some commandline utilities that ship with Win95/98/ME). -.PP -Compressed programs only work on a 286+. -.PP -Packed programs will be byte-identical to the original after uncompression. -.PP -Maximum uncompressed size: ~65100 bytes. -.PP -Extra options available for this executable format: -.PP -.Vb 1 -\& --8086 Create an executable that works on any 8086 CPU. -.Ve -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/EXE\s0" -.IX Subsection "NOTES FOR DOS/EXE" -dos/exe stands for all \*(L"normal\*(R" 16\-bit \s-1DOS\s0 executables. -.PP -Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from -themselves (like some command line utilities that ship with Win95/98/ME). -.PP -Compressed programs only work on a 286+. -.PP -Extra options available for this executable format: -.PP -.Vb 1 -\& --8086 Create an executable that works on any 8086 CPU. -.Ve -.PP -.Vb 1 -\& --no-reloc Use no relocation records in the exe header. -.Ve -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/SYS\s0" -.IX Subsection "NOTES FOR DOS/SYS" -Compressed programs only work on a 286+. -.PP -Packed programs will be byte-identical to the original after uncompression. -.PP -Maximum uncompressed size: ~65350 bytes. -.PP -Extra options available for this executable format: -.PP -.Vb 1 -\& --8086 Create an executable that works on any 8086 CPU. -.Ve -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1DJGPP2/COFF\s0" -.IX Subsection "NOTES FOR DJGPP2/COFF" -First of all, it is recommended to use \fB\s-1UPX\s0\fR *instead* of \fBstrip\fR. strip has -the very bad habit of replacing your stub with its own (outdated) version. -Additionally \fB\s-1UPX\s0\fR corrects a bug/feature in strip v2.8.x: it -will fix the 4 KByte aligment of the stub. -.PP -\&\fB\s-1UPX\s0\fR includes the full functionality of stubify. This means it will -automatically stubify your \s-1COFF\s0 files. Use the option \fB\-\-coff\fR to -disable this functionality (see below). -.PP -\&\fB\s-1UPX\s0\fR automatically handles Allegro packfiles. -.PP -The \s-1DLM\s0 format (a rather exotic shared library extension) is not supported. -.PP -Packed programs will be byte-identical to the original after uncompression. -All debug information and trailing garbage will be stripped, though. -.PP -Extra options available for this executable format: -.PP -.Vb 2 -\& --coff Produce COFF output instead of EXE. By default -\& UPX keeps your current stub. -.Ve -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX\s0 [general]" -.IX Subsection "NOTES FOR LINUX [general]" -Introduction -.PP -.Vb 4 -\& Linux/386 support in UPX consists of 3 different executable formats, -\& one optimized for ELF excutables ("linux/elf386"), one optimized -\& for shell scripts ("linux/sh386"), and one generic format -\& ("linux/386"). -.Ve -.PP -.Vb 2 -\& We will start with a general discussion first, but please -\& also read the relevant docs for each of the individual formats. -.Ve -.PP -.Vb 2 -\& Also, there is special support for bootable kernels - see the -\& description of the vmlinuz/386 format. -.Ve -.PP -General user's overview -.PP -.Vb 7 -\& Running a compressed executable program trades less space on a -\& ``permanent'' storage medium (such as a hard disk, floppy disk, -\& CD-ROM, flash memory, EPROM, etc.) for more space in one or more -\& ``temporary'' storage media (such as RAM, swap space, /tmp, etc.). -\& Running a compressed executable also requires some additional CPU -\& cycles to generate the compressed executable in the first place, -\& and to decompress it at each invocation. -.Ve -.PP -.Vb 6 -\& How much space is traded? It depends on the executable, but many -\& programs save 30% to 50% of permanent disk space. How much CPU -\& overhead is there? Again, it depends on the executable, but -\& decompression speed generally is at least many megabytes per second, -\& and frequently is limited by the speed of the underlying disk -\& or network I/O. -.Ve -.PP -.Vb 15 -\& Depending on the statistics of usage and access, and the relative -\& speeds of CPU, RAM, swap space, /tmp, and filesystem storage, then -\& invoking and running a compressed executable can be faster than -\& directly running the corresponding uncompressed program. -\& The operating system might perfrom fewer expensive I/O operations -\& to invoke the compressed program. Paging to or from swap space -\& or /tmp might be faster than paging from the general filesystem. -\& ``Medium-sized'' programs which access about 1/3 to 1/2 of their -\& stored program bytes can do particulary well with compression. -\& Small programs tend not to benefit as much because the absolute -\& savings is less. Big programs tend not to benefit proportionally -\& because each invocation may use only a small fraction of the program, -\& yet UPX decompresses the entire program before invoking it. -\& But in environments where disk or flash memory storage is limited, -\& then compression may win anyway. -.Ve -.PP -.Vb 6 -\& Currently, executables compressed by UPX do not share RAM at runtime -\& in the way that executables mapped from a filesystem do. As a -\& result, if the same program is run simultaneously by more than one -\& process, then using the compressed version will require more RAM and/or -\& swap space. So, shell programs (bash, csh, etc.) and ``make'' -\& might not be good candidates for compression. -.Ve -.PP -.Vb 12 -\& UPX recognizes three executable formats for Linux: Linux/elf386, -\& Linux/sh386, and Linux/386. Linux/386 is the most generic format; -\& it accommodates any file that can be executed. At runtime, the UPX -\& decompression stub re-creates in /tmp a copy of the original file, -\& and then the copy is (re-)executed with the same arguments. -\& ELF binary executables prefer the Linux/elf386 format by default, -\& because UPX decompresses them directly into RAM, uses only one -\& exec, does not use space in /tmp, and does not use /proc. -\& Shell scripts where the underlying shell accepts a ``-c'' argument -\& can use the Linux/sh386 format. UPX decompresses the shell script -\& into low memory, then maps the shell and passes the entire text of the -\& script as an argument with a leading ``-c''. -.Ve -.PP -General benefits: -.PP -.Vb 4 -\& - UPX can compress all executables, be it AOUT, ELF, libc4, libc5, -\& libc6, Shell/Perl/Python/... scripts, standalone Java .class -\& binaries, or whatever... -\& All scripts and programs will work just as before. -.Ve -.PP -.Vb 2 -\& - Compressed programs are completely self-contained. No need for -\& any external program. -.Ve -.PP -.Vb 5 -\& - UPX keeps your original program untouched. This means that -\& after decompression you will have a byte-identical version, -\& and you can use UPX as a file compressor just like gzip. -\& [ Note that UPX maintains a checksum of the file internally, -\& so it is indeed a reliable alternative. ] -.Ve -.PP -.Vb 3 -\& - As the stub only uses syscalls and isn't linked against libc it -\& should run under any Linux configuration that can run ELF -\& binaries. -.Ve -.PP -.Vb 3 -\& - For the same reason compressed executables should run under -\& FreeBSD and other systems which can run Linux binaries. -\& [ Please send feedback on this topic ] -.Ve -.PP -General drawbacks: -.PP -.Vb 4 -\& - It is not advisable to compress programs which usually have many -\& instances running (like `sh' or `make') because the common segments of -\& compressed programs won't be shared any longer between different -\& processes. -.Ve -.PP -.Vb 5 -\& - `ldd' and `size' won't show anything useful because all they -\& see is the statically linked stub. Since version 0.82 the section -\& headers are stripped from the UPX stub and `size' doesn't even -\& recognize the file format. The file patches/patch-elfcode.h has a -\& patch to fix this bug in `size' and other programs which use GNU BFD. -.Ve -.PP -General notes: -.PP -.Vb 2 -\& - As UPX leaves your original program untouched it is advantageous -\& to strip it before compression. -.Ve -.PP -.Vb 2 -\& - If you compress a script you will lose platform independence - -\& this could be a problem if you are using NFS mounted disks. -.Ve -.PP -.Vb 2 -\& - Compression of suid, guid and sticky-bit programs is rejected -\& because of possible security implications. -.Ve -.PP -.Vb 2 -\& - For the same reason there is no sense in making any compressed -\& program suid. -.Ve -.PP -.Vb 3 -\& - Obviously UPX won't work with executables that want to read data -\& from themselves. E.g., this might be a problem for Perl scripts -\& which access their __DATA__ lines. -.Ve -.PP -.Vb 4 -\& - In case of internal errors the stub will abort with exitcode 127. -\& Typical reasons for this to happen are that the program has somehow -\& been modified after compression. -\& Running `strace -o strace.log compressed_file' will tell you more. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/ELF386\s0" -.IX Subsection "NOTES FOR LINUX/ELF386" -Please read the general Linux description first. -.PP -The linux/elf386 format decompresses directly into \s-1RAM\s0, -uses only one exec, does not use space in /tmp, -and does not use /proc. -.PP -Linux/elf386 is automatically selected for Linux \s-1ELF\s0 exectuables. -.PP -Packed programs will be byte-identical to the original after uncompression. -.PP -How it works: -.PP -.Vb 9 -\& For ELF executables, UPX decompresses directly to memory, simulating -\& the mapping that the operating system kernel uses during exec(), -\& including the PT_INTERP program interpreter (if any). -\& The brk() is set by a special PT_LOAD segment in the compressed -\& executable itself. UPX then wipes the stack clean except for -\& arguments, environment variables, and Elf_auxv entries (this is -\& required by bugs in the startup code of /lib/ld-linux.so as of -\& May 2000), and transfers control to the program interpreter or -\& the e_entry address of the original executable. -.Ve -.PP -.Vb 2 -\& The UPX stub is about 1700 bytes long, partly written in assembler -\& and only uses kernel syscalls. It is not linked against any libc. -.Ve -.PP -Specific drawbacks: -.PP -.Vb 9 -\& - For linux/elf386 and linux/sh386 formats, you will be relying on -\& RAM and swap space to hold all of the decompressed program during -\& the lifetime of the process. If you already use most of your swap -\& space, then you may run out. A system that is "out of memory" -\& can become fragile. Many programs do not react gracefully when -\& malloc() returns 0. With newer Linux kernels, the kernel -\& may decide to kill some processes to regain memory, and you -\& may not like the kernel's choice of which to kill. Running -\& /usr/bin/top is one way to check on the usage of swap space. -.Ve -.PP -Extra options available for this executable format: -.PP -.Vb 1 -\& (none) -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/SH386\s0" -.IX Subsection "NOTES FOR LINUX/SH386" -Please read the general Linux description first. -.PP -Shell scripts where the underling shell accepts a ``\-c'' argument -can use the Linux/sh386 format. \fB\s-1UPX\s0\fR decompresses the shell script -into low memory, then maps the shell and passes the entire text of the -script as an argument with a leading ``\-c''. -It does not use space in /tmp, and does not use /proc. -.PP -Linux/sh386 is automatically selected for shell scripts that -use a known shell. -.PP -Packed programs will be byte-identical to the original after uncompression. -.PP -How it works: -.PP -.Vb 8 -\& For shell script executables (files beginning with "#!/" or "#! /") -\& where the shell is known to accept "-c ", UPX decompresses -\& the file into low memory, then maps the shell (and its PT_INTERP), -\& and passes control to the shell with the entire decompressed file -\& as the argument after "-c". Known shells are sh, ash, bash, bsh, csh, -\& ksh, tcsh, pdksh. Restriction: UPX cannot use this method -\& for shell scripts which use the one optional string argument after -\& the shell name in the script (example: "#! /bin/sh option3\en".) -.Ve -.PP -.Vb 2 -\& The UPX stub is about 1700 bytes long, partly written in assembler -\& and only uses kernel syscalls. It is not linked against any libc. -.Ve -.PP -Specific drawbacks: -.PP -.Vb 9 -\& - For linux/elf386 and linux/sh386 formats, you will be relying on -\& RAM and swap space to hold all of the decompressed program during -\& the lifetime of the process. If you already use most of your swap -\& space, then you may run out. A system that is "out of memory" -\& can become fragile. Many programs do not react gracefully when -\& malloc() returns 0. With newer Linux kernels, the kernel -\& may decide to kill some processes to regain memory, and you -\& may not like the kernel's choice of which to kill. Running -\& /usr/bin/top is one way to check on the usage of swap space. -.Ve -.PP -Extra options available for this executable format: -.PP -.Vb 1 -\& (none) -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/386\s0" -.IX Subsection "NOTES FOR LINUX/386" -Please read the general Linux description first. -.PP -The generic linux/386 format decompresses to /tmp and needs -/proc filesystem support. It starts the decompressed program -via the \fIexecve()\fR syscall. -.PP -Linux/386 is only selected if the specialized linux/elf386 -and linux/sh386 won't recognize a file. -.PP -Packed programs will be byte-identical to the original after uncompression. -.PP -How it works: -.PP -.Vb 7 -\& For files which are not ELF and not a script for a known "-c" shell, -\& UPX uses kernel execve(), which first requires decompressing to a -\& temporary file in the filesystem. Interestingly - -\& because of the good memory management of the Linux kernel - this -\& often does not introduce a noticable delay, and in fact there -\& will be no disk access at all if you have enough free memory as -\& the entire process takes places within the filesystem buffers. -.Ve -.PP -.Vb 2 -\& A compressed executable consists of the UPX stub and an overlay -\& which contains the original program in a compressed form. -.Ve -.PP -.Vb 2 -\& The UPX stub is a statically linked ELF executable and does -\& the following at program startup: -.Ve -.PP -.Vb 7 -\& 1) decompress the overlay to a temporary location in /tmp -\& 2) open the temporary file for reading -\& 3) try to delete the temporary file and start (execve) -\& the uncompressed program in /tmp using /proc//fd/X as -\& attained by step 2) -\& 4) if that fails, fork off a subprocess to clean up and -\& start the program in /tmp in the meantime -.Ve -.PP -.Vb 2 -\& The UPX stub is about 1700 bytes long, partly written in assembler -\& and only uses kernel syscalls. It is not linked against any libc. -.Ve -.PP -Specific drawbacks: -.PP -.Vb 4 -\& - You need additional free disk space for the uncompressed program -\& in your /tmp directory. This program is deleted immediately after -\& decompression, but you still need it for the full execution time -\& of the program. -.Ve -.PP -.Vb 4 -\& - You must have /proc filesystem support as the stub wants to open -\& /proc//exe and needs /proc//fd/X. This also means that you -\& cannot compress programs that are used during the boot sequence -\& before /proc is mounted. -.Ve -.PP -.Vb 4 -\& - Utilities like `top' will display numerical values in the process -\& name field. This is because Linux computes the process name from -\& the first argument of the last execve syscall (which is typically -\& something like /proc//fd/3). -.Ve -.PP -.Vb 4 -\& - Because of temporary decompression to disk the decompression speed -\& is not as fast as with the other executable formats. Still, I can see -\& no noticable delay when starting programs like my ~3 MB emacs (which -\& is less than 1 MB when compressed :-). -.Ve -.PP -Extra options available for this executable format: -.PP -.Vb 3 -\& --force-execve Force the use of the generic linux/386 "execve" -\& format, i.e. do not try the linux/elf386 and -\& linux/sh386 formats. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1PS1/EXE\s0" -.IX Subsection "NOTES FOR PS1/EXE" -This is the executable format used by the Sony PlayStation (PSone), -a Mips R3000 based gaming console which is popular since the late '90s. -Support of this format is very similar to the Atari one, because of -nostalgic feelings of one of the authors. -.PP -Packed programs will be byte-identical to the original after uncompression, -until further notice. -.PP -Maximum uncompressed size: ~1998848 bytes. -.PP -Notes: -.PP -.Vb 2 -\& - UPX creates as default a 'CD-Rom only' PS1/PS2 compatible executable. -\& For transfer between client/target use options below. -.Ve -.PP -.Vb 6 -\& - Normally the packed files use the same memory areas like the uncompressed -\& versions, so they will not override other memory areas while unpacking. -\& If this isn't possible UPX will abort showing a 'packed data overlap' -\& error. With the "--force" option UPX will set a few 'bytes higher' loading -\& offset for the packed file, but this isn't a real problem if it is a -\& single or boot-only executable. -.Ve -.PP -Extra options available for this executable format: -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --boot-only The format will only run from a CD and may slightly -\& improves the compression ratio. The decompression -\& routines are faster than default ones. -\& But it cannot be used for host/client transfer ! -.Ve -.PP -.Vb 4 -\& --no-align This option disables CD mode 2 data sector format -\& alignment. May slightly improves the compression ratio, -\& but the compressed executable will not boot from a CD. -\& Use it for client/target transfer only ! -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1RTM32/PE\s0 and \s-1ARM/PE\s0" -.IX Subsection "NOTES FOR RTM32/PE and ARM/PE" -Same as win32/pe. -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1TMT/ADAM\s0" -.IX Subsection "NOTES FOR TMT/ADAM" -This format is used by the \s-1TMT\s0 Pascal compiler \- see http://www.tmt.com/ . -.PP -Extra options available for this executable format: -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1VMLINUZ/386\s0" -.IX Subsection "NOTES FOR VMLINUZ/386" -The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed -bootable Linux kernel image (\*(L"vmlinuz\*(R", \*(L"zImage\*(R", \*(L"bzImage\*(R"), -gzip-decompress it and re-compress it with the \fB\s-1UPX\s0\fR compression method. -.PP -vmlinuz/386 is completely unrelated to the other Linux executable -formats, and it does not share any of their drawbacks. -.PP -Notes: -.PP -.Vb 3 -\& - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed -\& during compression - otherwise a wrong executable format -\& may have been used, and the kernel won't boot. -.Ve -.PP -Benefits: -.PP -.Vb 4 -\& - Better compression (but note that the kernel was already compressed, -\& so the improvement is not as large as with other formats). -\& Still, the bytes saved may be essential for special needs like -\& bootdisks. -.Ve -.PP -.Vb 4 -\& For example, this is what I get for my 2.2.16 kernel: -\& 1589708 vmlinux -\& 641073 bzImage [original] -\& 560755 bzImage.upx [compressed by "upx -9"] -.Ve -.PP -.Vb 2 -\& - Much faster decompression at kernel boot time (but kernel -\& decompression speed is not really an issue these days). -.Ve -.PP -Drawbacks: -.PP -.Vb 1 -\& (none) -.Ve -.PP -Extra options available for this executable format: -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1WATCOM/LE\s0" -.IX Subsection "NOTES FOR WATCOM/LE" -\&\fB\s-1UPX\s0\fR has been successfully tested with the following extenders: - \s-1DOS4G\s0, \s-1DOS4GW\s0, \s-1PMODE/W\s0, DOS32a, CauseWay. - The \s-1WDOS/X\s0 extender is partly supported (for details - see the file bugs \s-1BUGS\s0). -.PP -DLLs and the \s-1LX\s0 format are not supported. -.PP -Extra options available for this executable format: -.PP -.Vb 2 -\& --le Produce an unbound LE output instead of -\& keeping the current stub. -.Ve -.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1WIN32/PE\s0" -.IX Subsection "NOTES FOR WIN32/PE" -The \s-1PE\s0 support in \fB\s-1UPX\s0\fR is quite stable now, but probably there are -still some incompabilities with some files. -.PP -Because of the way \fB\s-1UPX\s0\fR (and other packers for this format) works, you -can see increased memory usage of your compressed files because the whole -program is loaded into memory at startup. -If you start several instances of huge compressed programs you're -wasting memory because the common segements of the program won't -get shared across the instances. -On the other hand if you're compressing only smaller programs, or -running only one instance of larger programs, then this penalty is -smaller, but it's still there. -.PP -If you're running executables from network, then compressed programs -will load faster, and require less bandwidth during execution. -.PP -DLLs are supported. But \s-1UPX\s0 compressed DLLs can not share common data and -code when they got used by multiple applications. So compressing msvcrt.dll -is a waste of memory, but compressing the dll plugins of a particular -application may be a better idea. -.PP -Screensavers are supported, with the restriction that the filename -must end with \*(L".scr\*(R" (as screensavers are handled slightly different -than normal exe files). -.PP -\&\s-1UPX\s0 compressed \s-1PE\s0 files has some minor memory overhead (usually in the -10 \- 30 kbytes range) which can be seen by specifying the \*(L"\-i\*(R" command -line switch during compression. -.PP -Extra options available for this executable format: -.PP -.Vb 9 -\& --compress-exports=0 Don't compress the export section. -\& Use this if you plan to run the compressed -\& program under Wine. -\& --compress-exports=1 Compress the export section. [DEFAULT] -\& Compression of the export section can improve the -\& compression ratio quite a bit but may not work -\& with all programs (like winword.exe). -\& UPX never compresses the export section of a DLL -\& regardless of this option. -.Ve -.PP -.Vb 4 -\& --compress-icons=0 Don't compress any icons. -\& --compress-icons=1 Compress all but the first icon. -\& --compress-icons=2 Compress all icons which are not in the -\& first icon directory. [DEFAULT] -.Ve -.PP -.Vb 1 -\& --compress-resources=0 Don't compress any resources at all. -.Ve -.PP -.Vb 8 -\& --keep-resource=list Don't compress resources specified by the list. -\& The members of the list are separated by commas. -\& A list member has the following format: I. -\& I is the type of the resource. Standard types -\& must be specified as decimal numbers, user types can be -\& specified by decimal IDs or strings. I is the -\& identifier of the resource. It can be a decimal number -\& or a string. For example: -.Ve -.PP -.Vb 1 -\& --keep-resource=2/MYBITMAP,5,6/12345 -.Ve -.PP -.Vb 4 -\& UPX won't compress the named bitmap resource "MYBITMAP", -\& it leaves every dialog (5) resource uncompressed, and -\& it won't touch the string table resource with identifier -\& 12345. -.Ve -.PP -.Vb 3 -\& --force Force compression even when there is an -\& unexpected value in a header field. -\& Use with care. -.Ve -.PP -.Vb 9 -\& --strip-relocs=0 Don't strip relocation records. -\& --strip-relocs=1 Strip relocation records. [DEFAULT] -\& This option only works on executables with base -\& address greater or equal to 0x400000. Usually the -\& compressed files becomes smaller, but some files -\& may become larger. Note that the resulting file will -\& not work under Windows 3.x (Win32s). -\& UPX never strips relocations from a DLL -\& regardless of this option. -.Ve -.PP -.Vb 4 -\& --all-methods Compress the program several times, using all -\& available compression methods. This may improve -\& the compression ratio in some cases, but usually -\& the default method gives the best results anyway. -.Ve -.PP -.Vb 4 -\& --all-filters Compress the program several times, using all -\& available preprocessing filters. This may improve -\& the compression ratio in some cases, but usually -\& the default filter gives the best results anyway. -.Ve -.SH "DIAGNOSTICS" -.IX Header "DIAGNOSTICS" -Exit status is normally 0; if an error occurs, exit status -is 1. If a warning occurs, exit status is 2. -.PP -\&\fB\s-1UPX\s0\fR's diagnostics are intended to be self\-explanatory. -.SH "BUGS" -.IX Header "BUGS" -Please report all bugs immediately to the authors. -.SH "AUTHORS" -.IX Header "AUTHORS" -.Vb 2 -\& Markus F.X.J. Oberhumer -\& http://www.oberhumer.com -.Ve -.PP -.Vb 1 -\& Laszlo Molnar -.Ve -.PP -.Vb 1 -\& John F. Reiser -.Ve -.PP -.Vb 1 -\& Jens Medoch -.Ve -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (C) 1996\-2006 Markus Franz Xaver Johannes Oberhumer -.PP -Copyright (C) 1996\-2006 Laszlo Molnar -.PP -Copyright (C) 2000\-2006 John F. Reiser -.PP -Copyright (C) 2002\-2006 Jens Medoch -.PP -This program may be used freely, and you are welcome to -redistribute it under certain conditions. -.PP -This program is distributed in the hope that it will be useful, -but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of -\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the -\&\fB\s-1UPX\s0 License Agreement\fR for more details. -.PP -You should have received a copy of the \s-1UPX\s0 License Agreement along -with this program; see the file \s-1LICENSE\s0. If not, visit the \s-1UPX\s0 home page. diff --git a/import/upx/doc/upx.doc b/import/upx/doc/upx.doc deleted file mode 100644 index ce52459..0000000 --- a/import/upx/doc/upx.doc +++ /dev/null @@ -1,842 +0,0 @@ -NAME - upx - compress or expand executable files - -SYNOPSIS - upx [ *command* ] [ *options* ] *filename*... - -ABSTRACT - The Ultimate Packer for eXecutables - Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser - http://upx.sourceforge.net - - UPX is a portable, extendable, high-performance executable packer for - several different executable formats. It achieves an excellent - compression ratio and offers **very** fast decompression. Your - executables suffer no memory overhead or other drawbacks for most of the - formats supported, because of in-place decompression. - - While you may use UPX freely for both non-commercial and commercial - executables (for details see the file LICENSE), we would highly - appreciate if you credit UPX and ourselves in the documentation, - possibly including a reference to the UPX home page. Thanks. - - [ Using UPX in non-OpenSource applications without proper credits is - considered not politically correct ;-) ] - -DISCLAIMER - UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE. - - This is the first production quality release, and we plan that future - 1.xx releases will be backward compatible with this version. - - Please report all problems or suggestions to the authors. Thanks. - -DESCRIPTION - UPX is a versatile executable packer with the following features: - - - excellent compression ratio: compresses better than zip/gzip, - use UPX to decrease the size of your distribution ! - - - 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 - supported formats - - - safe: you can list, test and unpack your executables - Also, a checksum of both the compressed and uncompressed file is - maintained internally. - - - universal: UPX can pack a number of executable formats: - * atari/tos - * bvmlinuz/386 [bootable Linux kernel] - * djgpp2/coff - * dos/com - * dos/exe - * dos/sys - * linux/386 - * linux/elf386 - * linux/sh386 - * ps1/exe - * rtm32/pe - * tmt/adam - * vmlinuz/386 [bootable Linux kernel] - * vmlinux/386 - * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay) - * win32/pe (exe and dll) - * arm/pe (exe and dll) - * linux/elfamd64 - * linux/elfppc32 - * mach/elfppc32 - - - portable: UPX is written in portable endian-neutral C++ - - - extendable: because of the class layout it's very easy to support - new executable formats or add new compression algorithms - - - free: UPX can be distributed and used freely. And from version 0.99 - the full source code of UPX is released under the GNU General Public - License (GPL) ! - - You probably understand now why we call UPX the "*ultimate*" executable - packer. - -COMMANDS - Compress - This is the default operation, eg. upx yourfile.exe will compress the - file specified on the command line. - - Decompress - All UPX supported file formats can be unpacked using the -d switch, eg. - upx -d yourfile.exe will uncompress the file you've just compressed. - - Test - The -t command tests the integrity of the compressed and uncompressed - data, eg. upx -t yourfile.exe check whether your file can be safely - decompressed. Note, that this command doesn't check the whole file, only - the part that will be uncompressed during program execution. This means - that you should not use this command instead of a virus checker. - - List - The -l command prints out some information about the compressed files - specified on the command line as parameters, eg upx -l yourfile.exe - shows the compressed / uncompressed size and the compression ratio of - *yourfile.exe*. - -OPTIONS - -q: be quiet, suppress warnings - - -q -q (or -qq): be very quiet, suppress errors - - -q -q -q (or -qqq): produce no output at all - - --help: prints the help - - --version: print the version of UPX - - [ ...to be written... - type `upx --help' for now ] - -COMPRESSION LEVELS & TUNING - UPX offers ten different compression levels from -1 to -9, and --best. - The default compression level is -8 for files smaller than 512 kB, and - -7 otherwise. - - * Compression levels 1, 2 and 3 are pretty fast. - - * Compression levels 4, 5 and 6 achieve a good time/ratio performance. - - * Compression levels 7, 8 and 9 favor compression ratio over speed. - - * Compression level --best may take a long time. - - Note that compression level --best can be somewhat slow for large files, - but you definitely should use it when releasing a final version of your - program. - - Quick start for achieving the best compression ratio: - - Try upx --brute myfile.exe. - - Details for achieving the best compression ratio: - - * Use the compression level --best. - - * Try one or both of the options --all-methods and --all-filters. - - * Try the option --crp-ms=NUMBER. This uses more memory during - compression to achieve a (slightly) better compression ratio. - - NUMBER must be a decimal value from 10000 to 999999, inclusive. The - default value is 10000 (ten thousand). - - * Info: the option --brute is an abbrevation for the options --best - --all-methods --all-filters --crp-ms=999999. - - * Try if --overlay=strip works. - - * For win32/pe programs there's --strip-relocs=0. See notes below. - -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). - - UPX handles overlays like many other executable packers do: it simply - copies the overlay after the compressed image. This works with some - files, but doesn't work with others, depending on how an application - actually accesses this overlayed data. - - --overlay=copy Copy any extra data attached to the file. [DEFAULT] - - --overlay=strip Strip any overlay from the program instead of - copying it. Be warned, this may make the compressed - program crash or otherwise unusable. - - --overlay=skip Refuse to compress any program which has an overlay. - -ENVIRONMENT - The environment variable UPX can hold a set of default options for UPX. - These options are interpreted first and can be overwritten by explicit - command line parameters. For example: - - for DOS/Windows: set UPX=-9 --compress-icons#0 - for sh/ksh/zsh: UPX="-9 --compress-icons=0"; export UPX - for csh/tcsh: setenv UPX "-9 --compress-icons=0" - - Under DOS/Windows you must use '#' instead of '=' when setting the - environment variable because of a COMMAND.COM limitation. - - Not all of the options are valid in the environment variable - UPX will - tell you. - - You can explicitly use the --no-env option to ignore the environment - variable. - -NOTES FOR THE SUPPORTED EXECUTABLE FORMATS - NOTES FOR ATARI/TOS - This is the executable format used by the Atari ST/TT, a Motorola 68000 - based personal computer which was popular in the late '80s. Support of - this format is only because of nostalgic feelings of one of the authors - and serves no practical purpose :-). See http://www.freemint.de for more - info. - - Packed programs will be byte-identical to the original after - uncompression. All debug information will be stripped, though. - - Extra options available for this executable format: - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - NOTES FOR BVMLINUZ/I386 - Same as vmlinuz/i386. - - NOTES FOR DOS/COM - Obviously UPX won't work with executables that want to read data from - themselves (like some commandline utilities that ship with Win95/98/ME). - - Compressed programs only work on a 286+. - - Packed programs will be byte-identical to the original after - uncompression. - - Maximum uncompressed size: ~65100 bytes. - - Extra options available for this executable format: - - --8086 Create an executable that works on any 8086 CPU. - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - - NOTES FOR DOS/EXE - dos/exe stands for all "normal" 16-bit DOS executables. - - Obviously UPX won't work with executables that want to read data from - themselves (like some command line utilities that ship with - Win95/98/ME). - - Compressed programs only work on a 286+. - - Extra options available for this executable format: - - --8086 Create an executable that works on any 8086 CPU. - - --no-reloc Use no relocation records in the exe header. - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - NOTES FOR DOS/SYS - Compressed programs only work on a 286+. - - Packed programs will be byte-identical to the original after - uncompression. - - Maximum uncompressed size: ~65350 bytes. - - Extra options available for this executable format: - - --8086 Create an executable that works on any 8086 CPU. - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - - NOTES FOR DJGPP2/COFF - First of all, it is recommended to use UPX *instead* of strip. strip has - the very bad habit of replacing your stub with its own (outdated) - version. Additionally UPX corrects a bug/feature in strip v2.8.x: it - will fix the 4 KByte aligment of the stub. - - UPX includes the full functionality of stubify. This means it will - automatically stubify your COFF files. Use the option --coff to disable - this functionality (see below). - - UPX automatically handles Allegro packfiles. - - The DLM format (a rather exotic shared library extension) is not - supported. - - Packed programs will be byte-identical to the original after - uncompression. All debug information and trailing garbage will be - stripped, though. - - Extra options available for this executable format: - - --coff Produce COFF output instead of EXE. By default - UPX keeps your current stub. - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - - NOTES FOR LINUX [general] - Introduction - - Linux/386 support in UPX consists of 3 different executable formats, - one optimized for ELF excutables ("linux/elf386"), one optimized - for shell scripts ("linux/sh386"), and one generic format - ("linux/386"). - - We will start with a general discussion first, but please - also read the relevant docs for each of the individual formats. - - Also, there is special support for bootable kernels - see the - description of the vmlinuz/386 format. - - General user's overview - - Running a compressed executable program trades less space on a - ``permanent'' storage medium (such as a hard disk, floppy disk, - CD-ROM, flash memory, EPROM, etc.) for more space in one or more - ``temporary'' storage media (such as RAM, swap space, /tmp, etc.). - Running a compressed executable also requires some additional CPU - cycles to generate the compressed executable in the first place, - and to decompress it at each invocation. - - How much space is traded? It depends on the executable, but many - programs save 30% to 50% of permanent disk space. How much CPU - overhead is there? Again, it depends on the executable, but - decompression speed generally is at least many megabytes per second, - and frequently is limited by the speed of the underlying disk - or network I/O. - - Depending on the statistics of usage and access, and the relative - speeds of CPU, RAM, swap space, /tmp, and filesystem storage, then - invoking and running a compressed executable can be faster than - directly running the corresponding uncompressed program. - The operating system might perfrom fewer expensive I/O operations - to invoke the compressed program. Paging to or from swap space - or /tmp might be faster than paging from the general filesystem. - ``Medium-sized'' programs which access about 1/3 to 1/2 of their - stored program bytes can do particulary well with compression. - Small programs tend not to benefit as much because the absolute - savings is less. Big programs tend not to benefit proportionally - because each invocation may use only a small fraction of the program, - yet UPX decompresses the entire program before invoking it. - But in environments where disk or flash memory storage is limited, - then compression may win anyway. - - Currently, executables compressed by UPX do not share RAM at runtime - in the way that executables mapped from a filesystem do. As a - result, if the same program is run simultaneously by more than one - process, then using the compressed version will require more RAM and/or - swap space. So, shell programs (bash, csh, etc.) and ``make'' - might not be good candidates for compression. - - UPX recognizes three executable formats for Linux: Linux/elf386, - Linux/sh386, and Linux/386. Linux/386 is the most generic format; - it accommodates any file that can be executed. At runtime, the UPX - decompression stub re-creates in /tmp a copy of the original file, - and then the copy is (re-)executed with the same arguments. - ELF binary executables prefer the Linux/elf386 format by default, - because UPX decompresses them directly into RAM, uses only one - exec, does not use space in /tmp, and does not use /proc. - Shell scripts where the underlying shell accepts a ``-c'' argument - can use the Linux/sh386 format. UPX decompresses the shell script - into low memory, then maps the shell and passes the entire text of the - script as an argument with a leading ``-c''. - - General benefits: - - - UPX can compress all executables, be it AOUT, ELF, libc4, libc5, - libc6, Shell/Perl/Python/... scripts, standalone Java .class - binaries, or whatever... - All scripts and programs will work just as before. - - - Compressed programs are completely self-contained. No need for - any external program. - - - UPX keeps your original program untouched. This means that - after decompression you will have a byte-identical version, - and you can use UPX as a file compressor just like gzip. - [ Note that UPX maintains a checksum of the file internally, - so it is indeed a reliable alternative. ] - - - As the stub only uses syscalls and isn't linked against libc it - should run under any Linux configuration that can run ELF - binaries. - - - For the same reason compressed executables should run under - FreeBSD and other systems which can run Linux binaries. - [ Please send feedback on this topic ] - - General drawbacks: - - - It is not advisable to compress programs which usually have many - instances running (like `sh' or `make') because the common segments of - compressed programs won't be shared any longer between different - processes. - - - `ldd' and `size' won't show anything useful because all they - see is the statically linked stub. Since version 0.82 the section - headers are stripped from the UPX stub and `size' doesn't even - recognize the file format. The file patches/patch-elfcode.h has a - patch to fix this bug in `size' and other programs which use GNU BFD. - - General notes: - - - As UPX leaves your original program untouched it is advantageous - to strip it before compression. - - - If you compress a script you will lose platform independence - - this could be a problem if you are using NFS mounted disks. - - - Compression of suid, guid and sticky-bit programs is rejected - because of possible security implications. - - - For the same reason there is no sense in making any compressed - program suid. - - - Obviously UPX won't work with executables that want to read data - from themselves. E.g., this might be a problem for Perl scripts - which access their __DATA__ lines. - - - In case of internal errors the stub will abort with exitcode 127. - Typical reasons for this to happen are that the program has somehow - been modified after compression. - Running `strace -o strace.log compressed_file' will tell you more. - - NOTES FOR LINUX/ELF386 - Please read the general Linux description first. - - The linux/elf386 format decompresses directly into RAM, uses only one - exec, does not use space in /tmp, and does not use /proc. - - Linux/elf386 is automatically selected for Linux ELF exectuables. - - Packed programs will be byte-identical to the original after - uncompression. - - How it works: - - For ELF executables, UPX decompresses directly to memory, simulating - the mapping that the operating system kernel uses during exec(), - including the PT_INTERP program interpreter (if any). - The brk() is set by a special PT_LOAD segment in the compressed - executable itself. UPX then wipes the stack clean except for - arguments, environment variables, and Elf_auxv entries (this is - required by bugs in the startup code of /lib/ld-linux.so as of - May 2000), and transfers control to the program interpreter or - the e_entry address of the original executable. - - The UPX stub is about 1700 bytes long, partly written in assembler - and only uses kernel syscalls. It is not linked against any libc. - - Specific drawbacks: - - - For linux/elf386 and linux/sh386 formats, you will be relying on - RAM and swap space to hold all of the decompressed program during - the lifetime of the process. If you already use most of your swap - space, then you may run out. A system that is "out of memory" - can become fragile. Many programs do not react gracefully when - malloc() returns 0. With newer Linux kernels, the kernel - may decide to kill some processes to regain memory, and you - may not like the kernel's choice of which to kill. Running - /usr/bin/top is one way to check on the usage of swap space. - - Extra options available for this executable format: - - (none) - - NOTES FOR LINUX/SH386 - Please read the general Linux description first. - - Shell scripts where the underling shell accepts a ``-c'' argument can - use the Linux/sh386 format. UPX decompresses the shell script into low - memory, then maps the shell and passes the entire text of the script as - an argument with a leading ``-c''. It does not use space in /tmp, and - does not use /proc. - - Linux/sh386 is automatically selected for shell scripts that use a known - shell. - - Packed programs will be byte-identical to the original after - uncompression. - - How it works: - - For shell script executables (files beginning with "#!/" or "#! /") - where the shell is known to accept "-c ", UPX decompresses - the file into low memory, then maps the shell (and its PT_INTERP), - and passes control to the shell with the entire decompressed file - as the argument after "-c". Known shells are sh, ash, bash, bsh, csh, - ksh, tcsh, pdksh. Restriction: UPX cannot use this method - for shell scripts which use the one optional string argument after - the shell name in the script (example: "#! /bin/sh option3\n".) - - The UPX stub is about 1700 bytes long, partly written in assembler - and only uses kernel syscalls. It is not linked against any libc. - - Specific drawbacks: - - - For linux/elf386 and linux/sh386 formats, you will be relying on - RAM and swap space to hold all of the decompressed program during - the lifetime of the process. If you already use most of your swap - space, then you may run out. A system that is "out of memory" - can become fragile. Many programs do not react gracefully when - malloc() returns 0. With newer Linux kernels, the kernel - may decide to kill some processes to regain memory, and you - may not like the kernel's choice of which to kill. Running - /usr/bin/top is one way to check on the usage of swap space. - - Extra options available for this executable format: - - (none) - - NOTES FOR LINUX/386 - Please read the general Linux description first. - - The generic linux/386 format decompresses to /tmp and needs /proc - filesystem support. It starts the decompressed program via the execve() - syscall. - - Linux/386 is only selected if the specialized linux/elf386 and - linux/sh386 won't recognize a file. - - Packed programs will be byte-identical to the original after - uncompression. - - How it works: - - For files which are not ELF and not a script for a known "-c" shell, - UPX uses kernel execve(), which first requires decompressing to a - temporary file in the filesystem. Interestingly - - because of the good memory management of the Linux kernel - this - often does not introduce a noticable delay, and in fact there - will be no disk access at all if you have enough free memory as - the entire process takes places within the filesystem buffers. - - A compressed executable consists of the UPX stub and an overlay - which contains the original program in a compressed form. - - The UPX stub is a statically linked ELF executable and does - the following at program startup: - - 1) decompress the overlay to a temporary location in /tmp - 2) open the temporary file for reading - 3) try to delete the temporary file and start (execve) - the uncompressed program in /tmp using /proc//fd/X as - attained by step 2) - 4) if that fails, fork off a subprocess to clean up and - start the program in /tmp in the meantime - - The UPX stub is about 1700 bytes long, partly written in assembler - and only uses kernel syscalls. It is not linked against any libc. - - Specific drawbacks: - - - You need additional free disk space for the uncompressed program - in your /tmp directory. This program is deleted immediately after - decompression, but you still need it for the full execution time - of the program. - - - You must have /proc filesystem support as the stub wants to open - /proc//exe and needs /proc//fd/X. This also means that you - cannot compress programs that are used during the boot sequence - before /proc is mounted. - - - Utilities like `top' will display numerical values in the process - name field. This is because Linux computes the process name from - the first argument of the last execve syscall (which is typically - something like /proc//fd/3). - - - Because of temporary decompression to disk the decompression speed - is not as fast as with the other executable formats. Still, I can see - no noticable delay when starting programs like my ~3 MB emacs (which - is less than 1 MB when compressed :-). - - Extra options available for this executable format: - - --force-execve Force the use of the generic linux/386 "execve" - format, i.e. do not try the linux/elf386 and - linux/sh386 formats. - - NOTES FOR PS1/EXE - This is the executable format used by the Sony PlayStation (PSone), a - Mips R3000 based gaming console which is popular since the late '90s. - Support of this format is very similar to the Atari one, because of - nostalgic feelings of one of the authors. - - Packed programs will be byte-identical to the original after - uncompression, until further notice. - - Maximum uncompressed size: ~1998848 bytes. - - Notes: - - - UPX creates as default a 'CD-Rom only' PS1/PS2 compatible executable. - For transfer between client/target use options below. - - - Normally the packed files use the same memory areas like the uncompressed - versions, so they will not override other memory areas while unpacking. - If this isn't possible UPX will abort showing a 'packed data overlap' - error. With the "--force" option UPX will set a few 'bytes higher' loading - offset for the packed file, but this isn't a real problem if it is a - single or boot-only executable. - - Extra options available for this executable format: - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --boot-only The format will only run from a CD and may slightly - improves the compression ratio. The decompression - routines are faster than default ones. - But it cannot be used for host/client transfer ! - - --no-align This option disables CD mode 2 data sector format - alignment. May slightly improves the compression ratio, - but the compressed executable will not boot from a CD. - Use it for client/target transfer only ! - - NOTES FOR RTM32/PE and ARM/PE - Same as win32/pe. - - NOTES FOR TMT/ADAM - This format is used by the TMT Pascal compiler - see http://www.tmt.com/ - . - - Extra options available for this executable format: - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - - NOTES FOR VMLINUZ/386 - The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed bootable - Linux kernel image ("vmlinuz", "zImage", "bzImage"), gzip-decompress it - and re-compress it with the UPX compression method. - - vmlinuz/386 is completely unrelated to the other Linux executable - formats, and it does not share any of their drawbacks. - - Notes: - - - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed - during compression - otherwise a wrong executable format - may have been used, and the kernel won't boot. - - Benefits: - - - Better compression (but note that the kernel was already compressed, - so the improvement is not as large as with other formats). - Still, the bytes saved may be essential for special needs like - bootdisks. - - For example, this is what I get for my 2.2.16 kernel: - 1589708 vmlinux - 641073 bzImage [original] - 560755 bzImage.upx [compressed by "upx -9"] - - - Much faster decompression at kernel boot time (but kernel - decompression speed is not really an issue these days). - - Drawbacks: - - (none) - - Extra options available for this executable format: - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - - NOTES FOR WATCOM/LE - UPX has been successfully tested with the following extenders: DOS4G, - DOS4GW, PMODE/W, DOS32a, CauseWay. The WDOS/X extender is partly - supported (for details see the file bugs BUGS). - - DLLs and the LX format are not supported. - - Extra options available for this executable format: - - --le Produce an unbound LE output instead of - keeping the current stub. - - NOTES FOR WIN32/PE - The PE support in UPX is quite stable now, but probably there are still - some incompabilities with some files. - - Because of the way UPX (and other packers for this format) works, you - can see increased memory usage of your compressed files because the - whole program is loaded into memory at startup. If you start several - instances of huge compressed programs you're wasting memory because the - common segements of the program won't get shared across the instances. - On the other hand if you're compressing only smaller programs, or - running only one instance of larger programs, then this penalty is - smaller, but it's still there. - - If you're running executables from network, then compressed programs - will load faster, and require less bandwidth during execution. - - DLLs are supported. But UPX compressed DLLs can not share common data - and code when they got used by multiple applications. So compressing - msvcrt.dll is a waste of memory, but compressing the dll plugins of a - particular application may be a better idea. - - Screensavers are supported, with the restriction that the filename must - end with ".scr" (as screensavers are handled slightly different than - normal exe files). - - UPX compressed PE files has some minor memory overhead (usually in the - 10 - 30 kbytes range) which can be seen by specifying the "-i" command - line switch during compression. - - Extra options available for this executable format: - - --compress-exports=0 Don't compress the export section. - Use this if you plan to run the compressed - program under Wine. - --compress-exports=1 Compress the export section. [DEFAULT] - Compression of the export section can improve the - compression ratio quite a bit but may not work - with all programs (like winword.exe). - UPX never compresses the export section of a DLL - regardless of this option. - - --compress-icons=0 Don't compress any icons. - --compress-icons=1 Compress all but the first icon. - --compress-icons=2 Compress all icons which are not in the - first icon directory. [DEFAULT] - - --compress-resources=0 Don't compress any resources at all. - - --keep-resource=list Don't compress resources specified by the list. - The members of the list are separated by commas. - A list member has the following format: I. - I is the type of the resource. Standard types - must be specified as decimal numbers, user types can be - specified by decimal IDs or strings. I is the - identifier of the resource. It can be a decimal number - or a string. For example: - - --keep-resource=2/MYBITMAP,5,6/12345 - - UPX won't compress the named bitmap resource "MYBITMAP", - it leaves every dialog (5) resource uncompressed, and - it won't touch the string table resource with identifier - 12345. - - --force Force compression even when there is an - unexpected value in a header field. - Use with care. - - --strip-relocs=0 Don't strip relocation records. - --strip-relocs=1 Strip relocation records. [DEFAULT] - This option only works on executables with base - address greater or equal to 0x400000. Usually the - compressed files becomes smaller, but some files - may become larger. Note that the resulting file will - not work under Windows 3.x (Win32s). - UPX never strips relocations from a DLL - regardless of this option. - - --all-methods Compress the program several times, using all - available compression methods. This may improve - the compression ratio in some cases, but usually - the default method gives the best results anyway. - - --all-filters Compress the program several times, using all - available preprocessing filters. This may improve - the compression ratio in some cases, but usually - the default filter gives the best results anyway. - -DIAGNOSTICS - Exit status is normally 0; if an error occurs, exit status is 1. If a - warning occurs, exit status is 2. - - UPX's diagnostics are intended to be self-explanatory. - -BUGS - Please report all bugs immediately to the authors. - -AUTHORS - Markus F.X.J. Oberhumer - http://www.oberhumer.com - - Laszlo Molnar - - John F. Reiser - - Jens Medoch - -COPYRIGHT - Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer - - Copyright (C) 1996-2006 Laszlo Molnar - - Copyright (C) 2000-2006 John F. Reiser - - Copyright (C) 2002-2006 Jens Medoch - - This program may be used freely, and you are welcome to redistribute it - under certain conditions. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the UPX License - Agreement for more details. - - You should have received a copy of the UPX License Agreement along with - this program; see the file LICENSE. If not, visit the UPX home page. - diff --git a/import/upx/doc/upx.html b/import/upx/doc/upx.html deleted file mode 100644 index a7fb618..0000000 --- a/import/upx/doc/upx.html +++ /dev/null @@ -1,888 +0,0 @@ - - - - -upx - compress or expand executable files - - - - - - -

- - - - -

-

-

NAME

-

upx - compress or expand executable files

-

-

-
-

SYNOPSIS

-

upxcommand ] [ options ] filename...

-

-

-
-

ABSTRACT

-
-                    The Ultimate Packer for eXecutables
-   Copyright (c) 1996-2006 Markus Oberhumer, Laszlo Molnar & John Reiser
-                        http://upx.sourceforge.net
-

UPX is a portable, extendable, high-performance executable packer for -several different executable formats. It achieves an excellent compression -ratio and offers *very* fast decompression. Your executables suffer -no memory overhead or other drawbacks for most of the formats supported, -because of in-place decompression.

-

While you may use UPX freely for both non-commercial and commercial -executables (for details see the file LICENSE), we would highly -appreciate if you credit UPX and ourselves in the documentation, -possibly including a reference to the UPX home page. Thanks.

-

[ Using UPX in non-OpenSource applications without proper credits -is considered not politically correct ;-) ]

-

-

-
-

DISCLAIMER

-

UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.

-

This is the first production quality release, and we plan that future 1.xx -releases will be backward compatible with this version.

-

Please report all problems or suggestions to the authors. Thanks.

-

-

-
-

DESCRIPTION

-

UPX is a versatile executable packer with the following features:

-
-  - excellent compression ratio: compresses better than zip/gzip,
-      use UPX to decrease the size of your distribution !
-
-  - 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
-      supported formats
-
-  - safe: you can list, test and unpack your executables
-      Also, a checksum of both the compressed and uncompressed file is
-      maintained internally.
-
-  - universal: UPX can pack a number of executable formats:
-      * atari/tos
-      * bvmlinuz/386    [bootable Linux kernel]
-      * djgpp2/coff
-      * dos/com
-      * dos/exe
-      * dos/sys
-      * linux/386
-      * linux/elf386
-      * linux/sh386
-      * ps1/exe
-      * rtm32/pe
-      * tmt/adam
-      * vmlinuz/386     [bootable Linux kernel]
-      * vmlinux/386
-      * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
-      * win32/pe (exe and dll)
-      * arm/pe (exe and dll)
-      * linux/elfamd64
-      * linux/elfppc32
-      * mach/elfppc32
-
-  - portable: UPX is written in portable endian-neutral C++
-
-  - extendable: because of the class layout it's very easy to support
-      new executable formats or add new compression algorithms
-
-  - free: UPX can be distributed and used freely. And from version 0.99
-      the full source code of UPX is released under the GNU General Public
-      License (GPL) !
-

You probably understand now why we call UPX the ``ultimate'' -executable packer.

-

-

-
-

COMMANDS

-

-

-

Compress

-

This is the default operation, eg. upx yourfile.exe will compress the file -specified on the command line.

-

-

-

Decompress

-

All UPX supported file formats can be unpacked using the -d switch, eg. -upx -d yourfile.exe will uncompress the file you've just compressed.

-

-

-

Test

-

The -t command tests the integrity of the compressed and uncompressed -data, eg. upx -t yourfile.exe check whether your file can be safely -decompressed. Note, that this command doesn't check the whole file, only -the part that will be uncompressed during program execution. This means -that you should not use this command instead of a virus checker.

-

-

-

List

-

The -l command prints out some information about the compressed files -specified on the command line as parameters, eg upx -l yourfile.exe -shows the compressed / uncompressed size and the compression ratio of -yourfile.exe.

-

-

-
-

OPTIONS

-

-q: be quiet, suppress warnings

-

-q -q (or -qq): be very quiet, suppress errors

-

-q -q -q (or -qqq): produce no output at all

-

--help: prints the help

-

--version: print the version of UPX

-

[ ...to be written... - type `upx --help' for now ]

-

-

-
-

COMPRESSION LEVELS & TUNING

-

UPX offers ten different compression levels from -1 to -9, -and --best. The default compression level is -8 for files -smaller than 512 kB, and -7 otherwise.

-
    -
  • -

    Compression levels 1, 2 and 3 are pretty fast.

    -
  • -
  • -

    Compression levels 4, 5 and 6 achieve a good time/ratio performance.

    -
  • -
  • -

    Compression levels 7, 8 and 9 favor compression ratio over speed.

    -
  • -
  • -

    Compression level --best may take a long time.

    -
  • -
-

Note that compression level --best can be somewhat slow for large -files, but you definitely should use it when releasing a final version -of your program.

-

Quick start for achieving the best compression ratio:

-

Try upx --brute myfile.exe.

-

Details for achieving the best compression ratio:

-
    -
  • -

    Use the compression level --best.

    -
  • -
  • -

    Try one or both of the options --all-methods and --all-filters.

    -
  • -
  • -

    Try the option --crp-ms=NUMBER. This uses more memory during compression -to achieve a (slightly) better compression ratio.

    -

    NUMBER must be a decimal value from 10000 to 999999, inclusive. -The default value is 10000 (ten thousand).

    -
  • -
  • -

    Info: the option --brute is an abbrevation for the options ---best --all-methods --all-filters --crp-ms=999999.

    -
  • -
  • -

    Try if --overlay=strip works.

    -
  • -
  • -

    For win32/pe programs there's --strip-relocs=0. See notes below.

    -
  • -
-

-

-
-

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).

-

UPX handles overlays like many other executable packers do: it simply -copies the overlay after the compressed image. This works with some -files, but doesn't work with others, depending on how an application -actually accesses this overlayed data.

-
-  --overlay=copy    Copy any extra data attached to the file. [DEFAULT]
-
-  --overlay=strip   Strip any overlay from the program instead of
-                    copying it. Be warned, this may make the compressed
-                    program crash or otherwise unusable.
-
-  --overlay=skip    Refuse to compress any program which has an overlay.
-

-

-
-

ENVIRONMENT

-

The environment variable UPX can hold a set of default -options for UPX. These options are interpreted first and -can be overwritten by explicit command line parameters. -For example:

-
-    for DOS/Windows:   set UPX=-9 --compress-icons#0
-    for sh/ksh/zsh:    UPX="-9 --compress-icons=0"; export UPX
-    for csh/tcsh:      setenv UPX "-9 --compress-icons=0"
-

Under DOS/Windows you must use '#' instead of '=' when setting the -environment variable because of a COMMAND.COM limitation.

-

Not all of the options are valid in the environment variable - -UPX will tell you.

-

You can explicitly use the --no-env option to ignore the -environment variable.

-

-

-
-

NOTES FOR THE SUPPORTED EXECUTABLE FORMATS

-

-

-

NOTES FOR ATARI/TOS

-

This is the executable format used by the Atari ST/TT, a Motorola 68000 -based personal computer which was popular in the late '80s. Support -of this format is only because of nostalgic feelings of one of -the authors and serves no practical purpose :-). -See http://www.freemint.de for more info.

-

Packed programs will be byte-identical to the original after uncompression. -All debug information will be stripped, though.

-

Extra options available for this executable format:

-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-

-

-

NOTES FOR BVMLINUZ/I386

-

Same as vmlinuz/i386.

-

-

-

NOTES FOR DOS/COM

-

Obviously UPX won't work with executables that want to read data from -themselves (like some commandline utilities that ship with Win95/98/ME).

-

Compressed programs only work on a 286+.

-

Packed programs will be byte-identical to the original after uncompression.

-

Maximum uncompressed size: ~65100 bytes.

-

Extra options available for this executable format:

-
-  --8086              Create an executable that works on any 8086 CPU.
-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-

NOTES FOR DOS/EXE

-

dos/exe stands for all ``normal'' 16-bit DOS executables.

-

Obviously UPX won't work with executables that want to read data from -themselves (like some command line utilities that ship with Win95/98/ME).

-

Compressed programs only work on a 286+.

-

Extra options available for this executable format:

-
-  --8086              Create an executable that works on any 8086 CPU.
-
-  --no-reloc          Use no relocation records in the exe header.
-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-

-

-

NOTES FOR DOS/SYS

-

Compressed programs only work on a 286+.

-

Packed programs will be byte-identical to the original after uncompression.

-

Maximum uncompressed size: ~65350 bytes.

-

Extra options available for this executable format:

-
-  --8086              Create an executable that works on any 8086 CPU.
-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-

NOTES FOR DJGPP2/COFF

-

First of all, it is recommended to use UPX *instead* of strip. strip has -the very bad habit of replacing your stub with its own (outdated) version. -Additionally UPX corrects a bug/feature in strip v2.8.x: it -will fix the 4 KByte aligment of the stub.

-

UPX includes the full functionality of stubify. This means it will -automatically stubify your COFF files. Use the option --coff to -disable this functionality (see below).

-

UPX automatically handles Allegro packfiles.

-

The DLM format (a rather exotic shared library extension) is not supported.

-

Packed programs will be byte-identical to the original after uncompression. -All debug information and trailing garbage will be stripped, though.

-

Extra options available for this executable format:

-
-  --coff              Produce COFF output instead of EXE. By default
-                      UPX keeps your current stub.
-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-

NOTES FOR LINUX [general]

-

Introduction

-
-  Linux/386 support in UPX consists of 3 different executable formats,
-  one optimized for ELF excutables ("linux/elf386"), one optimized
-  for shell scripts ("linux/sh386"), and one generic format
-  ("linux/386").
-
-  We will start with a general discussion first, but please
-  also read the relevant docs for each of the individual formats.
-
-  Also, there is special support for bootable kernels - see the
-  description of the vmlinuz/386 format.
-

General user's overview

-
-  Running a compressed executable program trades less space on a
-  ``permanent'' storage medium (such as a hard disk, floppy disk,
-  CD-ROM, flash memory, EPROM, etc.) for more space in one or more
-  ``temporary'' storage media (such as RAM, swap space, /tmp, etc.).
-  Running a compressed executable also requires some additional CPU
-  cycles to generate the compressed executable in the first place,
-  and to decompress it at each invocation.
-
-  How much space is traded?  It depends on the executable, but many
-  programs save 30% to 50% of permanent disk space.  How much CPU
-  overhead is there?  Again, it depends on the executable, but
-  decompression speed generally is at least many megabytes per second,
-  and frequently is limited by the speed of the underlying disk
-  or network I/O.
-
-  Depending on the statistics of usage and access, and the relative
-  speeds of CPU, RAM, swap space, /tmp, and filesystem storage, then
-  invoking and running a compressed executable can be faster than
-  directly running the corresponding uncompressed program.
-  The operating system might perfrom fewer expensive I/O operations
-  to invoke the compressed program.  Paging to or from swap space
-  or /tmp might be faster than paging from the general filesystem.
-  ``Medium-sized'' programs which access about 1/3 to 1/2 of their
-  stored program bytes can do particulary well with compression.
-  Small programs tend not to benefit as much because the absolute
-  savings is less.  Big programs tend not to benefit proportionally
-  because each invocation may use only a small fraction of the program,
-  yet UPX decompresses the entire program before invoking it.
-  But in environments where disk or flash memory storage is limited,
-  then compression may win anyway.
-
-  Currently, executables compressed by UPX do not share RAM at runtime
-  in the way that executables mapped from a filesystem do.  As a
-  result, if the same program is run simultaneously by more than one
-  process, then using the compressed version will require more RAM and/or
-  swap space.  So, shell programs (bash, csh, etc.)  and ``make''
-  might not be good candidates for compression.
-
-  UPX recognizes three executable formats for Linux: Linux/elf386,
-  Linux/sh386, and Linux/386.  Linux/386 is the most generic format;
-  it accommodates any file that can be executed.  At runtime, the UPX
-  decompression stub re-creates in /tmp a copy of the original file,
-  and then the copy is (re-)executed with the same arguments.
-  ELF binary executables prefer the Linux/elf386 format by default,
-  because UPX decompresses them directly into RAM, uses only one
-  exec, does not use space in /tmp, and does not use /proc.
-  Shell scripts where the underlying shell accepts a ``-c'' argument
-  can use the Linux/sh386 format.  UPX decompresses the shell script
-  into low memory, then maps the shell and passes the entire text of the
-  script as an argument with a leading ``-c''.
-

General benefits:

-
-  - UPX can compress all executables, be it AOUT, ELF, libc4, libc5,
-    libc6, Shell/Perl/Python/... scripts, standalone Java .class
-    binaries, or whatever...
-    All scripts and programs will work just as before.
-
-  - Compressed programs are completely self-contained. No need for
-    any external program.
-
-  - UPX keeps your original program untouched. This means that
-    after decompression you will have a byte-identical version,
-    and you can use UPX as a file compressor just like gzip.
-    [ Note that UPX maintains a checksum of the file internally,
-      so it is indeed a reliable alternative. ]
-
-  - As the stub only uses syscalls and isn't linked against libc it
-    should run under any Linux configuration that can run ELF
-    binaries.
-
-  - For the same reason compressed executables should run under
-    FreeBSD and other systems which can run Linux binaries.
-    [ Please send feedback on this topic ]
-

General drawbacks:

-
-  - It is not advisable to compress programs which usually have many
-    instances running (like `sh' or `make') because the common segments of
-    compressed programs won't be shared any longer between different
-    processes.
-
-  - `ldd' and `size' won't show anything useful because all they
-    see is the statically linked stub.  Since version 0.82 the section
-    headers are stripped from the UPX stub and `size' doesn't even
-    recognize the file format.  The file patches/patch-elfcode.h has a
-    patch to fix this bug in `size' and other programs which use GNU BFD.
-

General notes:

-
-  - As UPX leaves your original program untouched it is advantageous
-    to strip it before compression.
-
-  - If you compress a script you will lose platform independence -
-    this could be a problem if you are using NFS mounted disks.
-
-  - Compression of suid, guid and sticky-bit programs is rejected
-    because of possible security implications.
-
-  - For the same reason there is no sense in making any compressed
-    program suid.
-
-  - Obviously UPX won't work with executables that want to read data
-    from themselves. E.g., this might be a problem for Perl scripts
-    which access their __DATA__ lines.
-
-  - In case of internal errors the stub will abort with exitcode 127.
-    Typical reasons for this to happen are that the program has somehow
-    been modified after compression.
-    Running `strace -o strace.log compressed_file' will tell you more.
-

-

-

NOTES FOR LINUX/ELF386

-

Please read the general Linux description first.

-

The linux/elf386 format decompresses directly into RAM, -uses only one exec, does not use space in /tmp, -and does not use /proc.

-

Linux/elf386 is automatically selected for Linux ELF exectuables.

-

Packed programs will be byte-identical to the original after uncompression.

-

How it works:

-
-  For ELF executables, UPX decompresses directly to memory, simulating
-  the mapping that the operating system kernel uses during exec(),
-  including the PT_INTERP program interpreter (if any).
-  The brk() is set by a special PT_LOAD segment in the compressed
-  executable itself.  UPX then wipes the stack clean except for
-  arguments, environment variables, and Elf_auxv entries (this is
-  required by bugs in the startup code of /lib/ld-linux.so as of
-  May 2000), and transfers control to the program interpreter or
-  the e_entry address of the original executable.
-
-  The UPX stub is about 1700 bytes long, partly written in assembler
-  and only uses kernel syscalls. It is not linked against any libc.
-

Specific drawbacks:

-
-  - For linux/elf386 and linux/sh386 formats, you will be relying on
-    RAM and swap space to hold all of the decompressed program during
-    the lifetime of the process.  If you already use most of your swap
-    space, then you may run out.  A system that is "out of memory"
-    can become fragile.  Many programs do not react gracefully when
-    malloc() returns 0.  With newer Linux kernels, the kernel
-    may decide to kill some processes to regain memory, and you
-    may not like the kernel's choice of which to kill.  Running
-    /usr/bin/top is one way to check on the usage of swap space.
-

Extra options available for this executable format:

-
-  (none)
-

-

-

NOTES FOR LINUX/SH386

-

Please read the general Linux description first.

-

Shell scripts where the underling shell accepts a ``-c'' argument -can use the Linux/sh386 format. UPX decompresses the shell script -into low memory, then maps the shell and passes the entire text of the -script as an argument with a leading ``-c''. -It does not use space in /tmp, and does not use /proc.

-

Linux/sh386 is automatically selected for shell scripts that -use a known shell.

-

Packed programs will be byte-identical to the original after uncompression.

-

How it works:

-
-  For shell script executables (files beginning with "#!/" or "#! /")
-  where the shell is known to accept "-c <command>", UPX decompresses
-  the file into low memory, then maps the shell (and its PT_INTERP),
-  and passes control to the shell with the entire decompressed file
-  as the argument after "-c".  Known shells are sh, ash, bash, bsh, csh,
-  ksh, tcsh, pdksh.  Restriction: UPX cannot use this method
-  for shell scripts which use the one optional string argument after
-  the shell name in the script (example: "#! /bin/sh option3\n".)
-
-  The UPX stub is about 1700 bytes long, partly written in assembler
-  and only uses kernel syscalls. It is not linked against any libc.
-

Specific drawbacks:

-
-  - For linux/elf386 and linux/sh386 formats, you will be relying on
-    RAM and swap space to hold all of the decompressed program during
-    the lifetime of the process.  If you already use most of your swap
-    space, then you may run out.  A system that is "out of memory"
-    can become fragile.  Many programs do not react gracefully when
-    malloc() returns 0.  With newer Linux kernels, the kernel
-    may decide to kill some processes to regain memory, and you
-    may not like the kernel's choice of which to kill.  Running
-    /usr/bin/top is one way to check on the usage of swap space.
-

Extra options available for this executable format:

-
-  (none)
-

-

-

NOTES FOR LINUX/386

-

Please read the general Linux description first.

-

The generic linux/386 format decompresses to /tmp and needs -/proc filesystem support. It starts the decompressed program -via the execve() syscall.

-

Linux/386 is only selected if the specialized linux/elf386 -and linux/sh386 won't recognize a file.

-

Packed programs will be byte-identical to the original after uncompression.

-

How it works:

-
-  For files which are not ELF and not a script for a known "-c" shell,
-  UPX uses kernel execve(), which first requires decompressing to a
-  temporary file in the filesystem.  Interestingly -
-  because of the good memory management of the Linux kernel - this
-  often does not introduce a noticable delay, and in fact there
-  will be no disk access at all if you have enough free memory as
-  the entire process takes places within the filesystem buffers.
-
-  A compressed executable consists of the UPX stub and an overlay
-  which contains the original program in a compressed form.
-
-  The UPX stub is a statically linked ELF executable and does
-  the following at program startup:
-
-    1) decompress the overlay to a temporary location in /tmp
-    2) open the temporary file for reading
-    3) try to delete the temporary file and start (execve)
-       the uncompressed program in /tmp using /proc/<pid>/fd/X as
-       attained by step 2)
-    4) if that fails, fork off a subprocess to clean up and
-       start the program in /tmp in the meantime
-
-  The UPX stub is about 1700 bytes long, partly written in assembler
-  and only uses kernel syscalls. It is not linked against any libc.
-

Specific drawbacks:

-
-  - You need additional free disk space for the uncompressed program
-    in your /tmp directory. This program is deleted immediately after
-    decompression, but you still need it for the full execution time
-    of the program.
-
-  - You must have /proc filesystem support as the stub wants to open
-    /proc/<pid>/exe and needs /proc/<pid>/fd/X. This also means that you
-    cannot compress programs that are used during the boot sequence
-    before /proc is mounted.
-
-  - Utilities like `top' will display numerical values in the process
-    name field. This is because Linux computes the process name from
-    the first argument of the last execve syscall (which is typically
-    something like /proc/<pid>/fd/3).
-
-  - Because of temporary decompression to disk the decompression speed
-    is not as fast as with the other executable formats. Still, I can see
-    no noticable delay when starting programs like my ~3 MB emacs (which
-    is less than 1 MB when compressed :-).
-

Extra options available for this executable format:

-
-  --force-execve      Force the use of the generic linux/386 "execve"
-                      format, i.e. do not try the linux/elf386 and
-                      linux/sh386 formats.
-

-

-

NOTES FOR PS1/EXE

-

This is the executable format used by the Sony PlayStation (PSone), -a Mips R3000 based gaming console which is popular since the late '90s. -Support of this format is very similar to the Atari one, because of -nostalgic feelings of one of the authors.

-

Packed programs will be byte-identical to the original after uncompression, -until further notice.

-

Maximum uncompressed size: ~1998848 bytes.

-

Notes:

-
-  - UPX creates as default a 'CD-Rom only' PS1/PS2 compatible executable.
-    For transfer between client/target use options below.
-
-  - Normally the packed files use the same memory areas like the uncompressed
-    versions, so they will not override other memory areas while unpacking.
-    If this isn't possible UPX will abort showing a 'packed data overlap'
-    error. With the "--force" option UPX will set a few 'bytes higher' loading
-    offset for the packed file, but this isn't a real problem if it is a
-    single or boot-only executable.
-

Extra options available for this executable format:

-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --boot-only         The format will only run from a CD and may slightly
-                      improves the compression ratio. The decompression
-                      routines are faster than default ones.
-                      But it cannot be used for host/client transfer !
-
-  --no-align          This option disables CD mode 2 data sector format
-                      alignment. May slightly improves the compression ratio,
-                      but the compressed executable will not boot from a CD.
-                      Use it for client/target transfer only !
-

-

-

NOTES FOR RTM32/PE and ARM/PE

-

Same as win32/pe.

-

-

-

NOTES FOR TMT/ADAM

-

This format is used by the TMT Pascal compiler - see http://www.tmt.com/ .

-

Extra options available for this executable format:

-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-

NOTES FOR VMLINUZ/386

-

The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed -bootable Linux kernel image (``vmlinuz'', ``zImage'', ``bzImage''), -gzip-decompress it and re-compress it with the UPX compression method.

-

vmlinuz/386 is completely unrelated to the other Linux executable -formats, and it does not share any of their drawbacks.

-

Notes:

-
-  - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed
-  during compression - otherwise a wrong executable format
-  may have been used, and the kernel won't boot.
-

Benefits:

-
-  - Better compression (but note that the kernel was already compressed,
-  so the improvement is not as large as with other formats).
-  Still, the bytes saved may be essential for special needs like
-  bootdisks.
-
-     For example, this is what I get for my 2.2.16 kernel:
-        1589708  vmlinux
-         641073  bzImage        [original]
-         560755  bzImage.upx    [compressed by "upx -9"]
-
-  - Much faster decompression at kernel boot time (but kernel
-    decompression speed is not really an issue these days).
-

Drawbacks:

-
-  (none)
-

Extra options available for this executable format:

-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-

NOTES FOR WATCOM/LE

-

UPX has been successfully tested with the following extenders: - DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay. - The WDOS/X extender is partly supported (for details - see the file bugs BUGS).

-

DLLs and the LX format are not supported.

-

Extra options available for this executable format:

-
-  --le                Produce an unbound LE output instead of
-                      keeping the current stub.
-

-

-

NOTES FOR WIN32/PE

-

The PE support in UPX is quite stable now, but probably there are -still some incompabilities with some files.

-

Because of the way UPX (and other packers for this format) works, you -can see increased memory usage of your compressed files because the whole -program is loaded into memory at startup. -If you start several instances of huge compressed programs you're -wasting memory because the common segements of the program won't -get shared across the instances. -On the other hand if you're compressing only smaller programs, or -running only one instance of larger programs, then this penalty is -smaller, but it's still there.

-

If you're running executables from network, then compressed programs -will load faster, and require less bandwidth during execution.

-

DLLs are supported. But UPX compressed DLLs can not share common data and -code when they got used by multiple applications. So compressing msvcrt.dll -is a waste of memory, but compressing the dll plugins of a particular -application may be a better idea.

-

Screensavers are supported, with the restriction that the filename -must end with ``.scr'' (as screensavers are handled slightly different -than normal exe files).

-

UPX compressed PE files has some minor memory overhead (usually in the -10 - 30 kbytes range) which can be seen by specifying the ``-i'' command -line switch during compression.

-

Extra options available for this executable format:

-
- --compress-exports=0 Don't compress the export section.
-                      Use this if you plan to run the compressed
-                      program under Wine.
- --compress-exports=1 Compress the export section. [DEFAULT]
-                      Compression of the export section can improve the
-                      compression ratio quite a bit but may not work
-                      with all programs (like winword.exe).
-                      UPX never compresses the export section of a DLL
-                      regardless of this option.
-
-  --compress-icons=0  Don't compress any icons.
-  --compress-icons=1  Compress all but the first icon.
-  --compress-icons=2  Compress all icons which are not in the
-                      first icon directory. [DEFAULT]
-
-  --compress-resources=0  Don't compress any resources at all.
-
-  --keep-resource=list Don't compress resources specified by the list.
-                      The members of the list are separated by commas.
-                      A list member has the following format: I<type[/name]>.
-                      I<Type> is the type of the resource. Standard types
-                      must be specified as decimal numbers, user types can be
-                      specified by decimal IDs or strings. I<Name> is the
-                      identifier of the resource. It can be a decimal number
-                      or a string. For example:
-
-                      --keep-resource=2/MYBITMAP,5,6/12345
-
-                      UPX won't compress the named bitmap resource "MYBITMAP",
-                      it leaves every dialog (5) resource uncompressed, and
-                      it won't touch the string table resource with identifier
-                      12345.
-
-  --force             Force compression even when there is an
-                      unexpected value in a header field.
-                      Use with care.
-
-  --strip-relocs=0    Don't strip relocation records.
-  --strip-relocs=1    Strip relocation records. [DEFAULT]
-                      This option only works on executables with base
-                      address greater or equal to 0x400000. Usually the
-                      compressed files becomes smaller, but some files
-                      may become larger. Note that the resulting file will
-                      not work under Windows 3.x (Win32s).
-                      UPX never strips relocations from a DLL
-                      regardless of this option.
-
-  --all-methods       Compress the program several times, using all
-                      available compression methods. This may improve
-                      the compression ratio in some cases, but usually
-                      the default method gives the best results anyway.
-
-  --all-filters       Compress the program several times, using all
-                      available preprocessing filters. This may improve
-                      the compression ratio in some cases, but usually
-                      the default filter gives the best results anyway.
-

-

-
-

DIAGNOSTICS

-

Exit status is normally 0; if an error occurs, exit status -is 1. If a warning occurs, exit status is 2.

-

UPX's diagnostics are intended to be self-explanatory.

-

-

-
-

BUGS

-

Please report all bugs immediately to the authors.

-

-

-
-

AUTHORS

-
- Markus F.X.J. Oberhumer <markus@oberhumer.com>
- http://www.oberhumer.com
-
- Laszlo Molnar <ml1050@users.sourceforge.net>
-
- John F. Reiser <jreiser@BitWagon.com>
-
- Jens Medoch <jssg@users.sourceforge.net>
-

-

-
-

COPYRIGHT

-

Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer

-

Copyright (C) 1996-2006 Laszlo Molnar

-

Copyright (C) 2000-2006 John F. Reiser

-

Copyright (C) 2002-2006 Jens Medoch

-

This program may be used freely, and you are welcome to -redistribute it under certain conditions.

-

This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -UPX License Agreement for more details.

-

You should have received a copy of the UPX License Agreement along -with this program; see the file LICENSE. If not, visit the UPX home page.

- - - -