ELF2 arm32-linux unmap_all_pages

modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
           plus generated *.h *.map *.dump
This commit is contained in:
John Reiser
2024-07-08 17:59:14 -07:00
parent 66dc1d90d8
commit 6cda0b6016
16 changed files with 7689 additions and 7638 deletions
+504 -504
View File
File diff suppressed because it is too large Load Diff
+1947 -1937
View File
File diff suppressed because it is too large Load Diff
+508 -508
View File
File diff suppressed because it is too large Load Diff
+1967 -1957
View File
File diff suppressed because it is too large Load Diff
+504 -504
View File
File diff suppressed because it is too large Load Diff
+1948 -1938
View File
File diff suppressed because it is too large Load Diff
+6 -2
View File
@@ -60,6 +60,9 @@ PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
MAP_ANONYMOUS= 0x20
MAP_FIXED= 0x10
MAP_PRIVATE= 0x02
@@ -246,8 +249,9 @@ mfd .req old_sp
// jmp unfolded_code
ldr r0,[sp,#F_ELFA]
ldr r1,[binfo,#-NBPW] @ O_BINFO
add r4,r0,r1 @ ADRX= &b_info
ldr r1,[binfo,#-NBPW] @ O_BINFO | unmap_all_pages
add r4,r0,r1 @ ADRX= &b_info | unmap_all_pages
bic r1,r1,#unmap_all_pages
sub r5,r_pack2,r1 @ LENX= sz_pack2 - O_BINFO
stmia sp,{r4,r5} // F_ADRX, F_LENX
#if DEBUG /*{*/
+38 -21
View File
@@ -80,19 +80,6 @@ arg4 .req r3
arg5 .req r4
arg6 .req r5
// In: sp/ F_ADRX,F_LENX,F_ELFA,F_ADRU,F_LENU,F_R0,F_R1,%F_ENTR,F_argc
// [ADRX, +LENX) = extent of compressed program
// [ADRU, +LENU) = params to munmap unfolded stub
F_ADRX= 0*NBPW
F_LENX= 1*NBPW
F_ELFA= 2*NBPW
F_ADRU= 3*NBPW
F_LENU= 4*NBPW
F_R0= 5*NBPW
F_R1= 6*NBPW
F_ENTR= 7*NBPW
F_ARGC= 8*NBPW
fold_begin: // enter here
b L05 // put PAGE_MASK and qflg_data within short-displacement of uses
@@ -142,10 +129,36 @@ mmap_do: // sp: saved r4,r5,lr
proc_self_exe: .asciz "/proc/self/exe"; .balign 4
// In: sp/ F_ADRX,F_LENX,F_ELFA,F_ADRU,F_LENU,F_R0,F_R1,%F_ENTR,F_argc
// [ADRX, +LENX) = extent of compressed program
// [ADRU, +LENU) = params to munmap unfolded stub
F_ADRX= 0*NBPW
F_obinfo= F_ADRX // unmap_all_pages in lo bits
F_LENX= 1*NBPW
F_ELFA= 2*NBPW
F_ADRU= 3*NBPW
F_LENU= 4*NBPW
F_R0= 5*NBPW
F_R1= 6*NBPW
F_ENTR= 7*NBPW
F_qflg = F_ENTR // QNX mmap flags
F_ARGC= 8*NBPW
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
/* In:
r4= ADRX | unmap_all_pages
r5= LENX
sp/ ADRX|uap,LENX,ELFA,ADRU,LENU,r0,r1,%entry, r0,r1, argc,argv,0,envp,0,auxv
(ADRX,LENX) = extent of compressed program
(ADRU,LENU) = params to munmap unfolded stub
*/
L05:
ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12} // includes argc
ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12} // F_ADRX .. F_ARGC
mov r1,sp @ src
sub sp,sp,#PATH_MAX
tst r4,#unmap_all_pages; bne 0f; sub sp,sp,#PATH_MAX; 0:
mov r0,sp @ dst
stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12}
@@ -153,7 +166,9 @@ L05:
ldr r3,[r1],#NBPW; cmp r3,#0
str r3,[r0],#NBPW; bne 0b
mov r4,r0 @ &new_env[0]
ldr r2,[sp,#F_obinfo]; tst r2,#unmap_all_pages; bne 0f @ no new_env
str r3,[r0],#NBPW @ space for new_env[0]
0:
0: // copy env down
ldr r3,[r1],#NBPW; cmp r3,#0
@@ -165,12 +180,13 @@ L05:
stmia r0!,{r2,r3}; bne 0b
mov r6,r1 @ &orig_auxv[end]; also &old_strings
mov r9,r0 @ &down_auxv[end]
ldr r2,[sp,#F_obinfo]; tst r2,#unmap_all_pages; bne no_pse_env
pse_env:
adr arg1,proc_self_exe
mov arg2,#O_RDONLY
do_sys7t __NR_open // ENOENT is OK
r_pse .req r8
mov r_pse,r0
//r_pse .req r8
// mov r_pse,r0
mov arg3,#PATH_MAX
mov arg2,r9 @ buffer
@@ -211,10 +227,12 @@ r_auxe .req r10
ldr r2,[r1,#-4]!; cmp r1,sp
str r2,[r0,#-4]!; bne 0b
mov sp,r0
no_pse_env:
/* Construct arglist for upx_main */
ldmia sp!,{arg1,arg2,arg3} @ pop: ADRX, LENX, elfaddr
stmdb sp!,{arg1,arg2,arg3} @ put back
bic arg1,arg1,#unmap_all_pages // ADRX
r_elfa .req r9
mov r_elfa,arg3 // save elfaddr
//mov arg4,r3 @ auxv
@@ -226,10 +244,9 @@ r_elfa .req r9
str r0,[sp,#F_ENTR] @ entry address
// Map 1 page of /proc/self/exe so that it does not disappear
mov arg5,r_pse
cmp arg5,#0; blt no_map_pse
ldr r0,[sp,#F_obinfo]; tst r0,#unmap_all_pages; bne no_map_pse
mov arg6,#0 @ SEEK_SET offset
stmdb sp!,{arg5,arg6} @ arg5,arg6 calling convention
stmdb sp!,{arg5,arg6} @ arg5,arg6 C-lang calling convention
mov arg4,#MAP_PRIVATE
mov arg3,#PROT_READ
mov arg2,#PAGE_SIZE
+1 -1
View File
@@ -273,7 +273,7 @@ main:
call unfold
LrFLD:
LOBINFO:
.long O_BINFO
.long O_BINFO // | unmap_all_pages
LBINFO:
/* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */
+69 -69
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 0114 0 0 034 2**0 CONTENTS
2 ELFMAINX 0628 0 0 0148 2**2 CONTENTS
2 ELFMAINX 062c 0 0 0148 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
00000090 g ELFMAINZ 0 getpid
00000474 g F ELFMAINX 01b4 upx_mmap_and_fd
00000478 g F ELFMAINX 01b4 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -28,7 +28,7 @@ SYMBOL TABLE:
000000b0 g ELFMAINZ 0 read
000000c8 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset
00000160 g F ELFMAINX 0dc ucl_nrv2b_decompress_8
00000164 g F ELFMAINX 0dc ucl_nrv2b_decompress_8
00000080 g ELFMAINZ 0 fsync
000000b8 g ELFMAINZ 0 stat
00000114 g ELFMAINZ 0 cpr0
@@ -58,80 +58,80 @@ OFFSET TYPE VALUE
000000a0 R_ARM_PC24 upx_mmap_and_fd
000000cc R_ARM_PC24 ELFMAINX
00000108 R_ARM_PC24 ELFMAINX
00000158 R_ARM_PC24 ELFMAINX
00000170 R_ARM_PC24 ELFMAINX
000001c0 R_ARM_PC24 ELFMAINX
000001c8 R_ARM_PC24 ELFMAINX
0000015c R_ARM_PC24 ELFMAINX
00000174 R_ARM_PC24 ELFMAINX
000001c4 R_ARM_PC24 ELFMAINX
000001cc R_ARM_PC24 ELFMAINX
000001dc R_ARM_PC24 ELFMAINX
000001d0 R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX
000001e8 R_ARM_PC24 ELFMAINX
000001f4 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
0000020c R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX
00000208 R_ARM_PC24 ELFMAINX
00000210 R_ARM_PC24 ELFMAINX
00000218 R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX
0000021c R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX
00000248 R_ARM_PC24 ELFMAINX
00000264 R_ARM_PC24 ELFMAINX
0000027c R_ARM_PC24 ELFMAINX
00000290 R_ARM_PC24 ELFMAINX
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002f4 R_ARM_PC24 mkdir
0000030c R_ARM_PC24 ELFMAINX
00000324 R_ARM_PC24 mempcpy
00000334 R_ARM_PC24 ELFMAINX
0000023c R_ARM_PC24 ELFMAINX
0000024c R_ARM_PC24 ELFMAINX
00000268 R_ARM_PC24 ELFMAINX
00000280 R_ARM_PC24 ELFMAINX
00000294 R_ARM_PC24 ELFMAINX
000002c0 R_ARM_PC24 memset
000002cc R_ARM_PC24 stat
000002d4 R_ARM_PC24 ELFMAINX
000002e8 R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000310 R_ARM_PC24 ELFMAINX
00000328 R_ARM_PC24 mempcpy
00000338 R_ARM_PC24 ELFMAINX
0000035c R_ARM_PC24 open
00000370 R_ARM_PC24 read
0000037c R_ARM_PC24 close
000003a0 R_ARM_PC24 ELFMAINX
000003b0 R_ARM_PC24 ELFMAINX
000003b8 R_ARM_PC24 ELFMAINX
000003c4 R_ARM_PC24 ELFMAINX
000003d4 R_ARM_PC24 mempcpy
000003e8 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 open
00000374 R_ARM_PC24 read
00000380 R_ARM_PC24 close
000003a4 R_ARM_PC24 ELFMAINX
000003b4 R_ARM_PC24 ELFMAINX
000003bc R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d8 R_ARM_PC24 mempcpy
000003ec R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 mempcpy
00000414 R_ARM_PC24 ELFMAINX
000003f0 R_ARM_PC24 ELFMAINX
00000408 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 mempcpy
00000438 R_ARM_PC24 getpid
00000440 R_ARM_PC24 ELFMAINX
0000044c R_ARM_PC24 ELFMAINX
00000458 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 ELFMAINX
000004a0 R_ARM_PC24 memfd_create
000004c0 R_ARM_PC24 uname
000004c4 R_ARM_PC24 ELFMAINX
000004dc R_ARM_PC24 ELFMAINX
000004f4 R_ARM_PC24 ELFMAINX
000004f8 R_ARM_PC24 get_upxfn_path
00000510 R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 ELFMAINX
00000530 R_ARM_PC24 ELFMAINX
00000538 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 open
00000554 R_ARM_PC24 ELFMAINX
0000055c R_ARM_PC24 unlink
00000564 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 ftruncate
00000580 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 ELFMAINX
00000434 R_ARM_PC24 mempcpy
0000043c R_ARM_PC24 getpid
00000444 R_ARM_PC24 ELFMAINX
00000450 R_ARM_PC24 ELFMAINX
0000045c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000494 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 uname
000004c8 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
000004f8 R_ARM_PC24 ELFMAINX
000004fc R_ARM_PC24 get_upxfn_path
00000514 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000528 R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 ELFMAINX
0000053c R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 open
00000558 R_ARM_PC24 ELFMAINX
00000560 R_ARM_PC24 unlink
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
0000057c R_ARM_PC24 ftruncate
00000584 R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 memset
000005b4 R_ARM_PC24 write
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 lseek
000005e0 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
00000598 R_ARM_PC24 memset
000005b8 R_ARM_PC24 write
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d8 R_ARM_PC24 lseek
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 ELFMAINX
00000610 R_ARM_PC24 mmap
000005e8 R_ARM_PC24 ELFMAINX
000005f0 R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 mmap
+11 -11
View File
@@ -7,24 +7,24 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xf88
.text 0x0000000000000000 0x2f8 tmp/arm.v4a-linux.elf-fold.o
.text 0x0000000000000000 0xfa8
.text 0x0000000000000000 0x318 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000298 memcpy
0x00000000000002dc mempcpy
0x00000000000002b8 memcpy
0x00000000000002fc mempcpy
0x0000000000000054 mmap
0x000000000000003c mmap_privanon
0x000000000000000c get_upxfn_path
0x00000000000002bc memset
0x00000000000002dc memset
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x00000000000002f8 0x3ec tmp/arm.v4a-linux.elf-upxfd_android.o
0x0000000000000530 upx_mmap_and_fd
.text 0x00000000000006e4 0x0 tmp/arm.v4a-expand.o
.text 0x00000000000006e4 0x8a4 tmp/arm.v4a-linux.elf-main2.o
0x0000000000000f24 underlay
0x0000000000000df4 upx_main
.text 0x0000000000000318 0x3ec tmp/arm.v4a-linux.elf-upxfd_android.o
0x0000000000000550 upx_mmap_and_fd
.text 0x0000000000000704 0x0 tmp/arm.v4a-expand.o
.text 0x0000000000000704 0x8a4 tmp/arm.v4a-linux.elf-main2.o
0x0000000000000f44 underlay
0x0000000000000e14 upx_main
SYSCALLS 0x0000000000000000 0x10c
SYSCALLS 0x0000000000000000 0x10c tmp/arm.v4a-linux.elf-fold.o
+70 -70
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 01d4 0 0 034 2**0 CONTENTS
2 ELFMAINX 064c 0 0 0208 2**2 CONTENTS
2 ELFMAINX 0650 0 0 0208 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 01b4 upx_mmap_and_fd
0000049c g F ELFMAINX 01b4 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -28,7 +28,7 @@ SYMBOL TABLE:
00000128 g ELFMAINZ 0 read
00000164 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset
00000168 g F ELFMAINX 0f4 ucl_nrv2b_decompress_8
0000016c g F ELFMAINX 0f4 ucl_nrv2b_decompress_8
000000b0 g ELFMAINZ 0 fsync
0000013c g ELFMAINZ 0 stat
000001d4 g ELFMAINZ 0 cpr0
@@ -58,81 +58,81 @@ OFFSET TYPE VALUE
000000a0 R_ARM_PC24 upx_mmap_and_fd
000000cc R_ARM_PC24 ELFMAINX
00000108 R_ARM_PC24 ELFMAINX
00000160 R_ARM_PC24 ELFMAINX
00000178 R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e8 R_ARM_PC24 ELFMAINX
00000164 R_ARM_PC24 ELFMAINX
0000017c R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX
000001ec R_ARM_PC24 ELFMAINX
000001fc R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
00000210 R_ARM_PC24 ELFMAINX
00000220 R_ARM_PC24 ELFMAINX
00000208 R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX
00000224 R_ARM_PC24 ELFMAINX
0000022c R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX
00000228 R_ARM_PC24 ELFMAINX
00000230 R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX
00000254 R_ARM_PC24 ELFMAINX
0000023c R_ARM_PC24 ELFMAINX
00000258 R_ARM_PC24 ELFMAINX
00000268 R_ARM_PC24 ELFMAINX
00000284 R_ARM_PC24 ELFMAINX
0000029c R_ARM_PC24 ELFMAINX
000002b0 R_ARM_PC24 ELFMAINX
000002dc R_ARM_PC24 memset
000002e8 R_ARM_PC24 stat
000002f0 R_ARM_PC24 ELFMAINX
00000304 R_ARM_PC24 ELFMAINX
0000030c R_ARM_PC24 ELFMAINX
00000318 R_ARM_PC24 mkdir
00000330 R_ARM_PC24 ELFMAINX
00000348 R_ARM_PC24 mempcpy
00000358 R_ARM_PC24 ELFMAINX
0000025c R_ARM_PC24 ELFMAINX
0000026c R_ARM_PC24 ELFMAINX
00000288 R_ARM_PC24 ELFMAINX
000002a0 R_ARM_PC24 ELFMAINX
000002b4 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 memset
000002ec R_ARM_PC24 stat
000002f4 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 ELFMAINX
00000310 R_ARM_PC24 ELFMAINX
0000031c R_ARM_PC24 mkdir
00000334 R_ARM_PC24 ELFMAINX
0000034c R_ARM_PC24 mempcpy
0000035c R_ARM_PC24 ELFMAINX
00000380 R_ARM_PC24 open
00000390 R_ARM_PC24 read
0000039c R_ARM_PC24 close
000003c0 R_ARM_PC24 ELFMAINX
000003d0 R_ARM_PC24 ELFMAINX
000003d8 R_ARM_PC24 ELFMAINX
000003e4 R_ARM_PC24 ELFMAINX
000003f4 R_ARM_PC24 mempcpy
00000408 R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 ELFMAINX
00000384 R_ARM_PC24 open
00000394 R_ARM_PC24 read
000003a0 R_ARM_PC24 close
000003c4 R_ARM_PC24 ELFMAINX
000003d4 R_ARM_PC24 ELFMAINX
000003dc R_ARM_PC24 ELFMAINX
000003e8 R_ARM_PC24 ELFMAINX
000003f8 R_ARM_PC24 mempcpy
0000040c R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 mempcpy
00000434 R_ARM_PC24 ELFMAINX
00000410 R_ARM_PC24 ELFMAINX
00000428 R_ARM_PC24 mempcpy
00000438 R_ARM_PC24 ELFMAINX
00000450 R_ARM_PC24 mempcpy
00000458 R_ARM_PC24 getpid
00000460 R_ARM_PC24 ELFMAINX
0000046c R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 ELFMAINX
000004b4 R_ARM_PC24 ELFMAINX
000004c4 R_ARM_PC24 memfd_create
000004e4 R_ARM_PC24 uname
000004e8 R_ARM_PC24 ELFMAINX
00000500 R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 get_upxfn_path
00000534 R_ARM_PC24 ELFMAINX
0000053c R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 ELFMAINX
0000055c R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 open
00000578 R_ARM_PC24 ELFMAINX
00000580 R_ARM_PC24 unlink
00000588 R_ARM_PC24 ELFMAINX
00000590 R_ARM_PC24 ELFMAINX
0000059c R_ARM_PC24 ftruncate
000005a4 R_ARM_PC24 ELFMAINX
0000043c R_ARM_PC24 ELFMAINX
00000454 R_ARM_PC24 mempcpy
0000045c R_ARM_PC24 getpid
00000464 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
0000047c R_ARM_PC24 ELFMAINX
00000494 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 ELFMAINX
000004c8 R_ARM_PC24 memfd_create
000004e8 R_ARM_PC24 uname
000004ec R_ARM_PC24 ELFMAINX
00000504 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000520 R_ARM_PC24 get_upxfn_path
00000538 R_ARM_PC24 ELFMAINX
00000540 R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 ELFMAINX
00000558 R_ARM_PC24 ELFMAINX
00000560 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 open
0000057c R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 unlink
0000058c R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 ELFMAINX
000005a0 R_ARM_PC24 ftruncate
000005a8 R_ARM_PC24 ELFMAINX
000005b8 R_ARM_PC24 memset
000005d8 R_ARM_PC24 write
000005e0 R_ARM_PC24 ELFMAINX
000005e8 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 lseek
00000604 R_ARM_PC24 ELFMAINX
000005ac R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 memset
000005dc R_ARM_PC24 write
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 lseek
00000608 R_ARM_PC24 ELFMAINX
00000610 R_ARM_PC24 ELFMAINX
00000634 R_ARM_PC24 mmap
0000060c R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000638 R_ARM_PC24 mmap
+15 -15
View File
@@ -8,30 +8,30 @@ Linker script and memory map
TARGET(elf32-littlearm)
.text 0x0000000000000000 0xfa8
.text 0x0000000000000000 0xfc8
*(.text)
.text 0x0000000000000000 0x318 tmp/arm.v5a-linux.elf-fold.o
.text 0x0000000000000000 0x338 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002b8 memcpy
0x00000000000002fc mempcpy
0x00000000000002d8 memcpy
0x000000000000031c mempcpy
0x0000000000000060 mmap
0x0000000000000048 mmap_privanon
0x000000000000000c get_upxfn_path
0x00000000000002dc memset
0x00000000000002fc memset
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x0000000000000318 0x3f0 tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000554 upx_mmap_and_fd
.text 0x0000000000000708 0x0 tmp/arm.v5a-expand.o
.text 0x0000000000000708 0x8a0 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000f44 underlay
0x0000000000000e14 upx_main
.text 0x0000000000000338 0x3f0 tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000574 upx_mmap_and_fd
.text 0x0000000000000728 0x0 tmp/arm.v5a-expand.o
.text 0x0000000000000728 0x8a0 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000f64 underlay
0x0000000000000e34 upx_main
*(.data)
.data 0x0000000000000fa8 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000000fa8 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000000fa8 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000000fa8 0x0 tmp/arm.v5a-linux.elf-main2.o
.data 0x0000000000000fc8 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000000fc8 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000000fc8 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000000fc8 0x0 tmp/arm.v5a-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o
+69 -69
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 0114 0 0 034 2**0 CONTENTS
2 ELFMAINX 0628 0 0 0148 2**2 CONTENTS
2 ELFMAINX 062c 0 0 0148 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
00000090 g ELFMAINZ 0 getpid
00000474 g F ELFMAINX 01b4 upx_mmap_and_fd
00000478 g F ELFMAINX 01b4 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -28,7 +28,7 @@ SYMBOL TABLE:
000000b0 g ELFMAINZ 0 read
000000c8 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset
00000160 g F ELFMAINX 0dc ucl_nrv2b_decompress_8
00000164 g F ELFMAINX 0dc ucl_nrv2b_decompress_8
00000080 g ELFMAINZ 0 fsync
000000b8 g ELFMAINZ 0 stat
00000114 g ELFMAINZ 0 cpr0
@@ -58,80 +58,80 @@ OFFSET TYPE VALUE
000000a0 R_ARM_PC24 upx_mmap_and_fd
000000cc R_ARM_PC24 ELFMAINX
00000108 R_ARM_PC24 ELFMAINX
00000158 R_ARM_PC24 ELFMAINX
00000170 R_ARM_PC24 ELFMAINX
000001c0 R_ARM_PC24 ELFMAINX
000001c8 R_ARM_PC24 ELFMAINX
0000015c R_ARM_PC24 ELFMAINX
00000174 R_ARM_PC24 ELFMAINX
000001c4 R_ARM_PC24 ELFMAINX
000001cc R_ARM_PC24 ELFMAINX
000001dc R_ARM_PC24 ELFMAINX
000001d0 R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX
000001e8 R_ARM_PC24 ELFMAINX
000001f4 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
0000020c R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX
00000208 R_ARM_PC24 ELFMAINX
00000210 R_ARM_PC24 ELFMAINX
00000218 R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX
0000021c R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX
00000248 R_ARM_PC24 ELFMAINX
00000264 R_ARM_PC24 ELFMAINX
0000027c R_ARM_PC24 ELFMAINX
00000290 R_ARM_PC24 ELFMAINX
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002f4 R_ARM_PC24 mkdir
0000030c R_ARM_PC24 ELFMAINX
00000324 R_ARM_PC24 mempcpy
00000334 R_ARM_PC24 ELFMAINX
0000023c R_ARM_PC24 ELFMAINX
0000024c R_ARM_PC24 ELFMAINX
00000268 R_ARM_PC24 ELFMAINX
00000280 R_ARM_PC24 ELFMAINX
00000294 R_ARM_PC24 ELFMAINX
000002c0 R_ARM_PC24 memset
000002cc R_ARM_PC24 stat
000002d4 R_ARM_PC24 ELFMAINX
000002e8 R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000310 R_ARM_PC24 ELFMAINX
00000328 R_ARM_PC24 mempcpy
00000338 R_ARM_PC24 ELFMAINX
0000035c R_ARM_PC24 open
00000370 R_ARM_PC24 read
0000037c R_ARM_PC24 close
000003a0 R_ARM_PC24 ELFMAINX
000003b0 R_ARM_PC24 ELFMAINX
000003b8 R_ARM_PC24 ELFMAINX
000003c4 R_ARM_PC24 ELFMAINX
000003d4 R_ARM_PC24 mempcpy
000003e8 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 open
00000374 R_ARM_PC24 read
00000380 R_ARM_PC24 close
000003a4 R_ARM_PC24 ELFMAINX
000003b4 R_ARM_PC24 ELFMAINX
000003bc R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d8 R_ARM_PC24 mempcpy
000003ec R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 mempcpy
00000414 R_ARM_PC24 ELFMAINX
000003f0 R_ARM_PC24 ELFMAINX
00000408 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 mempcpy
00000438 R_ARM_PC24 getpid
00000440 R_ARM_PC24 ELFMAINX
0000044c R_ARM_PC24 ELFMAINX
00000458 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 ELFMAINX
000004a0 R_ARM_PC24 memfd_create
000004c0 R_ARM_PC24 uname
000004c4 R_ARM_PC24 ELFMAINX
000004dc R_ARM_PC24 ELFMAINX
000004f4 R_ARM_PC24 ELFMAINX
000004f8 R_ARM_PC24 get_upxfn_path
00000510 R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 ELFMAINX
00000530 R_ARM_PC24 ELFMAINX
00000538 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 open
00000554 R_ARM_PC24 ELFMAINX
0000055c R_ARM_PC24 unlink
00000564 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 ftruncate
00000580 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 ELFMAINX
00000434 R_ARM_PC24 mempcpy
0000043c R_ARM_PC24 getpid
00000444 R_ARM_PC24 ELFMAINX
00000450 R_ARM_PC24 ELFMAINX
0000045c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000494 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 uname
000004c8 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
000004f8 R_ARM_PC24 ELFMAINX
000004fc R_ARM_PC24 get_upxfn_path
00000514 R_ARM_PC24 ELFMAINX
0000051c R_ARM_PC24 ELFMAINX
00000528 R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 ELFMAINX
0000053c R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 open
00000558 R_ARM_PC24 ELFMAINX
00000560 R_ARM_PC24 unlink
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
0000057c R_ARM_PC24 ftruncate
00000584 R_ARM_PC24 ELFMAINX
00000594 R_ARM_PC24 memset
000005b4 R_ARM_PC24 write
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 lseek
000005e0 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
00000598 R_ARM_PC24 memset
000005b8 R_ARM_PC24 write
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d8 R_ARM_PC24 lseek
000005e4 R_ARM_PC24 ELFMAINX
000005ec R_ARM_PC24 ELFMAINX
00000610 R_ARM_PC24 mmap
000005e8 R_ARM_PC24 ELFMAINX
000005f0 R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 mmap
+11 -11
View File
@@ -7,24 +7,24 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xf9c
.text 0x0000000000000000 0x2f8 tmp/armeb.v4a-linux.elf-fold.o
.text 0x0000000000000000 0xfbc
.text 0x0000000000000000 0x318 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000298 memcpy
0x00000000000002dc mempcpy
0x00000000000002b8 memcpy
0x00000000000002fc mempcpy
0x0000000000000054 mmap
0x000000000000003c mmap_privanon
0x000000000000000c get_upxfn_path
0x00000000000002bc memset
0x00000000000002dc memset
0x0000000000000024 Pprotect
0x00000000fffffff4 PAGE_MASK
0x0000000000000024 mprotect
.text 0x00000000000002f8 0x3ec tmp/armeb.v4a-linux.elf-upxfd_android.o
0x0000000000000530 upx_mmap_and_fd
.text 0x00000000000006e4 0x0 tmp/armeb.v4a-expand.o
.text 0x00000000000006e4 0x8b8 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000f38 underlay
0x0000000000000e04 upx_main
.text 0x0000000000000318 0x3ec tmp/armeb.v4a-linux.elf-upxfd_android.o
0x0000000000000550 upx_mmap_and_fd
.text 0x0000000000000704 0x0 tmp/armeb.v4a-expand.o
.text 0x0000000000000704 0x8b8 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000f58 underlay
0x0000000000000e24 upx_main
SYSCALLS 0x0000000000000000 0x10c
SYSCALLS 0x0000000000000000 0x10c tmp/armeb.v4a-linux.elf-fold.o