Elf64_Rela for shlib DT_INIT_ARRAY

Also allow PT_PHDR in shlibs.
Also page align lo end of mmap, like mprotect.
        https://github.com/upx/upx/issues/664
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/i386-linux.elf-so_main.c

	modified:   stub/src/amd64-linux.elf-so_fold.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
	modified:   stub/src/i386-linux.elf-so_fold.S

	modified:   stub/amd64-linux.elf-so_fold.h
	modified:   stub/arm.v4a-linux.elf-fold.h
	modified:   stub/arm.v4a-linux.elf-so_fold.h
	modified:   stub/arm.v5a-linux.elf-fold.h
	modified:   stub/arm.v5a-linux.elf-so_fold.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/arm64-linux.elf-so_fold.h
	modified:   stub/armeb.v4a-linux.elf-fold.h
	modified:   stub/i386-linux.elf-so_fold.h

	modified:   stub/tmp/amd64-linux.elf-so_fold.bin.dump
	modified:   stub/tmp/arm.v4a-linux.elf-fold.map
	modified:   stub/tmp/arm.v5a-linux.elf-fold.map
	modified:   stub/tmp/arm64-linux.elf-fold.map
	modified:   stub/tmp/armeb.v4a-linux.elf-fold.map

	modified:   stub/src/arch/mips/r3000/macros.ash
	modified:   ../.github/travis_testsuite_1-expected_sha256sums.sh
This commit is contained in:
John Reiser
2023-04-11 11:00:48 -07:00
parent 42902dabac
commit 7b2faf2016
25 changed files with 6465 additions and 6414 deletions
+27 -27
View File
@@ -2,19 +2,19 @@ file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 SO_MAIN 05d8 0 0 040 2**4 CONTENTS
1 EXP_HEAD 0dc 0 0 0618 2**0 CONTENTS
2 NRV2E 0e5 0 0 06f4 2**0 CONTENTS
3 NRV2D 0d7 0 0 07d9 2**0 CONTENTS
4 NRV2B 0c1 0 0 08b0 2**0 CONTENTS
5 SO_HEAD 01b 0 0 0971 2**0 CONTENTS
6 ptr_NEXT 0 0 0 098c 2**0 CONTENTS
7 SO_TAIL 071 0 0 098c 2**0 CONTENTS
8 LZMA_ELF00 064 0 0 09fd 2**0 CONTENTS
9 LZMA_DEC10 09f7 0 0 0a61 2**0 CONTENTS
10 LZMA_DEC20 09f7 0 0 01458 2**0 CONTENTS
11 LZMA_DEC30 018 0 0 01e4f 2**0 CONTENTS
12 EXP_TAIL 0e 0 0 01e67 2**0 CONTENTS
0 SO_MAIN 05f0 0 0 040 2**4 CONTENTS
1 EXP_HEAD 0dc 0 0 0630 2**0 CONTENTS
2 NRV2E 0e5 0 0 070c 2**0 CONTENTS
3 NRV2D 0d7 0 0 07f1 2**0 CONTENTS
4 NRV2B 0c1 0 0 08c8 2**0 CONTENTS
5 SO_HEAD 01b 0 0 0989 2**0 CONTENTS
6 ptr_NEXT 0 0 0 09a4 2**0 CONTENTS
7 SO_TAIL 081 0 0 09a4 2**0 CONTENTS
8 LZMA_ELF00 064 0 0 0a25 2**0 CONTENTS
9 LZMA_DEC10 09f7 0 0 0a89 2**0 CONTENTS
10 LZMA_DEC20 09f7 0 0 01480 2**0 CONTENTS
11 LZMA_DEC30 018 0 0 01e77 2**0 CONTENTS
12 EXP_TAIL 0e 0 0 01e8f 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d EXP_HEAD 0 EXP_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@@ -30,21 +30,21 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10
0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20
0000000000000000 g EXP_HEAD 0 f_expand
000000000000005a g SO_TAIL 0 munmap
000000000000006a g SO_TAIL 0 munmap
000000000000001c g SO_TAIL 0 memcpy
0000000000000031 g SO_TAIL 0 O_BINFO
0000000000000031 g SO_TAIL 0 mmap
0000000000000000 g F SO_TAIL 0 eof
0000000000000052 g SO_TAIL 0 write
0000000000000056 g SO_TAIL 0 read
0000000000000062 g SO_TAIL 0 write
0000000000000066 g SO_TAIL 0 read
0000000000000013 g SO_TAIL 0 memset
0000000000000011 g SO_TAIL 0 my_bkpt
000000000000005e g SO_TAIL 0 Pprotect
0000000000000043 g SO_TAIL 0 exit
000000000000004b g SO_TAIL 0 openat
000000000000005e g SO_TAIL 0 mprotect
0000000000000047 g SO_TAIL 0 close
0000000000000368 g F SO_MAIN 0270 upx_so_main
000000000000006e g SO_TAIL 0 Pprotect
0000000000000053 g SO_TAIL 0 exit
000000000000005b g SO_TAIL 0 openat
000000000000006e g SO_TAIL 0 mprotect
0000000000000057 g SO_TAIL 0 close
0000000000000368 g F SO_MAIN 0288 upx_so_main
RELOCATION RECORDS FOR [SO_MAIN]:
OFFSET TYPE VALUE
@@ -60,11 +60,11 @@ OFFSET TYPE VALUE
000000000000030d R_X86_64_PLT32 memcpy+0xfffffffffffffffc
000000000000032e R_X86_64_PLT32 mmap+0xfffffffffffffffc
000000000000033c R_X86_64_PLT32 memcpy+0xfffffffffffffffc
00000000000003e9 R_X86_64_PLT32 mmap+0xfffffffffffffffc
00000000000003fa R_X86_64_PLT32 memcpy+0xfffffffffffffffc
0000000000000427 R_X86_64_PLT32 Pprotect+0xfffffffffffffffc
0000000000000595 R_X86_64_PLT32 Pprotect+0xfffffffffffffffc
00000000000005ad R_X86_64_PLT32 munmap+0xfffffffffffffffc
0000000000000401 R_X86_64_PLT32 mmap+0xfffffffffffffffc
0000000000000412 R_X86_64_PLT32 memcpy+0xfffffffffffffffc
000000000000043f R_X86_64_PLT32 Pprotect+0xfffffffffffffffc
00000000000005ad R_X86_64_PLT32 Pprotect+0xfffffffffffffffc
00000000000005c5 R_X86_64_PLT32 munmap+0xfffffffffffffffc
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE