amd64 implements --is_ptinterp

https://github.com/upx/upx/issues/121
	modified:   ../.github/travis_testsuite_1.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-main.c
	also .h, .map, .bin.dump
This commit is contained in:
John Reiser
2017-10-18 13:10:49 -07:00
parent d149092ac0
commit ee008acfbd
15 changed files with 895 additions and 893 deletions
+3 -3
View File
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016eb 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003a 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000e1 0000000000000000 0000000000000000 00001739 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000e4 0000000000000000 0000000000000000 00001739 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
@@ -32,7 +32,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000002 R_X86_64_PC32 ELFMAINZ+0x00000000000000c4
0000000000000002 R_X86_64_PC32 ELFMAINZ+0x00000000000000c7
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
@@ -59,4 +59,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000000000000dd R_X86_64_32 O_BINFO
00000000000000e0 R_X86_64_32 O_BINFO
+14 -14
View File
@@ -10,21 +10,21 @@ Linker script and memory map
.text 0x00000000001000bc 0x7b0
*(.text)
.text 0x00000000001000bc 0x18e tmp/amd64-linux.elf-fold.o
0x000000000010023a munmap
0x0000000000100213 mmap
0x0000000000100242 write
0x0000000000100246 read
0x000000000010022a exit
0x000000000010022e brk
0x0000000000100236 open
0x000000000010023e mprotect
0x0000000000100232 close
*fill* 0x000000000010024a 0x2 00
.text 0x000000000010024c 0x61d tmp/amd64-linux.elf-main.o
0x0000000000100721 upx_main
.text 0x00000000001000bc 0x186 tmp/amd64-linux.elf-fold.o
0x0000000000100232 munmap
0x000000000010020b mmap
0x000000000010023a write
0x000000000010023e read
0x0000000000100222 exit
0x0000000000100226 brk
0x000000000010022e open
0x0000000000100236 mprotect
0x000000000010022a close
*fill* 0x0000000000100242 0x2 00
.text 0x0000000000100244 0x627 tmp/amd64-linux.elf-main.o
0x0000000000100723 upx_main
*(.data)
*fill* 0x0000000000100869 0x3 00
*fill* 0x000000000010086b 0x1 00
.data 0x000000000010086c 0x0 tmp/amd64-linux.elf-fold.o
.data 0x000000000010086c 0x0 tmp/amd64-linux.elf-main.o
+10 -10
View File
@@ -8,7 +8,7 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x930
.text 0x00000000001000bc 0x934
*(.text)
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100228 my_bkpt
@@ -26,14 +26,14 @@ Linker script and memory map
0x00000000001002bc readlink
0x00000000001002c4 open
0x00000000001002e0 __clear_cache
.text 0x00000000001002f4 0x6f8 tmp/arm64-linux.elf-main.o
0x0000000000100884 upx_main
.text 0x00000000001002f4 0x6fc tmp/arm64-linux.elf-main.o
0x0000000000100888 upx_main
*(.data)
.data 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009ec 0x0 tmp/arm64-linux.elf-main.o
.data 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009f0 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x00000000001009ec 0x0
.iplt 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.iplt 0x00000000001009f0 0x0
.iplt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009f0 0x0
.rela.iplt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
@@ -46,6 +46,6 @@ OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x00000000001009f0 0x0
.igot.plt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009ec 0x0
.bss 0x00000000001009ec 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009ec 0x0 tmp/arm64-linux.elf-main.o
.bss 0x00000000001009f0 0x0
.bss 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009f0 0x0 tmp/arm64-linux.elf-main.o
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa84
.text 0x00000000001000bc 0xa90
*(.text)
.text 0x00000000001000bc 0x300 tmp/powerpc64-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpc)
0x00000000001003a4 mprotect
0x00000000001003ac munmap
0x00000000001003b4 my_bkpt
.text 0x00000000001003bc 0x784 tmp/powerpc64-linux.elf-main.o
.text 0x00000000001003bc 0x790 tmp/powerpc64-linux.elf-main.o
*(.data)
.data 0x0000000000100b40 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b40 0x0 tmp/powerpc64-linux.elf-main.o
.data 0x0000000000100b4c 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b4c 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100b40 0xa4
.sfpr 0x0000000000100b40 0xa4 linker stubs
0x0000000000100b40 _savegpr0_14
0x0000000000100b68 _savegpr0_24
0x0000000000100b78 _savegpr0_28
0x0000000000100b90 _restgpr0_14
0x0000000000100bb8 _restgpr0_24
0x0000000000100bc8 _restgpr0_28
.sfpr 0x0000000000100b4c 0xa4
.sfpr 0x0000000000100b4c 0xa4 linker stubs
0x0000000000100b4c _savegpr0_14
0x0000000000100b74 _savegpr0_24
0x0000000000100b84 _savegpr0_28
0x0000000000100b9c _restgpr0_14
0x0000000000100bc4 _restgpr0_24
0x0000000000100bd4 _restgpr0_28
.glink 0x0000000000100be8 0x0
.glink 0x0000000000100be8 0x0 linker stubs
.glink 0x0000000000100bf0 0x0
.glink 0x0000000000100bf0 0x0 linker stubs
.eh_frame 0x0000000000100be4 0x0
.eh_frame 0x0000000000100be4 0x0 linker stubs
.eh_frame 0x0000000000100bf0 0x0
.eh_frame 0x0000000000100bf0 0x0 linker stubs
.rela.dyn 0x0000000000100be8 0x0
.rela.iplt 0x0000000000100be8 0x0 linker stubs
.rela.dyn 0x0000000000100bf0 0x0
.rela.iplt 0x0000000000100bf0 0x0 linker stubs
.data
LOAD tmp/powerpc64-linux.elf-fold.o
LOAD tmp/powerpc64-linux.elf-main.o
OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.branch_lt 0x0000000000100be8 0x0
.branch_lt 0x0000000000100be8 0x0 linker stubs
.branch_lt 0x0000000000100bf0 0x0
.branch_lt 0x0000000000100bf0 0x0 linker stubs
.toc 0x0000000000100be8 0x0
.toc 0x0000000000100be8 0x0 tmp/powerpc64-linux.elf-main.o
.toc 0x0000000000100bf0 0x0
.toc 0x0000000000100bf0 0x0 tmp/powerpc64-linux.elf-main.o
.opd 0x0000000000100be8 0x58
.opd 0x0000000000100be8 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100c28 upx_main
.opd 0x0000000000100bf0 0x58
.opd 0x0000000000100bf0 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100c30 upx_main
.iplt 0x0000000000100c40 0x0
.iplt 0x0000000000100c40 0x0 linker stubs
.iplt 0x0000000000100c48 0x0
.iplt 0x0000000000100c48 0x0 linker stubs
.bss 0x0000000000100c40 0x0
.bss 0x0000000000100c40 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100c40 0x0 tmp/powerpc64-linux.elf-main.o
.bss 0x0000000000100c48 0x0
.bss 0x0000000000100c48 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100c48 0x0 tmp/powerpc64-linux.elf-main.o
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa80
.text 0x00000000001000bc 0xa8c
*(.text)
.text 0x00000000001000bc 0x300 tmp/powerpc64le-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpcle)
0x00000000001003a4 mprotect
0x00000000001003ac munmap
0x00000000001003b4 my_bkpt
.text 0x00000000001003bc 0x780 tmp/powerpc64le-linux.elf-main.o
.text 0x00000000001003bc 0x78c tmp/powerpc64le-linux.elf-main.o
*(.data)
.data 0x0000000000100b3c 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100b3c 0x0 tmp/powerpc64le-linux.elf-main.o
.data 0x0000000000100b48 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100b48 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x0000000000100b3c 0xa4
.sfpr 0x0000000000100b3c 0xa4 linker stubs
0x0000000000100b3c _savegpr0_14
0x0000000000100b64 _savegpr0_24
0x0000000000100b74 _savegpr0_28
0x0000000000100b8c _restgpr0_14
0x0000000000100bb4 _restgpr0_24
0x0000000000100bc4 _restgpr0_28
.sfpr 0x0000000000100b48 0xa4
.sfpr 0x0000000000100b48 0xa4 linker stubs
0x0000000000100b48 _savegpr0_14
0x0000000000100b70 _savegpr0_24
0x0000000000100b80 _savegpr0_28
0x0000000000100b98 _restgpr0_14
0x0000000000100bc0 _restgpr0_24
0x0000000000100bd0 _restgpr0_28
.glink 0x0000000000100be0 0x0
.glink 0x0000000000100be0 0x0 linker stubs
.glink 0x0000000000100bf0 0x0
.glink 0x0000000000100bf0 0x0 linker stubs
.eh_frame 0x0000000000100be0 0x0
.eh_frame 0x0000000000100be0 0x0 linker stubs
.eh_frame 0x0000000000100bec 0x0
.eh_frame 0x0000000000100bec 0x0 linker stubs
.rela.dyn 0x0000000000100be0 0x0
.rela.iplt 0x0000000000100be0 0x0 linker stubs
.rela.dyn 0x0000000000100bf0 0x0
.rela.iplt 0x0000000000100bf0 0x0 linker stubs
.data
LOAD tmp/powerpc64le-linux.elf-fold.o
LOAD tmp/powerpc64le-linux.elf-main.o
OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.branch_lt 0x0000000000100be0 0x0
.branch_lt 0x0000000000100be0 0x0 linker stubs
.branch_lt 0x0000000000100bf0 0x0
.branch_lt 0x0000000000100bf0 0x0 linker stubs
.toc 0x0000000000100be0 0x0
.toc 0x0000000000100be0 0x0 tmp/powerpc64le-linux.elf-main.o
.toc 0x0000000000100bf0 0x0
.toc 0x0000000000100bf0 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100be0 0x58
.opd 0x0000000000100be0 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100c20 upx_main
.opd 0x0000000000100bf0 0x58
.opd 0x0000000000100bf0 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100c30 upx_main
.iplt 0x0000000000100c38 0x0
.iplt 0x0000000000100c38 0x0 linker stubs
.iplt 0x0000000000100c48 0x0
.iplt 0x0000000000100c48 0x0 linker stubs
.bss 0x0000000000100c38 0x0
.bss 0x0000000000100c38 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100c38 0x0 tmp/powerpc64le-linux.elf-main.o
.bss 0x0000000000100c48 0x0
.bss 0x0000000000100c48 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100c48 0x0 tmp/powerpc64le-linux.elf-main.o