Elf2: Android on ARM 64-bit and 32-bit main program runs

modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
This commit is contained in:
John Reiser
2024-08-04 16:38:03 -07:00
parent ed0665407a
commit 5d5f4d1765
30 changed files with 15555 additions and 15301 deletions
+30 -24
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01dc 0 0 034 2**0 CONTENTS
2 ELFMAINX 06b8 0 0 0210 2**2 CONTENTS
2 ELFMAINX 06e0 0 0 0210 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000d8 g ELFMAINZ 0 getpid
00000498 g F ELFMAINX 0220 upx_mmap_and_fd
00000498 g F ELFMAINX 0248 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -117,30 +117,36 @@ OFFSET TYPE VALUE
00000518 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 my_bkpt
00000550 R_ARM_PC24 uname
00000554 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 uname
00000558 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 get_upxfn_path
000005a0 R_ARM_PC24 ELFMAINX
000005a8 R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d8 R_ARM_PC24 open
00000574 R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 ELFMAINX
000005a4 R_ARM_PC24 ELFMAINX
000005ac R_ARM_PC24 ELFMAINX
000005b0 R_ARM_PC24 get_upxfn_path
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005d0 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 unlink
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 ftruncate
000005f4 R_ARM_PC24 open
00000600 R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 unlink
00000610 R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 memset
00000644 R_ARM_PC24 write
0000064c R_ARM_PC24 ELFMAINX
00000654 R_ARM_PC24 ELFMAINX
00000664 R_ARM_PC24 lseek
00000670 R_ARM_PC24 ELFMAINX
0000061c R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 ELFMAINX
00000630 R_ARM_PC24 ftruncate
00000638 R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 memset
0000066c R_ARM_PC24 write
00000674 R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 ELFMAINX
000006a0 R_ARM_PC24 mmap
0000068c R_ARM_PC24 lseek
00000698 R_ARM_PC24 ELFMAINX
0000069c R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006c8 R_ARM_PC24 mmap
+6 -6
View File
@@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x1038
.text 0x0000000000000000 0x1060
.text 0x0000000000000000 0x344 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e4 memcpy
@@ -19,12 +19,12 @@ Linker script and memory map
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x0000000000000344 0x458 tmp/arm.v4a-linux.elf-upxfd_android.o
.text 0x0000000000000344 0x480 tmp/arm.v4a-linux.elf-upxfd_android.o
0x000000000000057c upx_mmap_and_fd
.text 0x000000000000079c 0x0 tmp/arm.v4a-expand.o
.text 0x000000000000079c 0x89c tmp/arm.v4a-linux.elf-main2.o
0x0000000000000fd4 underlay
0x0000000000000ea4 upx_main
.text 0x00000000000007c4 0x0 tmp/arm.v4a-expand.o
.text 0x00000000000007c4 0x89c tmp/arm.v4a-linux.elf-main2.o
0x0000000000000ffc underlay
0x0000000000000ecc upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o
+30 -24
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01dc 0 0 034 2**0 CONTENTS
2 ELFMAINX 06bc 0 0 0210 2**2 CONTENTS
2 ELFMAINX 06e4 0 0 0210 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000d8 g ELFMAINZ 0 getpid
0000049c g F ELFMAINX 0220 upx_mmap_and_fd
0000049c g F ELFMAINX 0248 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -118,30 +118,36 @@ OFFSET TYPE VALUE
00000518 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 my_bkpt
00000550 R_ARM_PC24 uname
00000554 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 uname
00000558 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 get_upxfn_path
000005a0 R_ARM_PC24 ELFMAINX
000005a8 R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d8 R_ARM_PC24 open
00000574 R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 ELFMAINX
000005a4 R_ARM_PC24 ELFMAINX
000005ac R_ARM_PC24 ELFMAINX
000005b0 R_ARM_PC24 get_upxfn_path
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005d0 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 unlink
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 ftruncate
000005f4 R_ARM_PC24 open
00000600 R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 unlink
00000610 R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 memset
00000644 R_ARM_PC24 write
0000064c R_ARM_PC24 ELFMAINX
00000654 R_ARM_PC24 ELFMAINX
00000664 R_ARM_PC24 lseek
00000670 R_ARM_PC24 ELFMAINX
0000061c R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 ELFMAINX
00000630 R_ARM_PC24 ftruncate
00000638 R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 memset
0000066c R_ARM_PC24 write
00000674 R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 ELFMAINX
000006a0 R_ARM_PC24 mmap
0000068c R_ARM_PC24 lseek
00000698 R_ARM_PC24 ELFMAINX
0000069c R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006c8 R_ARM_PC24 mmap
+10 -10
View File
@@ -8,7 +8,7 @@ Linker script and memory map
TARGET(elf32-littlearm)
.text 0x0000000000000000 0x1038
.text 0x0000000000000000 0x1060
*(.text)
.text 0x0000000000000000 0x344 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask
@@ -21,17 +21,17 @@ TARGET(elf32-littlearm)
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x0000000000000344 0x45c tmp/arm.v5a-linux.elf-upxfd_android.o
.text 0x0000000000000344 0x484 tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000580 upx_mmap_and_fd
.text 0x00000000000007a0 0x0 tmp/arm.v5a-expand.o
.text 0x00000000000007a0 0x898 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000fd4 underlay
0x0000000000000ea4 upx_main
.text 0x00000000000007c8 0x0 tmp/arm.v5a-expand.o
.text 0x00000000000007c8 0x898 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000ffc underlay
0x0000000000000ecc upx_main
*(.data)
.data 0x0000000000001038 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000001038 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000001038 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000001038 0x0 tmp/arm.v5a-linux.elf-main2.o
.data 0x0000000000001060 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000001060 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000001060 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000001060 0x0 tmp/arm.v5a-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o
+4 -4
View File
@@ -2,16 +2,16 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 01e8 0 0 040 2**0 CONTENTS
1 ELFMAINY 0 0 0 0228 2**0 CONTENTS
2 ELFMAINZ 01c 0 0 0228 2**2 CONTENTS
0 ELFMAINX 0228 0 0 040 2**2 CONTENTS
1 ELFMAINY 0 0 0 0268 2**0 CONTENTS
2 ELFMAINZ 01c 0 0 0268 2**2 CONTENTS
SYMBOL TABLE:
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
0000000000000000 l d ELFMAINX 0 ELFMAINX
0000000000000000 l d ELFMAINY 0 ELFMAINY
0000000000000000 *UND* 0 MFLG
0000000000000004 g ELFMAINX 0 _start
000000000000010c g F ELFMAINX 0dc ucl_nrv2b_decompress_32
000000000000014c g F ELFMAINX 0dc ucl_nrv2b_decompress_32
0000000000000000 g ELFMAINY 0 end_decompress
0000000000000000 *UND* 0 O_BINFO
+9 -9
View File
@@ -34,8 +34,8 @@ OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.bss 0x0000000000000000 0x0 tmp/arm64-expand.o
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0x110
SYSCALLS 0x0000000000000000 0x110 tmp/arm64-linux.elf-fold.o
SYSCALLS 0x0000000000000000 0x118
SYSCALLS 0x0000000000000000 0x118 tmp/arm64-linux.elf-fold.o
0x0000000000000000 my_bkpt
0x0000000000000008 exit
0x0000000000000010 read
@@ -45,13 +45,13 @@ SYSCALLS 0x0000000000000000 0x110
0x0000000000000040 brk
0x000000000000004c munmap
0x000000000000005c upxfd_create
0x0000000000000094 ftruncate
0x00000000000000a0 unlink
0x00000000000000b4 readlink
0x00000000000000bc open
0x00000000000000d8 __clear_cache
0x00000000000000ec memcpy
0x0000000000000100 memset
0x000000000000009c ftruncate
0x00000000000000a8 unlink
0x00000000000000bc readlink
0x00000000000000c4 open
0x00000000000000e0 __clear_cache
0x00000000000000f4 memcpy
0x0000000000000108 memset
EXP_HEAD 0x0000000000000000 0x104
EXP_HEAD 0x0000000000000000 0x104 tmp/arm64-expand.o
+30 -24
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01dc 0 0 034 2**0 CONTENTS
2 ELFMAINX 06b8 0 0 0210 2**2 CONTENTS
2 ELFMAINX 06e0 0 0 0210 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000d8 g ELFMAINZ 0 getpid
00000498 g F ELFMAINX 0220 upx_mmap_and_fd
00000498 g F ELFMAINX 0248 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -117,30 +117,36 @@ OFFSET TYPE VALUE
00000518 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 my_bkpt
00000550 R_ARM_PC24 uname
00000554 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 uname
00000558 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 get_upxfn_path
000005a0 R_ARM_PC24 ELFMAINX
000005a8 R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d8 R_ARM_PC24 open
00000574 R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 ELFMAINX
000005a4 R_ARM_PC24 ELFMAINX
000005ac R_ARM_PC24 ELFMAINX
000005b0 R_ARM_PC24 get_upxfn_path
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005d0 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 unlink
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 ftruncate
000005f4 R_ARM_PC24 open
00000600 R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 unlink
00000610 R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 memset
00000644 R_ARM_PC24 write
0000064c R_ARM_PC24 ELFMAINX
00000654 R_ARM_PC24 ELFMAINX
00000664 R_ARM_PC24 lseek
00000670 R_ARM_PC24 ELFMAINX
0000061c R_ARM_PC24 ELFMAINX
00000624 R_ARM_PC24 ELFMAINX
00000630 R_ARM_PC24 ftruncate
00000638 R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 memset
0000066c R_ARM_PC24 write
00000674 R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 ELFMAINX
000006a0 R_ARM_PC24 mmap
0000068c R_ARM_PC24 lseek
00000698 R_ARM_PC24 ELFMAINX
0000069c R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006c8 R_ARM_PC24 mmap
+6 -6
View File
@@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x104c
.text 0x0000000000000000 0x1074
.text 0x0000000000000000 0x344 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e4 memcpy
@@ -19,12 +19,12 @@ Linker script and memory map
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x0000000000000344 0x458 tmp/armeb.v4a-linux.elf-upxfd_android.o
.text 0x0000000000000344 0x480 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x000000000000057c upx_mmap_and_fd
.text 0x000000000000079c 0x0 tmp/armeb.v4a-expand.o
.text 0x000000000000079c 0x8b0 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000fe8 underlay
0x0000000000000eb4 upx_main
.text 0x00000000000007c4 0x0 tmp/armeb.v4a-expand.o
.text 0x00000000000007c4 0x8b0 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000001010 underlay
0x0000000000000edc upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o
+8 -8
View File
@@ -2,12 +2,12 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 05d1 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 0605 2**0 CONTENTS
0 ELFMAINX 060f 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 0643 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ
000003f7 g F ELFMAINX 01da upx_mmap_and_fd
000003f7 g F ELFMAINX 0218 upx_mmap_and_fd
00000000 *UND* 0 O_BINFO
000001cc g ELFMAINX 0 mempcpy
00000172 g ELFMAINX 0 mmap
@@ -28,11 +28,11 @@ OFFSET TYPE VALUE
0000020e R_386_PC32 stat
0000023c R_386_PC32 mkdir
0000032b R_386_PC32 mempcpy
00000472 R_386_PC32 my_bkpt
00000491 R_386_PC32 uname
000004c0 R_386_PC32 get_upxfn_path
00000547 R_386_PC32 memset
000005a5 R_386_PC32 mmap
00000477 R_386_PC32 my_bkpt
00000498 R_386_PC32 uname
000004f5 R_386_PC32 get_upxfn_path
0000057c R_386_PC32 memset
000005e3 R_386_PC32 mmap
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
+7 -7
View File
@@ -7,18 +7,18 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xd30
.text 0x0000000000000000 0xd6c
.text 0x0000000000000000 0x18b tmp/i386-linux.elf-fold.o
0x000000000000000c get_page_mask
0x0000000000000019 get_upxfn_path
*fill* 0x000000000000018b 0x1 00
.text 0x000000000000018c 0x3e1 tmp/i386-linux.elf-upxfd_android.o
.text 0x000000000000018c 0x41f tmp/i386-linux.elf-upxfd_android.o
0x0000000000000393 upx_mmap_and_fd
*fill* 0x000000000000056d 0x3 00
.text 0x0000000000000570 0x0 tmp/i386-expand.o
.text 0x0000000000000570 0x7c0 tmp/i386-linux.elf-main2.o
0x00000000000006c5 underlay
0x0000000000000bdc upx_main
*fill* 0x00000000000005ab 0x1 00
.text 0x00000000000005ac 0x0 tmp/i386-expand.o
.text 0x00000000000005ac 0x7c0 tmp/i386-linux.elf-main2.o
0x0000000000000701 underlay
0x0000000000000c18 upx_main
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o