arm64: stub uses new strategy

modified:   p_lx_elf.cpp
	modified:   stub/src/powerpc64le-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-main.c
	also .h, .map, .bin.dump
This commit is contained in:
John Reiser
2017-10-10 14:51:03 -07:00
parent b37bc99330
commit 1522293be0
19 changed files with 1234 additions and 1790 deletions
+1 -2
View File
@@ -21,10 +21,9 @@ Linker script and memory map
0x000000000010023e mprotect
0x0000000000100232 close
*fill* 0x000000000010024a 0x2 00
.text 0x000000000010024c 0x5d5 tmp/amd64-linux.elf-main.o
.text 0x000000000010024c 0x5d8 tmp/amd64-linux.elf-main.o
0x00000000001006e0 upx_main
*(.data)
*fill* 0x0000000000100821 0x3 00
.data 0x0000000000100824 0x0 tmp/amd64-linux.elf-fold.o
.data 0x0000000000100824 0x0 tmp/amd64-linux.elf-main.o
+18 -30
View File
@@ -2,24 +2,22 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000044 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 ELFMAINXu 0000009c 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, RELOC, READONLY
2 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
3 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
4 NRV2E 00000128 0000000000000000 0000000000000000 00000120 2**0 CONTENTS, READONLY
5 NRV2D 0000011c 0000000000000000 0000000000000000 00000248 2**0 CONTENTS, READONLY
6 NRV2B 000000f0 0000000000000000 0000000000000000 00000364 2**0 CONTENTS, READONLY
7 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000454 2**0 CONTENTS, RELOC, READONLY
8 LZMA_DEC20 00000968 0000000000000000 0000000000000000 00000524 2**0 CONTENTS, READONLY
9 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000e8c 2**0 CONTENTS, READONLY
10 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001328 2**0 CONTENTS, READONLY
11 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001328 2**0 CONTENTS, READONLY
12 ELFMAINZ 00000004 0000000000000000 0000000000000000 00001366 2**0 CONTENTS, RELOC, READONLY
0 ELFMAINX 00000008 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
2 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
3 NRV2E 00000128 0000000000000000 0000000000000000 00000048 2**0 CONTENTS, READONLY
4 NRV2D 0000011c 0000000000000000 0000000000000000 00000170 2**0 CONTENTS, READONLY
5 NRV2B 000000f0 0000000000000000 0000000000000000 0000028c 2**0 CONTENTS, READONLY
6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 0000037c 2**0 CONTENTS, RELOC, READONLY
7 LZMA_DEC20 00000968 0000000000000000 0000000000000000 0000044c 2**0 CONTENTS, READONLY
8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db4 2**0 CONTENTS, READONLY
9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY
11 ELFMAINZ 00000150 0000000000000000 0000000000000000 00001290 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
0000000000000000 l d ELFMAINXu 0000000000000000 ELFMAINXu
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
0000000000000000 l d NRV2E 0000000000000000 NRV2E
@@ -28,13 +26,9 @@ SYMBOL TABLE:
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
0000000000000000 *UND* 0000000000000000 LENF
0000000000000000 *UND* 0000000000000000 CPR0
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
0000000000000000 *UND* 0000000000000000 MFLG
0000000000000000 *UND* 0000000000000000 ADRM
0000000000000014 g ELFMAINX 0000000000000000 _start
0000000000000004 g ELFMAINZ 0000000000000000 cpr0
0000000000000004 g ELFMAINX 0000000000000000 _start
0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32
0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32
0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32
@@ -44,14 +38,8 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 LENF
0000000000000004 R_AARCH64_ABS32 CPR0
0000000000000008 R_AARCH64_ABS32 MFLG
000000000000000c R_AARCH64_ABS64 ADRM
RELOCATION RECORDS FOR [ELFMAINXu]:
OFFSET TYPE VALUE
0000000000000024 R_AARCH64_CONDBR19 ELFMAINY
0000000000000000 R_AARCH64_ABS32 MFLG
0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x0000000000000104
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
@@ -59,4 +47,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 O_BINFO
000000000000014c R_AARCH64_ABS32 O_BINFO
+30 -30
View File
@@ -8,44 +8,44 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x904
.text 0x00000000001000bc 0x924
*(.text)
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100230 my_bkpt
0x0000000000100238 exit
0x0000000000100240 read
0x000000000010024c write
0x0000000000100258 close
0x0000000000100264 getpid
0x0000000000100270 brk
0x000000000010027c munmap
0x0000000000100288 mprotect
0x0000000000100294 mmap_privanon
0x00000000001002a4 mmap
0x00000000001002b0 unlink
0x00000000001002bc readlink
0x00000000001002c4 open
0x00000000001002e0 __clear_cache
.text 0x00000000001002f4 0x6cc tmp/arm64-linux.elf-main.o
0x00000000001007c4 upx_main
.text 0x00000000001000bc 0x230 tmp/arm64-linux.elf-fold.o
0x0000000000100220 my_bkpt
0x0000000000100228 exit
0x0000000000100230 read
0x000000000010023c write
0x0000000000100248 close
0x0000000000100254 getpid
0x0000000000100260 brk
0x000000000010026c munmap
0x0000000000100278 mprotect
0x0000000000100284 mmap_privanon
0x0000000000100294 mmap
0x00000000001002a0 unlink
0x00000000001002b4 readlink
0x00000000001002bc open
0x00000000001002d8 __clear_cache
.text 0x00000000001002ec 0x6f4 tmp/arm64-linux.elf-main.o
0x000000000010087c upx_main
*(.data)
.data 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009c0 0x0 tmp/arm64-linux.elf-main.o
.data 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x00000000001009e0 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x00000000001009c0 0x0
.iplt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.iplt 0x00000000001009e0 0x0
.iplt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009c0 0x0
.rela.iplt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x00000000001009e0 0x0
.rela.iplt 0x00000000001009e0 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 0x00000000001009c0 0x0
.igot.plt 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.igot.plt 0x00000000001009e0 0x0
.igot.plt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009c0 0x0
.bss 0x00000000001009c0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009c0 0x0 tmp/arm64-linux.elf-main.o
.bss 0x00000000001009e0 0x0
.bss 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x00000000001009e0 0x0 tmp/arm64-linux.elf-main.o
+14 -14
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa6c
.text 0x00000000001000bc 0xa70
*(.text)
.text 0x00000000001000bc 0x2f0 tmp/powerpc64-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,25 +23,25 @@ TARGET(elf64-powerpc)
0x0000000000100394 mprotect
0x000000000010039c munmap
0x00000000001003a4 my_bkpt
.text 0x00000000001003ac 0x77c tmp/powerpc64-linux.elf-main.o
.text 0x00000000001003ac 0x780 tmp/powerpc64-linux.elf-main.o
*(.data)
.data 0x0000000000100b28 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b28 0x0 tmp/powerpc64-linux.elf-main.o
.data 0x0000000000100b2c 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100b2c 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100b28 0xa4
.sfpr 0x0000000000100b28 0xa4 linker stubs
0x0000000000100b28 _savegpr0_14
0x0000000000100b50 _savegpr0_24
0x0000000000100b60 _savegpr0_28
0x0000000000100b78 _restgpr0_14
0x0000000000100ba0 _restgpr0_24
0x0000000000100bb0 _restgpr0_28
.sfpr 0x0000000000100b2c 0xa4
.sfpr 0x0000000000100b2c 0xa4 linker stubs
0x0000000000100b2c _savegpr0_14
0x0000000000100b54 _savegpr0_24
0x0000000000100b64 _savegpr0_28
0x0000000000100b7c _restgpr0_14
0x0000000000100ba4 _restgpr0_24
0x0000000000100bb4 _restgpr0_28
.glink 0x0000000000100bd0 0x0
.glink 0x0000000000100bd0 0x0 linker stubs
.eh_frame 0x0000000000100bcc 0x0
.eh_frame 0x0000000000100bcc 0x0 linker stubs
.eh_frame 0x0000000000100bd0 0x0
.eh_frame 0x0000000000100bd0 0x0 linker stubs
.rela.dyn 0x0000000000100bd0 0x0
.rela.iplt 0x0000000000100bd0 0x0 linker stubs
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa38
.text 0x00000000001000bc 0xa3c
*(.text)
.text 0x00000000001000bc 0x2c0 tmp/powerpc64le-linux.elf-fold.o
0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpcle)
0x0000000000100364 mprotect
0x000000000010036c munmap
0x0000000000100374 my_bkpt
.text 0x000000000010037c 0x778 tmp/powerpc64le-linux.elf-main.o
.text 0x000000000010037c 0x77c tmp/powerpc64le-linux.elf-main.o
*(.data)
.data 0x0000000000100af4 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100af4 0x0 tmp/powerpc64le-linux.elf-main.o
.data 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100af8 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x0000000000100af4 0xa4
.sfpr 0x0000000000100af4 0xa4 linker stubs
0x0000000000100af4 _savegpr0_14
0x0000000000100b1c _savegpr0_24
0x0000000000100b2c _savegpr0_28
0x0000000000100b44 _restgpr0_14
0x0000000000100b6c _restgpr0_24
0x0000000000100b7c _restgpr0_28
.sfpr 0x0000000000100af8 0xa4
.sfpr 0x0000000000100af8 0xa4 linker stubs
0x0000000000100af8 _savegpr0_14
0x0000000000100b20 _savegpr0_24
0x0000000000100b30 _savegpr0_28
0x0000000000100b48 _restgpr0_14
0x0000000000100b70 _restgpr0_24
0x0000000000100b80 _restgpr0_28
.glink 0x0000000000100b98 0x0
.glink 0x0000000000100b98 0x0 linker stubs
.glink 0x0000000000100ba0 0x0
.glink 0x0000000000100ba0 0x0 linker stubs
.eh_frame 0x0000000000100b98 0x0
.eh_frame 0x0000000000100b98 0x0 linker stubs
.eh_frame 0x0000000000100b9c 0x0
.eh_frame 0x0000000000100b9c 0x0 linker stubs
.rela.dyn 0x0000000000100b98 0x0
.rela.iplt 0x0000000000100b98 0x0 linker stubs
.rela.dyn 0x0000000000100ba0 0x0
.rela.iplt 0x0000000000100ba0 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 0x0000000000100b98 0x0
.branch_lt 0x0000000000100b98 0x0 linker stubs
.branch_lt 0x0000000000100ba0 0x0
.branch_lt 0x0000000000100ba0 0x0 linker stubs
.toc 0x0000000000100b98 0x0
.toc 0x0000000000100b98 0x0 tmp/powerpc64le-linux.elf-main.o
.toc 0x0000000000100ba0 0x0
.toc 0x0000000000100ba0 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100b98 0x58
.opd 0x0000000000100b98 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100bd8 upx_main
.opd 0x0000000000100ba0 0x58
.opd 0x0000000000100ba0 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100be0 upx_main
.iplt 0x0000000000100bf0 0x0
.iplt 0x0000000000100bf0 0x0 linker stubs
.iplt 0x0000000000100bf8 0x0
.iplt 0x0000000000100bf8 0x0 linker stubs
.bss 0x0000000000100bf0 0x0
.bss 0x0000000000100bf0 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100bf0 0x0 tmp/powerpc64le-linux.elf-main.o
.bss 0x0000000000100bf8 0x0
.bss 0x0000000000100bf8 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100bf8 0x0 tmp/powerpc64le-linux.elf-main.o