Markus F.X.J. Oberhumer
9131d5216f
Welcome 2021.
2021-01-01 20:39:22 +01:00
John Reiser
fd2939e18d
i386 works: ELF layout for page holes
...
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/src/include/linux.h
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
2020-05-15 16:05:26 -07:00
John Reiser
80c27e0822
arm.v4a works: ELF layout for page holes
...
modified: p_lx_elf.cpp
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/arm.v4a-linux.elf-entry.h
modified: stub/arm.v4a-linux.elf-fold.h
modified: stub/arm.v5a-linux.elf-entry.h
modified: stub/arm.v5a-linux.elf-fold.h
modified: stub/armeb.v4a-linux.elf-entry.h
modified: stub/armeb.v4a-linux.elf-fold.h
modified: stub/i386-linux.elf-fold.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/tmp/arm.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v4a-linux.elf-fold.map
modified: stub/tmp/arm.v5a-linux.elf-entry.bin.dump
modified: stub/tmp/arm.v5a-linux.elf-fold.map
modified: stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
modified: stub/tmp/armeb.v4a-linux.elf-fold.map
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/mips.r3000-linux.elf-fold.map
modified: stub/tmp/mipsel.r3000-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
2020-05-14 15:10:40 -07:00
John Reiser
936013f60c
Decompression escape hatch for ELF can require a new page.
...
If not enough room on last page of .text, and ElfXX_Ehdr not PF_X,
then the escape hatch must use a new page.
https://github.com/upx/upx/issues/308
modified: ../.github/travis_testsuite_1-expected_sha256sums.sh
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
Plus stub/*-linux.elf-fold.h and stub/tmp/*-linux.elf-fold.map
2020-01-19 13:25:55 -08:00
Markus F.X.J. Oberhumer
d1174385ef
Welcome 2020.
2020-01-08 04:13:28 +01:00
Markus F.X.J. Oberhumer
3667fa4e44
Welcome 2019.
2019-02-15 11:04:09 +01:00
John Reiser
b97688d119
Stub updates AT_PHDR for 32-bit libmusl, particularly -fPIE
...
https://github.com/upx/upx/issues/200
modified: stub/src/i386-linux.elf-main.c
also *.elf-fold.h, *.elf-fold.map for arm, armeb, i386, mips, mipsel, powerpc
modified: ../.github/travis_testsuite_1.sh
2018-08-04 18:26:02 -07:00
Markus F.X.J. Oberhumer
021c8db58a
Welcome 2018.
2018-01-19 10:55:32 +01:00
John Reiser
9e8de4abe5
i386: new stub strategy to avoid problems with early mmap layout
...
The stub occupies the same region that execve() would create
for the original progam. The stub copies everything to a new area,
erases the original region, replaces it with the de-compressed
program, and erases the copy of itself via the escape hatch.
The copy is inexpensive via mmap() of /proc/self/exe.
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/i386-linux.elf-main.c
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_lx_interp.cpp
modified: p_lx_interp.h
modified: p_lx_sh.cpp
modified: p_lx_sh.h
modified: p_mach.cpp
modified: p_mach.h
modified: p_unix.cpp
modified: p_unix.h
modified: p_vmlinx.cpp
plus .h, .map, .dump
2017-10-01 15:56:34 -07:00
John Reiser
08627e9df5
Fix some AT_PHDR problems, at least on x86*.
...
modified: stub/src/amd64-linux.elf-main.c
modified: stub/src/i386-linux.elf-main.c
modified: ../.github/travis_testsuite_1.sh
plus many *.elf-fold.h and *.elf-fold.map
2017-09-18 19:54:27 -07:00
John Reiser
3bf387a2d4
PowerPC stub unified with i386; including escape hatch [munmap all extras]
...
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-main.c
modified: ../.github/travis_testsuite_1.sh
{arm.*,i386,mips*.r3000,powerpc}-linux.elf-fold.{h,map}
powerpc-*-entry.*
2017-06-24 18:37:16 -07:00
John Reiser
b2115a4162
i386: clear the stack when leaving (for buggy programs); align esp to 0 mod 8
...
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: ../.github/travis_testsuite_1.sh
modified: stub/i386-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/tmp/i386-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
2017-06-16 21:36:21 -07:00
John Reiser
d67bf16a08
i386: Separate PROT_EXEC and PROT_WRITE
...
Also affects some arm and mips (via sharing i386-linux.elf-main.c)
modified: i386-linux.elf-entry.S
modified: i386-linux.elf-main.c
also .h, .map, .dump
2017-06-16 08:17:44 -07:00
John Reiser
8f572e5fe6
Rewrite stubs for 32-bit arm and i386 for -pie (Position-Independent Executable)
...
Coming next: MIPS and PowerPC.
modified: p_lx_elf.cpp
modified: stub/src/i386-linux.elf-main.c
modified: stub/src/arm.v4a-linux.elf-entry.S
modified: stub/src/arm.v4a-linux.elf-fold.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: ../.github/travis_testsuite_1.sh
also associated *.h *.map *.dump files
2017-06-14 09:57:19 -07:00
John Reiser
2d3bd0809a
i386-linux.elf-fold.S avoids mmap() into stack
...
modified: stub/src/i386-linux.elf-fold.S
modified: ../.github/travis_testsuite_1.sh
modified: stub/i386-linux.elf-fold.h
modified: stub/tmp/i386-linux.elf-fold.map
2017-06-09 14:38:08 -07:00
John Reiser
360b94dd6c
i386-linux ET_EXEC working
...
modified: stub/src/i386-linux.elf-fold.S
modified: stub/i386-linux.elf-fold.h
modified: stub/tmp/i386-linux.elf-fold.map
2017-04-07 16:08:13 -07:00
John Reiser
8524e73f59
Always a 1-page crumb for i386
...
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/i386-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/tmp/i386-linux.elf-entry.bin.dump
2017-04-07 11:17:01 -07:00
John Reiser
bdf08baebd
O_BINFO
...
modified: stub/amd64-darwin.macho-entry.h
modified: stub/amd64-linux.elf-entry.h
modified: stub/amd64-linux.elf-fold.h
modified: stub/arm64-linux.elf-entry.h
modified: stub/i386-bsd.elf-entry.h
modified: stub/i386-darwin.macho-entry.h
modified: stub/i386-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/i386-netbsd.elf-entry.h
modified: stub/mips.r3000-linux.elf-fold.h
modified: stub/mipsel.r3000-linux.elf-fold.h
modified: stub/powerpc-darwin.macho-entry.h
modified: stub/powerpc-linux.elf-entry.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64le-darwin.macho-entry.h
modified: stub/powerpc64le-linux.elf-entry.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-darwin.macho-entry.S
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/arch/powerpc/32/ppc_regs.h
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/i386-bsd.elf-entry.S
modified: stub/src/i386-darwin.macho-entry.S
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/powerpc-darwin.macho-entry.S
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-main.c
modified: stub/src/powerpc64le-darwin.macho-entry.S
modified: stub/src/powerpc64le-linux.elf-entry.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-main.c
modified: stub/tmp/amd64-darwin.macho-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/amd64-linux.elf-fold.map
modified: stub/tmp/arm64-linux.elf-entry.bin.dump
modified: stub/tmp/i386-bsd.elf-entry.bin.dump
modified: stub/tmp/i386-darwin.macho-entry.bin.dump
modified: stub/tmp/i386-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/i386-netbsd.elf-entry.bin.dump
modified: stub/tmp/powerpc-darwin.macho-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64le-darwin.macho-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-entry.bin.dump
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2017-04-06 14:22:47 -07:00
John Reiser
a59005e836
Elf propagates NX via PT_GNU_STACK (except MIPS stub is too difficult for now)
...
https://github.com/upx/upx/issues/81
modified: ../.github/travis_testsuite_1.sh
modified: p_elf_enum.h
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: stub/amd64-linux.elf-entry.h
modified: stub/i386-linux.elf-fold.h
modified: stub/powerpc-linux.elf-fold.h
modified: stub/powerpc64le-linux.elf-fold.h
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/i386-linux.elf-fold.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64le-linux.elf-fold.S
modified: stub/tmp/amd64-linux.elf-entry.bin.dump
modified: stub/tmp/i386-linux.elf-fold.map
modified: stub/tmp/powerpc-linux.elf-fold.map
modified: stub/tmp/powerpc64le-linux.elf-fold.map
2017-04-03 20:25:57 -07:00
Markus F.X.J. Oberhumer
c4da5e81fa
Welcome 2017.
2017-01-03 12:02:07 +01:00
Markus F.X.J. Oberhumer
f7554374ab
Update email address.
2016-09-28 12:25:01 +02:00
Markus F.X.J. Oberhumer
96d9968db5
Welcome 2016.
2016-09-22 14:07:14 +02: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
John Reiser
e84abbdc82
ARM __clear_cache() has bugs
...
Linux hostname 3.0.8-482645-user #1 SMP PREEMPT Mon Apr 30 19:43:45 KST 2012 armv7l GNU/Linux
Processor : ARMv7 Processor rev 3 (v7l)
processor : 0
BogoMIPS : 597.12
processor : 1
BogoMIPS : 597.12
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc09
CPU revision : 3
Hardware : Espresso10
Revision : 000a
2013-06-09 13:03:06 -07:00
John Reiser
5438a4837b
more AT_PHDR trouble
2013-02-15 16:32:51 -08:00
Markus F.X.J. Oberhumer
87a368a857
Welcome 2013.
2013-02-12 10:14:03 +01:00
John Reiser
8fafa78796
sync stubs
2013-01-31 12:33:16 -08:00
Markus F.X.J. Oberhumer
43ce34d547
Welcome 2012.
2012-01-01 22:35:11 +01:00
John Reiser
6256381dc3
mmap_privanon() in stub for arm,i386,mips eases QNX
2011-10-16 11:39:46 -07:00
John Reiser
b247b051ea
QNX on armel (experimental)
2011-10-15 19:49:37 -07:00
Markus F.X.J. Oberhumer
9bf2b79d9e
Enter 2011.
2011-01-03 08:49:23 +01:00
John Reiser
dfc2efe8a6
make_hatch_arm() needs sys_munmap; also fix ARM div10.
2010-11-15 11:51:46 -08:00
John Reiser
5336c51199
Fix conflict between VDSO and unfolded decompressor for ET_DYN
...
(-fPIE) with unlimited stack on Linux-2.6.34 et al.
2010-07-16 20:58:52 -07:00
John Reiser
f03f42ca4d
Linux preserve /proc/self/exe; --unmap-all-pages option
2010-02-28 15:58:08 -08:00
Markus F.X.J. Oberhumer
6bc3197721
Enter 2010.
2010-02-06 17:15:49 +01:00
John Reiser
3664d86430
i386-linux.elf-fold fix compressed size for ET_DYN
2009-02-12 12:41:10 -08:00
Markus F.X.J. Oberhumer
5ed689ceb0
Enter 2009.
2008-12-31 17:07:18 +01:00
John Reiser
1307f66494
stub/i386-*.*-fold.S: allow 0==argc
2008-05-15 09:05:20 -07:00
Markus F.X.J. Oberhumer
6c8bb3a22e
Rebuild all stubs with new formatting - no binary changes.
2008-04-04 17:21:24 +02: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
a428eddf93
catch up automatically-generated files
2007-05-16 13:51:44 -07:00
John Reiser
81928d4ab1
mipsel stub escape hatch for munmap
2007-05-10 13:13:11 -07:00
John Reiser
3ebf93e03d
mipsel syscall read+write of same register
2007-05-09 22:17:09 -07:00
John Reiser
59e4032f1f
mipsel stub syscall registers
2007-05-08 13:33:00 -07:00
Markus F.X.J. Oberhumer
6e5f5732b5
brandelf.py: do not write "Linux" any longer as newer ldd's (e.g.
...
from glibc-common-2.5-10.fc6) do not like this.
2007-01-31 05:58:17 +01:00
Markus F.X.J. Oberhumer
5e83596a1b
Enter 2007.
2007-01-14 13:08:58 +01:00
Markus F.X.J. Oberhumer
68f54a3247
Updated bin2h.py.
2006-11-23 02:23:39 +01:00
Markus F.X.J. Oberhumer
989d10a3e1
Rebuilt all stubs with new bin2h.py and --ident=auto-stub.
2006-11-21 03:36:48 +01:00