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:
+27
-27
@@ -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
|
||||
|
||||
+13
-13
@@ -8,9 +8,9 @@ Linker script and memory map
|
||||
|
||||
0x0000000000008040 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x0000000000008040 0xac4
|
||||
.text 0x0000000000008040 0xadc
|
||||
*(.text)
|
||||
.text 0x0000000000008040 0x320 tmp/arm.v4a-linux.elf-fold.o
|
||||
.text 0x0000000000008040 0x338 tmp/arm.v4a-linux.elf-fold.o
|
||||
0x0000000000008250 my_bkpt
|
||||
0x0000000000008258 exit
|
||||
0x000000000000825c read
|
||||
@@ -24,18 +24,18 @@ Linker script and memory map
|
||||
0x000000000000829c munmap
|
||||
0x00000000000082a4 Pprotect
|
||||
0x00000000000082a4 mprotect
|
||||
0x00000000000082c0 __clear_cache
|
||||
0x00000000000082cc mmap
|
||||
0x00000000000082e4 get_sys_munmap
|
||||
0x00000000000082ec mmap_privanon
|
||||
0x0000000000008304 __udivsi3
|
||||
0x0000000000008304 div10
|
||||
.text 0x0000000000008360 0x7a4 tmp/arm.v4a-linux.elf-main.o
|
||||
0x0000000000008380 get_page_mask
|
||||
0x00000000000089d0 upx_main
|
||||
0x00000000000082bc mmap
|
||||
0x00000000000082f0 __clear_cache
|
||||
0x00000000000082fc get_sys_munmap
|
||||
0x0000000000008304 mmap_privanon
|
||||
0x000000000000831c __udivsi3
|
||||
0x000000000000831c div10
|
||||
.text 0x0000000000008378 0x7a4 tmp/arm.v4a-linux.elf-main.o
|
||||
0x0000000000008398 get_page_mask
|
||||
0x00000000000089e8 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000008b04 0x0 tmp/arm.v4a-linux.elf-fold.o
|
||||
.data 0x0000000000008b04 0x0 tmp/arm.v4a-linux.elf-main.o
|
||||
.data 0x0000000000008b1c 0x0 tmp/arm.v4a-linux.elf-fold.o
|
||||
.data 0x0000000000008b1c 0x0 tmp/arm.v4a-linux.elf-main.o
|
||||
|
||||
.data
|
||||
LOAD tmp/arm.v4a-linux.elf-fold.o
|
||||
|
||||
+16
-16
@@ -9,17 +9,17 @@ Linker script and memory map
|
||||
TARGET(elf32-littlearm)
|
||||
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x0000000000008080 0xb60
|
||||
.text 0x0000000000008080 0xb84
|
||||
*(.text)
|
||||
.text 0x0000000000008080 0x3c0 tmp/arm.v5a-linux.elf-fold.o
|
||||
.text 0x0000000000008080 0x3e4 tmp/arm.v5a-linux.elf-fold.o
|
||||
0x0000000000008348 munmap
|
||||
0x00000000000083c4 get_sys_munmap
|
||||
0x00000000000083e8 get_sys_munmap
|
||||
0x000000000000830c getpid
|
||||
0x0000000000008334 readlink
|
||||
0x00000000000083e4 __udivsi3
|
||||
0x00000000000083a0 mmap
|
||||
0x0000000000008384 __clear_cache
|
||||
0x00000000000083cc mmap_privanon
|
||||
0x0000000000008408 __udivsi3
|
||||
0x0000000000008380 mmap
|
||||
0x00000000000083cc __clear_cache
|
||||
0x00000000000083f0 mmap_privanon
|
||||
0x00000000000082bc write
|
||||
0x00000000000082a8 read
|
||||
0x00000000000082f8 unlink
|
||||
@@ -28,21 +28,21 @@ TARGET(elf32-littlearm)
|
||||
0x0000000000008298 exit
|
||||
0x0000000000008320 brk
|
||||
0x00000000000082d0 open
|
||||
0x00000000000083e4 div10
|
||||
0x0000000000008408 div10
|
||||
0x000000000000835c mprotect
|
||||
0x00000000000082e4 close
|
||||
.text 0x0000000000008440 0x7a0 tmp/armel-linux.elf-main.o
|
||||
0x0000000000008460 get_page_mask
|
||||
0x0000000000008aac upx_main
|
||||
.text 0x0000000000008464 0x7a0 tmp/armel-linux.elf-main.o
|
||||
0x0000000000008484 get_page_mask
|
||||
0x0000000000008ad0 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000008be0 0x0 tmp/arm.v5a-linux.elf-fold.o
|
||||
.data 0x0000000000008be0 0x0 tmp/armel-linux.elf-main.o
|
||||
.data 0x0000000000008c04 0x0 tmp/arm.v5a-linux.elf-fold.o
|
||||
.data 0x0000000000008c04 0x0 tmp/armel-linux.elf-main.o
|
||||
|
||||
.data
|
||||
|
||||
.bss 0x0000000000008be0 0x0
|
||||
.bss 0x0000000000008be0 0x0 tmp/arm.v5a-linux.elf-fold.o
|
||||
.bss 0x0000000000008be0 0x0 tmp/armel-linux.elf-main.o
|
||||
.bss 0x0000000000008c04 0x0
|
||||
.bss 0x0000000000008c04 0x0 tmp/arm.v5a-linux.elf-fold.o
|
||||
.bss 0x0000000000008c04 0x0 tmp/armel-linux.elf-main.o
|
||||
LOAD tmp/arm.v5a-linux.elf-fold.o
|
||||
LOAD tmp/armel-linux.elf-main.o
|
||||
OUTPUT(tmp/arm.v5a-linux.elf-fold.bin elf32-littlearm)
|
||||
|
||||
+19
-19
@@ -8,9 +8,9 @@ Linker script and memory map
|
||||
|
||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x00000000001000bc 0xa28
|
||||
.text 0x00000000001000bc 0xa34
|
||||
*(.text)
|
||||
.text 0x00000000001000bc 0x274 tmp/arm64-linux.elf-fold.o
|
||||
.text 0x00000000001000bc 0x280 tmp/arm64-linux.elf-fold.o
|
||||
0x0000000000100258 my_bkpt
|
||||
0x0000000000100260 exit
|
||||
0x0000000000100268 read
|
||||
@@ -23,30 +23,30 @@ Linker script and memory map
|
||||
0x00000000001002b0 mprotect
|
||||
0x00000000001002c8 mmap_privanon
|
||||
0x00000000001002d8 mmap
|
||||
0x00000000001002e4 unlink
|
||||
0x00000000001002f8 readlink
|
||||
0x0000000000100300 open
|
||||
0x000000000010031c __clear_cache
|
||||
.text 0x0000000000100330 0x7b4 tmp/arm64-linux.elf-main.o
|
||||
0x000000000010097c upx_main
|
||||
0x00000000001002f0 unlink
|
||||
0x0000000000100304 readlink
|
||||
0x000000000010030c open
|
||||
0x0000000000100328 __clear_cache
|
||||
.text 0x000000000010033c 0x7b4 tmp/arm64-linux.elf-main.o
|
||||
0x0000000000100988 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000100ae4 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100ae4 0x0 tmp/arm64-linux.elf-main.o
|
||||
.data 0x0000000000100af0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100af0 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
.iplt 0x0000000000100ae4 0x0
|
||||
.iplt 0x0000000000100ae4 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.iplt 0x0000000000100af0 0x0
|
||||
.iplt 0x0000000000100af0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.rela.dyn 0x0000000000100ae8 0x0
|
||||
.rela.iplt 0x0000000000100ae8 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.rela.dyn 0x0000000000100af0 0x0
|
||||
.rela.iplt 0x0000000000100af0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.data
|
||||
LOAD tmp/arm64-linux.elf-fold.o
|
||||
LOAD tmp/arm64-linux.elf-main.o
|
||||
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
|
||||
|
||||
.igot.plt 0x0000000000100ae8 0x0
|
||||
.igot.plt 0x0000000000100ae8 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.igot.plt 0x0000000000100af0 0x0
|
||||
.igot.plt 0x0000000000100af0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.bss 0x0000000000100ae4 0x0
|
||||
.bss 0x0000000000100ae4 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100ae4 0x0 tmp/arm64-linux.elf-main.o
|
||||
.bss 0x0000000000100af0 0x0
|
||||
.bss 0x0000000000100af0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100af0 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
+16
-16
@@ -9,17 +9,17 @@ Linker script and memory map
|
||||
TARGET(elf32-bigarm)
|
||||
0x0000000000008080 . = ((0x8000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x0000000000008080 0xac4
|
||||
.text 0x0000000000008080 0xadc
|
||||
*(.text)
|
||||
.text 0x0000000000008080 0x320 tmp/armeb.v4a-linux.elf-fold.o
|
||||
.text 0x0000000000008080 0x338 tmp/armeb.v4a-linux.elf-fold.o
|
||||
0x00000000000082dc munmap
|
||||
0x0000000000008324 get_sys_munmap
|
||||
0x000000000000833c get_sys_munmap
|
||||
0x00000000000082c4 getpid
|
||||
0x00000000000082d4 readlink
|
||||
0x0000000000008344 __udivsi3
|
||||
0x000000000000830c mmap
|
||||
0x0000000000008300 __clear_cache
|
||||
0x000000000000832c mmap_privanon
|
||||
0x000000000000835c __udivsi3
|
||||
0x00000000000082fc mmap
|
||||
0x0000000000008330 __clear_cache
|
||||
0x0000000000008344 mmap_privanon
|
||||
0x00000000000082a4 write
|
||||
0x000000000000829c read
|
||||
0x00000000000082bc unlink
|
||||
@@ -28,21 +28,21 @@ TARGET(elf32-bigarm)
|
||||
0x0000000000008298 exit
|
||||
0x00000000000082cc brk
|
||||
0x00000000000082ac open
|
||||
0x0000000000008344 div10
|
||||
0x000000000000835c div10
|
||||
0x00000000000082e4 mprotect
|
||||
0x00000000000082b4 close
|
||||
.text 0x00000000000083a0 0x7a4 tmp/armeb.v4a-linux.elf-main.o
|
||||
0x00000000000083c0 get_page_mask
|
||||
0x0000000000008a10 upx_main
|
||||
.text 0x00000000000083b8 0x7a4 tmp/armeb.v4a-linux.elf-main.o
|
||||
0x00000000000083d8 get_page_mask
|
||||
0x0000000000008a28 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000008b44 0x0 tmp/armeb.v4a-linux.elf-fold.o
|
||||
.data 0x0000000000008b44 0x0 tmp/armeb.v4a-linux.elf-main.o
|
||||
.data 0x0000000000008b5c 0x0 tmp/armeb.v4a-linux.elf-fold.o
|
||||
.data 0x0000000000008b5c 0x0 tmp/armeb.v4a-linux.elf-main.o
|
||||
|
||||
.data
|
||||
|
||||
.bss 0x0000000000008b44 0x0
|
||||
.bss 0x0000000000008b44 0x0 tmp/armeb.v4a-linux.elf-fold.o
|
||||
.bss 0x0000000000008b44 0x0 tmp/armeb.v4a-linux.elf-main.o
|
||||
.bss 0x0000000000008b5c 0x0
|
||||
.bss 0x0000000000008b5c 0x0 tmp/armeb.v4a-linux.elf-fold.o
|
||||
.bss 0x0000000000008b5c 0x0 tmp/armeb.v4a-linux.elf-main.o
|
||||
LOAD tmp/armeb.v4a-linux.elf-fold.o
|
||||
LOAD tmp/armeb.v4a-linux.elf-main.o
|
||||
OUTPUT(tmp/armeb.v4a-linux.elf-fold.bin elf32-bigarm)
|
||||
|
||||
Reference in New Issue
Block a user