Commit Graph

151 Commits

Author SHA1 Message Date
John Reiser
9e1631ad4f avoid null section name and zero alignment; enforce record === line
modified:   linker.cpp
	modified:   linker.h
2016-11-19 17:38:23 -08:00
John Reiser
134b829d59 prevent warning C4319: '~': zero extending 'const unsigned int' to 'upx_uint64_t' of greater size
modified:   linker.cpp
	modified:   p_lx_elf.cpp
	modified:   pefile.cpp
2016-11-19 16:46:01 -08:00
Markus F.X.J. Oberhumer
0d57d2cfe3 Remove old cruft. 2016-09-28 13:39:49 +02:00
Markus F.X.J. Oberhumer
32de5d0d7f Fix msvc build. 2016-09-28 13:34:39 +02:00
Markus F.X.J. Oberhumer
f7554374ab Update email address. 2016-09-28 12:25:01 +02:00
Markus F.X.J. Oberhumer
83828aa8a3 Update vim modelines. 2016-09-22 17:29:43 +02:00
Markus F.X.J. Oberhumer
96d9968db5 Welcome 2016. 2016-09-22 14:07:14 +02:00
Markus F.X.J. Oberhumer
b66ba140cb More cleanups. 2016-09-21 23:18:19 +02:00
Markus F.X.J. Oberhumer
1bb0fa1809 Fix a few things spotted by the gcc-6 sanitizer. Needs review. 2016-09-21 00:35:51 +02:00
Markus F.X.J. Oberhumer
3f7c1f966b Minor cleanups. 2016-09-20 22:14:25 +02:00
jreiser@BitWagon.com
1197beaa13 ElfLinker::init() zero length implies 0x4000 blank bytes 2016-09-05 20:36:07 -07:00
John Reiser
5de83a606e Cleanup after Thierry Fauck changes for ppc64le.
We need a "UPX standard" compiler in order to re-compile the stubs for ppc64le;
meanwhile use Thierry's "pre-compiled" stubs.
Revert powerpc stubs to those produced by UPX standard powerpc.405-linux-gcc-3.4.5.
Cleanup the workarounds that Thierry used because he lacked upx-stubtools 20130920.
ARMv8 (64-bit) compiles but is incomplete and does not run yet.

 changed src/Makefile
 changed src/linker.cpp
 changed src/stub/Makefile
 changed src/stub/amd64-linux.elf-entry.h
 changed src/stub/arm64-darwin.macho-entry.h
 changed src/stub/arm64-darwin.macho-fold.h
 changed src/stub/powerpc-darwin.dylib-entry.h
 changed src/stub/powerpc-darwin.macho-entry.h
 changed src/stub/powerpc-darwin.macho-fold.h
 changed src/stub/powerpc-linux.elf-entry.h
 changed src/stub/powerpc-linux.elf-fold.h
 changed src/stub/powerpc-linux.kernel.vmlinux.h
 changed src/stub/scripts/xstrip.py
 changed src/stub/src/arch/arm/v8a/lzma_d.S
 changed src/stub/src/arch/arm/v8a/macros.S
 changed src/stub/src/arm64-darwin.macho-entry.S
 changed src/stub/tmp/arm64-darwin.macho-entry.bin.dump
2016-07-26 21:29:29 -07:00
John Reiser
01a0c8672d changeset: 2451:4e2a6c33d5fb
tag: ppc64le
user: Thierry Fauck <tfauck@free.fr>
date: Wed Jun 22 08:25:13 2016 -0400
summary: Add support for ppc64le statically linked binaries
2016-07-26 17:00:25 -07:00
John Reiser
42e520e841 ElfLinkerArm64LE 2016-01-31 19:59:00 -08:00
Markus F.X.J. Oberhumer
fb611a98f9 Welcome 2015. 2015-01-03 00:24:07 +01:00
Markus F.X.J. Oberhumer
a26c982e93 Welcome 2014. 2014-01-07 23:05:10 +01:00
Markus F.X.J. Oberhumer
b2643b6926 Start using the new intergral type names. 2013-09-20 08:19:18 +02:00
Markus F.X.J. Oberhumer
25727f7f99 Minor portability fixes. 2013-09-20 07:48:29 +02:00
László Molnár
76be5dd1d3 linker: Section::offset should be u64 2013-09-01 21:38:44 +02:00
László Molnár
53dc63f3bc linker: a small 64-bit relocation support related fix 2013-09-01 11:15:30 +02:00
László Molnár
bce7af4e11 fixed 8 bit range checking in ElfLinkerAMD64::relocate1 2013-08-28 22:31:40 +02:00
László Molnár
037c29d24a added full support for 64-bit relocations 2013-08-22 21:43:11 +02:00
Markus F.X.J. Oberhumer
87a368a857 Welcome 2013. 2013-02-12 10:14:03 +01:00
Markus F.X.J. Oberhumer
43ce34d547 Welcome 2012. 2012-01-01 22:35:11 +01:00
László Molnár
aec8f81358 fixed a warning (sf.net bug 3241423) 2011-03-25 12:02:22 +01:00
Markus F.X.J. Oberhumer
9bf2b79d9e Enter 2011. 2011-01-03 08:49:23 +01:00
Markus F.X.J. Oberhumer
b926fb3c66 Fix __cdecl syntax error. 2010-12-24 10:38:30 +01:00
László Molnár
6c8d5c0d0e replaced abort() with internal_error() (sf.net bug 3101319) 2010-12-21 10:28:36 +01:00
Markus F.X.J. Oberhumer
626025d539 Prepare release. 2010-04-27 16:09:41 +02:00
Markus F.X.J. Oberhumer
6bc3197721 Enter 2010. 2010-02-06 17:15:49 +01:00
John Reiser
eeab1aef64 Synonyms R_ARM_THM_PC22 and R_ARM_THM_XPC22 for R_ARM_THM_CALL. 2009-10-22 21:05:05 -07:00
Markus F.X.J. Oberhumer
5ed689ceb0 Enter 2009. 2008-12-31 17:07:18 +01:00
Markus F.X.J. Oberhumer
ca368e0f9b Add a note about broken scanf() implementations. 2008-04-02 16:34:31 +02:00
John Reiser
271031128e Fix ElfLinkerMipsBE::relocate1. Create CFLUSH section in
mipsel.r3000-linux.elf-entry.S and powerpc-darwin.macho-entry.S .
2008-03-31 08:55:35 -07:00
Markus F.X.J. Oberhumer
6ff1bd5917 Update my email address. 2008-01-02 10:12:42 +01:00
Markus F.X.J. Oberhumer
fa49dbe2cb Enter 2008. 2008-01-02 09:42:31 +01:00
John Reiser
0260f0790a mipseb.r3000-linux.elf [broken because no big-endian tool chain] 2007-11-12 09:12:51 -08:00
Markus F.X.J. Oberhumer
40e19293f9 Added throwOutOfMemoryException(). 2007-05-08 15:28:35 +02:00
John Reiser
f347458c53 new format UPX_F_VMLINUX_PPC32 Linux kernel for PowerPC (32-bit) 2007-04-30 13:34:06 -07:00
Markus F.X.J. Oberhumer
0fcaa3a2f5 Work around broken scanf() implementations. 2007-03-22 07:30:16 +01:00
Markus F.X.J. Oberhumer
bdd0daaf6f Added ElfLinker::addLoaderVA(). 2007-02-20 07:36:34 +01:00
Markus F.X.J. Oberhumer
1cfad80ca2 Introduce a special "ignore_reloc_overflow" section. 2007-02-18 18:29:26 +01:00
Markus F.X.J. Oberhumer
7271ae9611 Small updates. 2007-01-23 13:50:39 +01:00
Markus F.X.J. Oberhumer
5e83596a1b Enter 2007. 2007-01-14 13:08:58 +01:00
Markus F.X.J. Oberhumer
0b988176fa Portability fixes. 2007-01-10 17:16:59 +01:00
John Reiser
50ebf8088a R_ARM_ABS8 2006-12-17 13:19:37 -08:00
Markus F.X.J. Oberhumer
732d6710d3 Remove misleading "const" from Linker::preprocessXX(). 2006-12-10 00:38:28 +01:00
Markus F.X.J. Oberhumer
83052eafae Minor cleanups. 2006-12-01 00:57:03 +01:00
Markus F.X.J. Oberhumer
87b7ea9cf3 Add LZMA support for pre-compressed stubs. 2006-11-21 06:09:04 +01:00
Markus F.X.J. Oberhumer
140d6ad839 Avoid compiler warning. 2006-11-21 05:09:01 +01:00
Markus F.X.J. Oberhumer
8dad091c6b Decompress pre-compressed stubs in Linker::init(). 2006-11-21 05:01:00 +01:00
Markus F.X.J. Oberhumer
05d03f97fc Introduce Packer::bele. 2006-11-20 12:01:59 +01:00
Markus F.X.J. Oberhumer
519fa55df7 ps1/exe: fill pad.code section with zeros. 2006-11-18 20:54:10 +01:00
Markus F.X.J. Oberhumer
d9e8c953b1 Fixed some ElfLinker endian issues. 2006-11-18 17:43:29 +01:00
Markus F.X.J. Oberhumer
9eca502026 Make upx build with gcc-2.95 again. 2006-11-18 14:37:22 +01:00
Markus F.X.J. Oberhumer
db7ae4ed5d Improve Packer:addLoader(). We're still somewhat limited because of gcc-bug
#29823 (see http://gcc.gnu.org/PR29823).
2006-11-16 18:52:20 +01:00
Markus F.X.J. Oberhumer
713415c354 Fix broken "glibc sscanf bug workaround". 2006-11-12 14:47:50 +01:00
Markus F.X.J. Oberhumer
46caeddc81 Added some more debugging support to Linker. 2006-11-12 13:45:27 +01:00
Markus F.X.J. Oberhumer
a74e239e28 Major cleanup of ElfLinker. 2006-11-12 10:57:18 +01:00
Markus F.X.J. Oberhumer
ebef2b1e44 Avoid a printf warning. 2006-10-04 00:16:55 +02:00
Markus F.X.J. Oberhumer
a61457b422 Added some debugging support via Linker::dumpSymbols(). 2006-10-03 23:48:19 +02:00
Markus F.X.J. Oberhumer
f54513586d Implemented alignCode() for m68k. 2006-08-28 09:09:29 +02:00
Markus F.X.J. Oberhumer
6c519c237e Renamed Linker::align() to alignCode(). We still have to add
some way to express alignData().
2006-08-28 08:58:43 +02:00
John Reiser
117a721166 ElfLinker::addSection ==> addLoader 2006-08-21 19:52:09 -07:00
John Reiser
c8d54b324b Only PC-relative relocations get range checked. 2006-08-21 14:26:08 -07:00
Markus F.X.J. Oberhumer
6f1cc2c1e5 Renamed ElfLinker::addSection(sname) to addLoader(). 2006-08-21 20:07:42 +02:00
Markus F.X.J. Oberhumer
996a99ad75 Some linker.cpp cleanups. 2006-08-20 11:15:36 +02:00
Markus F.X.J. Oberhumer
03ce7a8db3 Removed all old linker classes - we exclusively use ElfLinker now. 2006-08-19 14:00:22 +02:00
John Reiser
fd1611079a auto-define symbol *ABS* in section *ABS*
(for i386-linux.elf.execve-entry.h  R_386_PC  *ABS*)
2006-08-10 17:02:36 -07:00
John Reiser
52e8326d54 work on PackLinuxElf32arm; add nrv2b_d8.S 2006-07-21 13:11:02 -07:00
László Molnár
4c87e11aeb 8 bit relocation overflow detection added to ElfLinker 2006-07-17 16:58:24 +02:00
John Reiser
e06a390771 PackLinuxElf32ppc works (except lzma) 2006-07-16 19:01:17 -07:00
John Reiser
b34e204676 PackLinuxElf32ppc conversion; alignment in *::Section 2006-07-16 15:04:16 -07:00
John Reiser
cfc5631d5d PackLinuxElf64amd works (except for lzma) 2006-07-15 13:46:37 -07:00
John Reiser
0b8825fecb i386 conversion stub conversion; nrv2b_d32_2.ash etc. 2006-07-12 11:15:14 -07:00
László Molnár
9531bdf674 fixed a bug in ElfLinker 2006-07-07 16:57:15 +02:00
László Molnár
d35211328e ElfLinker: rela support added 2006-07-07 08:51:48 +02:00
László Molnár
f14dc4a4e9 ElfLinkerArmLe fixes 2006-07-01 12:25:26 +02:00
László Molnár
fd56e2534c fixed alignment handling typo 2006-07-01 09:40:12 +02:00
László Molnár
c5fb161477 ElfLinker updates
commented out the debugging printfs
now it's possible to set the offset of sections
aligment handling simplified
ElfLinkerArmPE introduced
2006-07-01 00:10:02 +02:00
László Molnár
b33718180c ElfLinkerX86 introduced.
Simple alignment handling added to ElfLinker.
dos/exe device drivers can be compressed again.
2006-06-29 18:21:01 +02:00
László Molnár
a68b76c8b4 undefined symbols are initialized to "0xdeaddead" 2006-06-29 00:22:45 +02:00
László Molnár
6d8afec510 ElfLinker started. Dos/com & dos/sys formats converted 2006-06-28 14:45:58 +02:00
Markus F.X.J. Oberhumer
29e8d072b7 Simplify C++ style in Linker. 2006-06-22 16:12:48 +02:00
Markus F.X.J. Oberhumer
bf5cbfffc2 Start major refactoring. 2006-06-19 19:20:50 +02:00
Markus F.X.J. Oberhumer
db43910288 Enter 2006. 2006-06-16 15:17:29 +02:00
Markus F.X.J. Oberhumer
69eaaa4177 Revert previous checkin.
committer: mfx <mfx> 1139914479 +0000
2006-02-14 10:54:39 +00:00
Markus F.X.J. Oberhumer
75ef603308 Linker updates from Laszlo. Needs some testing.
committer: mfx <mfx> 1109669078 +0000
2005-03-01 09:24:38 +00:00
John Reiser
89fee5b835 allow more sections; print failing section on overflow
committer: jreiser <jreiser> 1108850756 +0000
2005-02-19 22:05:56 +00:00
John Reiser
5d331fdf69 new file format vmlinux/i386
Modified Files:
	Makefile conf.h help.cpp linker.cpp p_elf.h packer.cpp
	packerf.cpp packmast.cpp stub/Makefile stub/l_vmlinz.asm
Added Files:
	p_vmlinx.h p_vmlinx.cpp stub/l_vmlinx.asm

committer: jreiser <jreiser> 1089652867 +0000
2004-07-12 17:21:07 +00:00
Markus F.X.J. Oberhumer
5f87e9891b Enter 2004.
committer: mfx <mfx> 1074623868 +0000
2004-01-20 18:37:48 +00:00
Markus F.X.J. Oberhumer
2162a01848 Enter 2003.
committer: mfx <mfx> 1042478199 +0000
2003-01-13 17:16:39 +00:00
Markus F.X.J. Oberhumer
f66d8f98c9 Changed year to 2002.
committer: mfx <mfx> 1036971635 +0000
2002-11-10 23:40:35 +00:00
John Reiser
40fddf1715 Put upx stub loader at high end of ELF output file on linux,
and allow for block-by-block specification of filter and parameters.
	linker.cpp linker.h mem.cpp mem.h p_elf.h
	p_lx_elf.cpp p_lx_elf.h
	p_lx_exc.cpp p_lx_exc.h
	p_lx_sh.cpp  p_lx_sh.h
	p_unix.cpp p_unix.h
	packer.cpp packer.h
	stub/fold_elf86.asm stub/fold_exec86.asm stub/fold_sh86.asm
	stub/l_lx_elf.c  stub/l_lx_elf86.asm  stub/l_lx_elf86.lds
	stub/l_lx_exec.c stub/l_lx_exec86.asm stub/l_lx_exec86.lds
	stub/l_lx_sh.c   stub/l_lx_sh86.asm   stub/l_lx_sh86.lds
	stub/linux.hh

committer: jreiser <jreiser> 981084316 +0000
2001-02-02 03:25:16 +00:00
John Reiser
df9db96bd1 filters for unix(linux)
Modified Files:
	filteri.cpp filter/ctojr.h linker.cpp linker.h mem.cpp mem.h
	p_lx_elf.cpp p_lx_elf.h
	p_lx_exc.cpp p_lx_exc.h
	p_lx_sh.cpp  p_lx_sh.h
	p_unix.cpp packer.cpp packer.h packhead.cpp
	stub/Makefile    stub/macros.ash
	stub/l_lx_elf.c  stub/l_lx_elf86.asm  stub/l_lx_elf86.lds
	stub/l_lx_exec.c stub/l_lx_exec86.asm stub/l_lx_exec86.lds
	                 stub/l_lx_sh86.asm   stub/l_lx_sh86.lds
Added Files:
	filter/ctok.h
	stub/fold_elf86.asm stub/fold_exec86.asm stub/fold_sh86.asm

committer: jreiser <jreiser> 979796725 +0000
2001-01-18 05:45:25 +00:00
Markus F.X.J. Oberhumer
47168972da Added class BeLinker.
committer: mfx <mfx> 978797683 +0000
2001-01-06 16:14:43 +00:00
Markus F.X.J. Oberhumer
f96955b9f0 Updated my email address.
committer: mfx <mfx> 978625825 +0000
2001-01-04 16:30:25 +00:00
Markus F.X.J. Oberhumer
aa540f85fa Big merge of my working tree: Added options `--all-methods', new
Packer::getCompressionMethods(), improved Packer::compressWithFilters().

committer: mfx <mfx> 978449945 +0000
2001-01-02 15:39:05 +00:00
Markus F.X.J. Oberhumer
abc15a398c Updated the file headers.
committer: mfx <mfx> 974118160 +0000
2000-11-13 12:22:40 +00:00
László Molnár
bd436acb4d Added safety check for short jumps.
committer: ml1050 <ml1050> 969315442 +0000
2000-09-18 22:17:22 +00:00