ELF2 for arm64 main programs

modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-fold.lds
	new file:   stub/src/arm64-linux.elf-main2.c
           plus generated *.h *.dump *.map
This commit is contained in:
John Reiser
2024-06-24 14:38:53 -07:00
parent 4fa50b96ad
commit 6276a4a7c4
14 changed files with 1403 additions and 912 deletions
+6 -31
View File
@@ -2,49 +2,24 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 010 0 0 040 2**0 CONTENTS
1 NRV_HEAD 0 0 0 050 2**0 CONTENTS
2 NRV_TAIL 0 0 0 050 2**0 CONTENTS
3 NRV2E 017c 0 0 050 2**0 CONTENTS
4 NRV2D 0170 0 0 01cc 2**0 CONTENTS
5 NRV2B 0144 0 0 033c 2**0 CONTENTS
6 LZMA_ELF00 010c 0 0 0480 2**0 CONTENTS
7 LZMA_DEC20 0968 0 0 058c 2**0 CONTENTS
8 LZMA_DEC10 04a0 0 0 0ef4 2**0 CONTENTS
9 LZMA_DEC30 0 0 0 01394 2**0 CONTENTS
10 ELFMAINY 03e 0 0 01394 2**0 CONTENTS
11 ELFMAINZ 0dc 0 0 013d4 2**2 CONTENTS
0 ELFMAINX 0250 0 0 040 2**0 CONTENTS
1 ELFMAINY 0 0 0 0290 2**0 CONTENTS
2 ELFMAINZ 01c 0 0 0290 2**2 CONTENTS
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
0000000000000000 l d ELFMAINX 0 ELFMAINX
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d NRV_TAIL 0 NRV_TAIL
0000000000000000 l d NRV2E 0 NRV2E
0000000000000000 l d NRV2D 0 NRV2D
0000000000000000 l d NRV2B 0 NRV2B
0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00
0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20
0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10
0000000000000000 l d ELFMAINY 0 ELFMAINY
0000000000000000 *UND* 0 MFLG
0000000000000004 g ELFMAINX 0 _start
0000000000000000 g F NRV2E 017c ucl_nrv2e_decompress_32
0000000000000000 g F NRV2D 0170 ucl_nrv2d_decompress_32
0000000000000000 g F NRV2B 0144 ucl_nrv2b_decompress_32
0000000000000000 g LZMA_DEC10 0 LzmaDecode
000000000000010c g F ELFMAINX 0144 ucl_nrv2b_decompress_32
0000000000000000 g ELFMAINY 0 end_decompress
0000000000000000 *UND* 0 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 MFLG
000000000000000c R_AARCH64_CALL26 ELFMAINZ+0x00000000000000a4
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
000000000000003c R_AARCH64_CALL26 ELFMAINZ+0x0000000000000004
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000000000000d8 R_AARCH64_ABS32 O_BINFO
0000000000000018 R_AARCH64_ABS32 O_BINFO
+75 -41
View File
@@ -6,48 +6,82 @@ Name Origin Length Attributes
Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xae4
*(.text)
.text 0x00000000001000bc 0x300 tmp/arm64-linux.elf-fold.o
0x00000000001000c4 get_page_mask
0x00000000001000d4 mmap_privanon
0x00000000001000e4 mmap
0x0000000000100100 Pprotect
0x0000000000100100 mprotect
0x0000000000100318 my_bkpt
0x0000000000100320 exit
0x0000000000100328 read
0x0000000000100334 write
0x0000000000100340 close
0x000000000010034c getpid
0x0000000000100358 brk
0x0000000000100364 munmap
0x0000000000100370 unlink
0x0000000000100384 readlink
0x000000000010038c open
0x00000000001003a8 __clear_cache
.text 0x00000000001003bc 0x7e4 tmp/arm64-linux.elf-main.o
0x0000000000100a38 upx_main
*(.data)
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x0000000000100ba0 0x0
.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100ba0 0x0
.rela.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.data
0x000000000000004c . = (SIZEOF_HEADERS + 0xc)
LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o
LOAD tmp/arm64-expand.o
LOAD tmp/arm64-linux.elf-main2.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x0000000000100ba0 0x0
.igot.plt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.text 0x0000000000000000 0xaa8
.text 0x0000000000000000 0x250 tmp/arm64-linux.elf-fold.o
0x0000000000000008 get_page_mask
0x0000000000000018 mmap_privanon
0x0000000000000028 mmap
0x0000000000000044 Pprotect
0x0000000000000044 mprotect
.text 0x0000000000000250 0x0 tmp/arm64-expand.o
.text 0x0000000000000250 0x858 tmp/arm64-linux.elf-main2.o
0x0000000000000904 underlay
0x0000000000000970 upx_main
.bss 0x0000000000100ba0 0x0
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000000000 0x0 tmp/arm64-expand.o
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
.bss 0x0000000000000000 0x0
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000000000 0x0 tmp/arm64-expand.o
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0xe0
SYSCALLS 0x0000000000000000 0xe0 tmp/arm64-linux.elf-fold.o
0x0000000000000000 my_bkpt
0x0000000000000008 exit
0x0000000000000010 read
0x000000000000001c write
0x0000000000000028 close
0x0000000000000034 getpid
0x0000000000000040 brk
0x000000000000004c munmap
0x0000000000000058 memfd_create
0x0000000000000064 ftruncate
0x0000000000000070 unlink
0x0000000000000084 readlink
0x000000000000008c open
0x00000000000000a8 __clear_cache
0x00000000000000bc memcpy
0x00000000000000d0 memset
EXP_HEAD 0x0000000000000000 0x104
EXP_HEAD 0x0000000000000000 0x104 tmp/arm64-expand.o
0x0000000000000000 f_expand
EXP_TAIL 0x0000000000000000 0x20
EXP_TAIL 0x0000000000000000 0x20 tmp/arm64-expand.o
0x0000000000000000 eof
NRV2E 0x0000000000000000 0x17c
NRV2E 0x0000000000000000 0x17c tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2e_decompress_32
NRV2D 0x0000000000000000 0x170
NRV2D 0x0000000000000000 0x170 tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2d_decompress_32
NRV2B 0x0000000000000000 0x144
NRV2B 0x0000000000000000 0x144 tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2b_decompress_32
LZMA_ELF00 0x0000000000000000 0x10c
LZMA_ELF00 0x0000000000000000 0x10c tmp/arm64-expand.o
LZMA_DEC20 0x0000000000000000 0x968
LZMA_DEC20 0x0000000000000000 0x968 tmp/arm64-expand.o
LZMA_DEC10 0x0000000000000000 0x4a0
LZMA_DEC10 0x0000000000000000 0x4a0 tmp/arm64-expand.o
0x0000000000000000 LzmaDecode
LZMA_DEC30 0x0000000000000000 0x0
LZMA_DEC30 0x0000000000000000 0x0 tmp/arm64-expand.o