arm.v4a: cancel_sigsegv

modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   src/stub/src/arm.v4a-linux.elf-entry.S
	modified:   src/stub/src/arm.v4a-linux.elf-fold.S
           plus generated .h .dump .map
This commit is contained in:
John Reiser
2025-08-20 19:43:16 -07:00
parent 404fb48668
commit 26ca21f6cb
15 changed files with 9958 additions and 9617 deletions
+963 -862
View File
File diff suppressed because it is too large Load Diff
+2267 -2270
View File
File diff suppressed because it is too large Load Diff
+968 -867
View File
File diff suppressed because it is too large Load Diff
+2275 -2278
View File
File diff suppressed because it is too large Load Diff
+961 -860
View File
File diff suppressed because it is too large Load Diff
+2267 -2271
View File
File diff suppressed because it is too large Load Diff
+40 -31
View File
@@ -126,21 +126,24 @@ __ARM_NR_cacheflush= 2 + __ARM_NR_BASE
section ELFMAINX
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
F_SIZE= 8*NBPW
F_SEGV= 3*NBPW
F_ADRU= 4*NBPW
F_LENU= 5*NBPW
F_R0= 6*NBPW
F_R1= 7*NBPW
F_ENTR= 8*NBPW
F_qflg= F_ENTR // QNX mmap flags
F_SIZE= 9*NBPW
// (read-only) .data space at start of unfolded code
D_PMASK= 0*NBPW
D_FNAME= 1*NBPW
D_QFLG= 2*NBPW
D_FOLD= 3*NBPW // start of code
D_QFLG= 1*NBPW
D_FNAME= 2*NBPW
D_XSEGV= 3*NBPW
D_FOLD= 4*NBPW // start of code
r_pack2 .req r9
r_pmask .req r8
@@ -150,21 +153,17 @@ sz_pack2= . - NBPW
mflg:
.word MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
_start: .globl _start
//// nop; bkpt // DEBUG
stmdb sp!,{r0,r1,lr} // ABI crt0 -static may have data here
sub sp,sp,#-3*NBPW + F_SIZE // F_R0,F_R1 separately
ldr r1,sz_pack2
adr r0,sz_pack2
sub r0,r0,r1 @ elfaddr= &Elf_Ehdr of this program
str r0,[sp,#F_ELFA]
mov r_pack2,r1 @ save sz_pack2
ldr r0,mflg
str r0,[sp,#F_QFLG]
//// nop; bkpt // DEBUG
ldr r_pack2,sz_pack2
ldr r2,mflg
adr r3,sz_pack2
sub r3,r3,r_pack2 @ elfaddr= &Elf_Ehdr of this program
call 0f; cancel_dummy: ret; 0:
stmdb sp!,{r0,r1,r2} // F_R0,F_R1,%F_ENTR(F_QFLG)
sub sp,sp,#2*NBPW // space for F_ADRU, F_LENU
stmdb sp!,{r0,r1,r3,lr} // %F_ADRX,%F_LENX,F_ELFA,F_SEGV
section ELFSIGSEGV
#if TEST_SIGSEGV //{ #defined on -devel branch only; not seen on arm64 hardware
// install SIGSEGV handler for debugging
SIGSEGV= 11
SA_SIGINFO= 4 // /usr/include/bits/sigaction.h
@@ -188,11 +187,21 @@ sa_frame = 5 * NBPW
do_sys7t __NR_sigaction
add sp,sp,#sa_frame
call 0f
cancel_sigsegv:
mov r3,#8 // space for 8 bytes of signal flags
mov r2,#0 // no old
mov r1,#0 // no new
mov r0,#SIGSEGV
do_sys7t __NR_sigaction
ret
0:
str lr,[sp,#F_SEGV]
#if 0 //{ TEST ONLY
mov r0,#0xc0;mov r1,#0xc1;mov r2,#0xc2;mov r3,#0xc3;mov r4,#0xc4;mov r5,#0xc5;mov r6,#0xc6;mov r7,#0xc7
mov r8,#0xc8;mov r9,#0xc9;mov r10,#0xca;mov r11,#0xcb;mov r12,#0xcc
ldr r0,[r0] // cause SIGSEGV
#endif //}
#endif //}
section ELFMAINX2
@@ -259,10 +268,11 @@ mfd .req old_sp
mov mfd,r0
//}{ r0 free, r1 busy
add r4,r_unc,# 2*NBPW + D_FOLD
ldr r5,[sp,#F_SEGV]
and r4,r4, #-2*NBPW // align displacement
ldr r3,[sp,#F_QFLG]
ldr r3,[sp,#F_qflg]
mov r2,r_pmask
stmia r1,{r2,r3,r4} // D_PMASK, D_QFLG, D_FNAME
stmia r1,{r2,r3,r4,r5} // F_ADRU: D_PMASK, D_QFLG, D_FNAME, D_SEGV
.unreq r_pmask
// De-compress folded stage of stub
@@ -304,14 +314,13 @@ mfd .req old_sp
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
stmia sp,{r4,r5} // sp: F_ADRX, F_LENX; (sp no change)
#if DEBUG /*{*/
stmdb sp!,{TRACE_REGS}; mov r0,#3; bl trace
#endif /*}*/
ldr r12,[sp,#F_ADRU]
add pc,r12,#D_FOLD // goto unfolded code
#if TEST_SIGSEGV //{ #defined on -devel branch only; not seen on arm64 hardware
proc_self_cmdline:
.asciz "/proc/self/cmdline"
.balign 4
@@ -337,7 +346,7 @@ child:
mov arg3,#O_RDONLY
adr arg2,proc_self_cmdline
mov arg1,#FD_CWD
do_sys27t __NR_openat; mov r_fd,r0 // fd
do_sys7t2 __NR_openat; mov r_fd,r0 // fd
mov arg2,sp // buffer
mov arg3,#PATH_MAX
do_sys7t __NR_read
@@ -410,7 +419,7 @@ sigsegv_sigaction:
mov arg3,#O_RDONLY // flags
adr arg2,proc_self_maps // path
mov arg1,#FD_CWD
do_sys27t __NR_openat; mov r_fd,r0 // fd_maps
do_sys7t2 __NR_openat; mov r_fd,r0 // fd_maps
BUFLEN= 4096
sub sp,sp,#BUFLEN
loop_maps:
@@ -479,7 +488,7 @@ unsimal: // (dst, value)
1:
ldmia sp!,{r1,lr}; add r1,r1,#'0'; strb r1,[r0],#1
ret
#endif // TEST_SIGSEGV}
zfind:
ldr r1,[r0],#NBPW
+28 -31
View File
@@ -66,11 +66,6 @@ PATH_MAX= 4096
#define call bl
#include "MAX_ELF_HDR.S"
ZERO= . - 3*NBPW
page_mask= . - 3*NBPW; .globl page_mask
qflg_data = . - 2*NBPW // QNX vs Linux: MAP_PRIVATE | MAP_ANONYMOUS
upxfn_path= . - 1*NBPW // displacement from "zero"
arg1 .req r0
arg2 .req r1
arg3 .req r2
@@ -78,6 +73,12 @@ arg4 .req r3
arg5 .req r4
arg6 .req r5
ZERO= . - 4*NBPW // 4 words initialized prior to unfolded code
page_mask= . - 4*NBPW
qflg_data = . - 3*NBPW // QNX vs Linux: MAP_PRIVATE | MAP_ANONYMOUS
upxfn_path= . - 2*NBPW // displacement from ZERO
cancel_sigsegv= . - 1*NBPW
fold_begin: // enter here
b L05 // put page_mask and qflg_data within short-displacement of uses
@@ -141,20 +142,21 @@ 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
// In: sp/ F_ADRX,F_LENX,F_ELFA,f_SEGV,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_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
F_LENX= 1*NBPW
F_ELFA= 2*NBPW
F_SEGV= 3*NBPW
F_ADRU= 4*NBPW
F_LENU= 5*NBPW
F_R0= 6*NBPW
F_R1= 7*NBPW
F_ENTR= 8*NBPW
F_qflg= F_ENTR // QNX mmap flags
F_argc= 9*NBPW
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
@@ -162,17 +164,17 @@ unmap_all_pages= (1<<1)
/* In:
r4= ADRX | unmap_all_pages
r5= LENX
sp/ ADRX|uap,LENX,ELFA,ADRU,LENU,r0,r1,%entry, argc,argv,0,envp,0,auxv
sp/ ADRX|uap,LENX,ELFA,r0,r1,%entry,SEGV,ADRU,LENU, 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} // F_ADRX .. F_ARGC
ldmia sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,r12} // F_ADRX .. F_ARGC
mov r1,sp @ src
tst r4,#unmap_all_pages; bne 0f; sub sp,sp,#PATH_MAX; 0:
tst r3,#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}
stmdb sp!,{r3,r4,r5,r6,r7,r8,r9,r10,r11,r12}
0: // copy argv down
ldr r3,[r1],#NBPW; cmp r3,#0
@@ -255,16 +257,8 @@ r_elfa .req r9
add sp,sp,#MAX_ELF_HDR_32 + OVERHEAD @ un-alloca
str r0,[sp,#F_ENTR] @ entry address
#if TEST_SIGSEGV
// Uninstall SIGSEGV handler
SIGSEGV= 11
__NR_rt_sigaction= 67
mov arg4,#0
mov arg3,#0 // no old
mov arg2,#0 // no new
mov arg1,#SIGSEGV
do_sys __NR_rt_sigaction
#endif // TEST_SIGSEGV
adr lr,0f; ldr pc,[sp,#F_SEGV] // cancel_sigsegv
0:
// Map 1 page of /proc/self/exe so that it does not disappear
ldr r0,[sp,#F_obinfo]; tst r0,#unmap_all_pages; bne no_map_pse
@@ -301,7 +295,7 @@ sweep:
add sp,sp,#(1<<18) @ pop stack
#endif //}
add sp,sp,#3*NBPW // toss F_ADRX,F_LENX,F_ELFA
add sp,sp,#4*NBPW // toss F_ADRX,F_LENX,F_ELFA,F_SEGV
ldmia sp!,{arg1,arg2} @ F_ADRU,F_LENU
stmdb sp!,{r_auxe}
mov r3,#0 @ clear registers: paranoia
@@ -326,6 +320,9 @@ sweep:
#endif /*}*/
ldmia sp!,{r12} // r_auxe
ldr pc,[r12,#NBPW -2*NBPW] @ hatch: Elf32_auxv_t[AT_NULL@.a_type].a_val
// hatch:
// svc 0 // In: r7= __NR_munmap; arg1= F_ADRU; arg2= F_LENU
// pop {r0,r1,pc} // F_R0, F_R1, F_ENTR
f_unfilter: @ (char *ptr, uint len, uint cto, uint fid)
ptr .req r0
+46 -31
View File
@@ -2,29 +2,29 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFSIGSEGV 0 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0234 0 0 034 2**2 CONTENTS
2 ELFMAINY 0 0 0 0268 2**0 CONTENTS
3 HUMF_A 04 0 0 0268 2**0 CONTENTS
4 HUMF_L 04 0 0 026c 2**0 CONTENTS
5 UMF_ANDROID 0544 0 0 0270 2**2 CONTENTS
6 UMF_LINUX 0144 0 0 07b4 2**2 CONTENTS
7 ELFMAINX 028 0 0 08f8 2**0 CONTENTS
8 ELFMAINZ 0218 028 028 0920 2**0 CONTENTS
0 ELFSIGSEGV 05c 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0598 0 0 090 2**2 CONTENTS
2 ELFMAINY 0 0 0 0628 2**0 CONTENTS
3 HUMF_A 04 0 0 0628 2**0 CONTENTS
4 HUMF_L 04 0 0 062c 2**0 CONTENTS
5 UMF_ANDROID 0544 0 0 0630 2**2 CONTENTS
6 UMF_LINUX 0144 0 0 0b74 2**2 CONTENTS
7 ELFMAINX 028 0 0 0cb8 2**0 CONTENTS
8 ELFMAINZ 0218 028 028 0ce0 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINX2 0 ELFMAINX2
00000000 l d UMF_ANDROID 0 UMF_ANDROID
00000000 l d UMF_LINUX 0 UMF_LINUX
00000000 l d ELFMAINX 0 ELFMAINX
00000028 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L
00000000 l d ELFMAINX 0 ELFMAINX
00000228 g ELFMAINX2 0 get_page_mask
0000058c g ELFMAINX2 0 get_page_mask
00000000 *UND* 0 MFLG
00000114 g ELFMAINZ 0 getpid
00000234 g ELFMAINX2 0 upx_mmap_and_fd
00000598 g ELFMAINX2 0 upx_mmap_and_fd
00000030 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
000001c8 g ELFMAINZ 0 Psync
@@ -44,7 +44,7 @@ SYMBOL TABLE:
00000164 g ELFMAINZ 0 read
000001a0 g ELFMAINZ 0 unlink
00000054 g ELFMAINZ 0 memset
00000164 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000004c8 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000001f0 g ELFMAINZ 0 my_bkpt
000000ec g ELFMAINZ 0 fsync
00000178 g ELFMAINZ 0 stat
@@ -54,6 +54,11 @@ SYMBOL TABLE:
0000013c g ELFMAINZ 0 mkdir
000000b0 g ELFMAINZ 0 close
RELOCATION RECORDS FOR [ELFSIGSEGV]:
OFFSET TYPE VALUE
00000000 R_ARM_PC24 ELFMAINX2
00000038 R_ARM_PC24 ELFSIGSEGV
RELOCATION RECORDS FOR [ELFMAINX2]:
OFFSET TYPE VALUE
00000004 R_ARM_PC24 ELFMAINX2
@@ -65,23 +70,32 @@ OFFSET TYPE VALUE
00000078 R_ARM_PC24 upx_mmap_and_fd
00000080 R_ARM_PC24 ELFMAINX2
000000b0 R_ARM_PC24 ELFMAINX2
000000ec R_ARM_PC24 ELFMAINX2
0000015c R_ARM_PC24 ELFMAINX2
00000174 R_ARM_PC24 ELFMAINX2
000001ac R_ARM_PC24 ELFMAINX2
000001b4 R_ARM_PC24 ELFMAINX2
000001b8 R_ARM_PC24 ELFMAINX2
000001c8 R_ARM_PC24 ELFMAINX2
000001cc R_ARM_PC24 ELFMAINX2
000001d0 R_ARM_PC24 ELFMAINX2
000001dc R_ARM_PC24 ELFMAINX2
000001ec R_ARM_PC24 ELFMAINX2
000001f0 R_ARM_PC24 ELFMAINX2
000001f8 R_ARM_PC24 ELFMAINX2
00000200 R_ARM_PC24 ELFMAINX2
00000204 R_ARM_PC24 ELFMAINX2
00000220 R_ARM_PC24 ELFMAINX2
00000224 R_ARM_PC24 ELFMAINX2
000000f0 R_ARM_PC24 ELFMAINX2
0000020c R_ARM_PC24 ELFMAINX2
00000238 R_ARM_PC24 ELFMAINX2
000003dc R_ARM_PC24 ELFMAINX2
000003f4 R_ARM_PC24 ELFMAINX2
0000041c R_ARM_PC24 ELFMAINX2
00000420 R_ARM_PC24 ELFMAINX2
0000042c R_ARM_PC24 ELFMAINX2
000004a0 R_ARM_PC24 ELFMAINX2
000004a4 R_ARM_PC24 ELFMAINX2
000004c0 R_ARM_PC24 ELFMAINX2
000004d8 R_ARM_PC24 ELFMAINX2
00000510 R_ARM_PC24 ELFMAINX2
00000518 R_ARM_PC24 ELFMAINX2
0000051c R_ARM_PC24 ELFMAINX2
0000052c R_ARM_PC24 ELFMAINX2
00000530 R_ARM_PC24 ELFMAINX2
00000534 R_ARM_PC24 ELFMAINX2
00000540 R_ARM_PC24 ELFMAINX2
00000550 R_ARM_PC24 ELFMAINX2
00000554 R_ARM_PC24 ELFMAINX2
0000055c R_ARM_PC24 ELFMAINX2
00000564 R_ARM_PC24 ELFMAINX2
00000568 R_ARM_PC24 ELFMAINX2
00000584 R_ARM_PC24 ELFMAINX2
00000588 R_ARM_PC24 ELFMAINX2
RELOCATION RECORDS FOR [HUMF_A]:
OFFSET TYPE VALUE
@@ -204,6 +218,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 MFLG
00000014 R_ARM_PC24 ELFMAINX
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
+10 -11
View File
@@ -7,24 +7,23 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xcb8
.text 0x0000000000000000 0x398 tmp/arm.v4a-linux.elf-fold.o
.text 0x0000000000000000 0xcc0
.text 0x0000000000000000 0x3a0 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000338 memcpy
0x0000000000000340 memcpy
0x0000000000000048 Psync
0x000000000000037c mempcpy
0x0000000000000384 mempcpy
0x00000000000000b0 mmap
0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path
0x000000000000035c memset
0x00000000fffffff4 page_mask
0x0000000000000364 memset
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000398 0x0 tmp/arm.v4a-linux.elf-help_umf.o
.text 0x0000000000000398 0x0 tmp/arm.v4a-expand.o
.text 0x0000000000000398 0x920 tmp/arm.v4a-linux.elf-main2.o
0x0000000000000c54 underlay
0x0000000000000b24 upx_main
.text 0x00000000000003a0 0x0 tmp/arm.v4a-linux.elf-help_umf.o
.text 0x00000000000003a0 0x0 tmp/arm.v4a-expand.o
.text 0x00000000000003a0 0x920 tmp/arm.v4a-linux.elf-main2.o
0x0000000000000c5c underlay
0x0000000000000b2c upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o
+46 -31
View File
@@ -2,29 +2,29 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFSIGSEGV 0 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0234 0 0 034 2**2 CONTENTS
2 ELFMAINY 0 0 0 0268 2**0 CONTENTS
3 ELFMAINZ 0218 0 0 0268 2**0 CONTENTS
4 HUMF_A 04 0 0 0480 2**0 CONTENTS
5 HUMF_L 04 0 0 0484 2**0 CONTENTS
6 UMF_ANDROID 054c 0 0 0488 2**2 CONTENTS
7 UMF_LINUX 0140 0 0 09d4 2**2 CONTENTS
8 ELFMAINX 028 0 0 0b14 2**0 CONTENTS
0 ELFSIGSEGV 05c 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0598 0 0 090 2**2 CONTENTS
2 ELFMAINY 0 0 0 0628 2**0 CONTENTS
3 ELFMAINZ 0218 0 0 0628 2**0 CONTENTS
4 HUMF_A 04 0 0 0840 2**0 CONTENTS
5 HUMF_L 04 0 0 0844 2**0 CONTENTS
6 UMF_ANDROID 054c 0 0 0848 2**2 CONTENTS
7 UMF_LINUX 0140 0 0 0d94 2**2 CONTENTS
8 ELFMAINX 028 0 0 0ed4 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINX2 0 ELFMAINX2
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d UMF_ANDROID 0 UMF_ANDROID
00000000 l d UMF_LINUX 0 UMF_LINUX
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L
00000000 l d ELFMAINX 0 ELFMAINX
00000228 g ELFMAINX2 0 get_page_mask
0000058c g ELFMAINX2 0 get_page_mask
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
00000234 g ELFMAINX2 0 upx_mmap_and_fd
00000598 g ELFMAINX2 0 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
000001a0 g ELFMAINZ 0 Psync
@@ -44,7 +44,7 @@ SYMBOL TABLE:
0000013c g ELFMAINZ 0 read
00000178 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset
00000164 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000004c8 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000001c8 g ELFMAINZ 0 my_bkpt
000000c4 g ELFMAINZ 0 fsync
00000150 g ELFMAINZ 0 stat
@@ -54,6 +54,11 @@ SYMBOL TABLE:
00000114 g ELFMAINZ 0 mkdir
00000088 g ELFMAINZ 0 close
RELOCATION RECORDS FOR [ELFSIGSEGV]:
OFFSET TYPE VALUE
00000000 R_ARM_PC24 ELFMAINX2
00000038 R_ARM_PC24 ELFSIGSEGV
RELOCATION RECORDS FOR [ELFMAINX2]:
OFFSET TYPE VALUE
00000004 R_ARM_PC24 ELFMAINX2
@@ -65,23 +70,32 @@ OFFSET TYPE VALUE
00000078 R_ARM_PC24 upx_mmap_and_fd
00000080 R_ARM_PC24 ELFMAINX2
000000b0 R_ARM_PC24 ELFMAINX2
000000ec R_ARM_PC24 ELFMAINX2
0000015c R_ARM_PC24 ELFMAINX2
00000174 R_ARM_PC24 ELFMAINX2
000001ac R_ARM_PC24 ELFMAINX2
000001b4 R_ARM_PC24 ELFMAINX2
000001b8 R_ARM_PC24 ELFMAINX2
000001c8 R_ARM_PC24 ELFMAINX2
000001cc R_ARM_PC24 ELFMAINX2
000001d0 R_ARM_PC24 ELFMAINX2
000001dc R_ARM_PC24 ELFMAINX2
000001ec R_ARM_PC24 ELFMAINX2
000001f0 R_ARM_PC24 ELFMAINX2
000001f8 R_ARM_PC24 ELFMAINX2
00000200 R_ARM_PC24 ELFMAINX2
00000204 R_ARM_PC24 ELFMAINX2
00000220 R_ARM_PC24 ELFMAINX2
00000224 R_ARM_PC24 ELFMAINX2
000000f0 R_ARM_PC24 ELFMAINX2
0000020c R_ARM_PC24 ELFMAINX2
00000238 R_ARM_PC24 ELFMAINX2
000003dc R_ARM_PC24 ELFMAINX2
000003f4 R_ARM_PC24 ELFMAINX2
0000041c R_ARM_PC24 ELFMAINX2
00000420 R_ARM_PC24 ELFMAINX2
0000042c R_ARM_PC24 ELFMAINX2
000004a0 R_ARM_PC24 ELFMAINX2
000004a4 R_ARM_PC24 ELFMAINX2
000004c0 R_ARM_PC24 ELFMAINX2
000004d8 R_ARM_PC24 ELFMAINX2
00000510 R_ARM_PC24 ELFMAINX2
00000518 R_ARM_PC24 ELFMAINX2
0000051c R_ARM_PC24 ELFMAINX2
0000052c R_ARM_PC24 ELFMAINX2
00000530 R_ARM_PC24 ELFMAINX2
00000534 R_ARM_PC24 ELFMAINX2
00000540 R_ARM_PC24 ELFMAINX2
00000550 R_ARM_PC24 ELFMAINX2
00000554 R_ARM_PC24 ELFMAINX2
0000055c R_ARM_PC24 ELFMAINX2
00000564 R_ARM_PC24 ELFMAINX2
00000568 R_ARM_PC24 ELFMAINX2
00000584 R_ARM_PC24 ELFMAINX2
00000588 R_ARM_PC24 ELFMAINX2
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
@@ -216,3 +230,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 MFLG
00000014 R_ARM_PC24 ELFMAINX
+10 -11
View File
@@ -7,24 +7,23 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xcb8
.text 0x0000000000000000 0x398 tmp/arm.v5a-linux.elf-fold.o
.text 0x0000000000000000 0xcc0
.text 0x0000000000000000 0x3a0 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000338 memcpy
0x0000000000000340 memcpy
0x0000000000000048 Psync
0x000000000000037c mempcpy
0x0000000000000384 mempcpy
0x00000000000000b0 mmap
0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path
0x000000000000035c memset
0x00000000fffffff4 page_mask
0x0000000000000364 memset
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000398 0x0 tmp/arm.v5a-linux.elf-help_umf.o
.text 0x0000000000000398 0x0 tmp/arm.v5a-expand.o
.text 0x0000000000000398 0x920 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000c54 underlay
0x0000000000000b24 upx_main
.text 0x00000000000003a0 0x0 tmp/arm.v5a-linux.elf-help_umf.o
.text 0x00000000000003a0 0x0 tmp/arm.v5a-expand.o
.text 0x00000000000003a0 0x920 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000c5c underlay
0x0000000000000b2c upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o
+46 -31
View File
@@ -2,29 +2,29 @@ file format elf32-bigarm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFSIGSEGV 0 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0234 0 0 034 2**2 CONTENTS
2 ELFMAINY 0 0 0 0268 2**0 CONTENTS
3 ELFMAINZ 0218 0 0 0268 2**0 CONTENTS
4 HUMF_A 04 0 0 0480 2**0 CONTENTS
5 HUMF_L 04 0 0 0484 2**0 CONTENTS
6 UMF_ANDROID 0544 0 0 0488 2**2 CONTENTS
7 UMF_LINUX 0144 0 0 09cc 2**2 CONTENTS
8 ELFMAINX 028 0 0 0b10 2**0 CONTENTS
0 ELFSIGSEGV 05c 0 0 034 2**0 CONTENTS
1 ELFMAINX2 0598 0 0 090 2**2 CONTENTS
2 ELFMAINY 0 0 0 0628 2**0 CONTENTS
3 ELFMAINZ 0218 0 0 0628 2**0 CONTENTS
4 HUMF_A 04 0 0 0840 2**0 CONTENTS
5 HUMF_L 04 0 0 0844 2**0 CONTENTS
6 UMF_ANDROID 0544 0 0 0848 2**2 CONTENTS
7 UMF_LINUX 0144 0 0 0d8c 2**2 CONTENTS
8 ELFMAINX 028 0 0 0ed0 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINX2 0 ELFMAINX2
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d UMF_ANDROID 0 UMF_ANDROID
00000000 l d UMF_LINUX 0 UMF_LINUX
00000000 l d ELFSIGSEGV 0 ELFSIGSEGV
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L
00000000 l d ELFMAINX 0 ELFMAINX
00000228 g ELFMAINX2 0 get_page_mask
0000058c g ELFMAINX2 0 get_page_mask
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
00000234 g ELFMAINX2 0 upx_mmap_and_fd
00000598 g ELFMAINX2 0 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
000001a0 g ELFMAINZ 0 Psync
@@ -44,7 +44,7 @@ SYMBOL TABLE:
0000013c g ELFMAINZ 0 read
00000178 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset
00000164 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000004c8 g F ELFMAINX2 0c4 ucl_nrv2b_decompress_8
000001c8 g ELFMAINZ 0 my_bkpt
000000c4 g ELFMAINZ 0 fsync
00000150 g ELFMAINZ 0 stat
@@ -54,6 +54,11 @@ SYMBOL TABLE:
00000114 g ELFMAINZ 0 mkdir
00000088 g ELFMAINZ 0 close
RELOCATION RECORDS FOR [ELFSIGSEGV]:
OFFSET TYPE VALUE
00000000 R_ARM_PC24 ELFMAINX2
00000038 R_ARM_PC24 ELFSIGSEGV
RELOCATION RECORDS FOR [ELFMAINX2]:
OFFSET TYPE VALUE
00000004 R_ARM_PC24 ELFMAINX2
@@ -65,23 +70,32 @@ OFFSET TYPE VALUE
00000078 R_ARM_PC24 upx_mmap_and_fd
00000080 R_ARM_PC24 ELFMAINX2
000000b0 R_ARM_PC24 ELFMAINX2
000000ec R_ARM_PC24 ELFMAINX2
0000015c R_ARM_PC24 ELFMAINX2
00000174 R_ARM_PC24 ELFMAINX2
000001ac R_ARM_PC24 ELFMAINX2
000001b4 R_ARM_PC24 ELFMAINX2
000001b8 R_ARM_PC24 ELFMAINX2
000001c8 R_ARM_PC24 ELFMAINX2
000001cc R_ARM_PC24 ELFMAINX2
000001d0 R_ARM_PC24 ELFMAINX2
000001dc R_ARM_PC24 ELFMAINX2
000001ec R_ARM_PC24 ELFMAINX2
000001f0 R_ARM_PC24 ELFMAINX2
000001f8 R_ARM_PC24 ELFMAINX2
00000200 R_ARM_PC24 ELFMAINX2
00000204 R_ARM_PC24 ELFMAINX2
00000220 R_ARM_PC24 ELFMAINX2
00000224 R_ARM_PC24 ELFMAINX2
000000f0 R_ARM_PC24 ELFMAINX2
0000020c R_ARM_PC24 ELFMAINX2
00000238 R_ARM_PC24 ELFMAINX2
000003dc R_ARM_PC24 ELFMAINX2
000003f4 R_ARM_PC24 ELFMAINX2
0000041c R_ARM_PC24 ELFMAINX2
00000420 R_ARM_PC24 ELFMAINX2
0000042c R_ARM_PC24 ELFMAINX2
000004a0 R_ARM_PC24 ELFMAINX2
000004a4 R_ARM_PC24 ELFMAINX2
000004c0 R_ARM_PC24 ELFMAINX2
000004d8 R_ARM_PC24 ELFMAINX2
00000510 R_ARM_PC24 ELFMAINX2
00000518 R_ARM_PC24 ELFMAINX2
0000051c R_ARM_PC24 ELFMAINX2
0000052c R_ARM_PC24 ELFMAINX2
00000530 R_ARM_PC24 ELFMAINX2
00000534 R_ARM_PC24 ELFMAINX2
00000540 R_ARM_PC24 ELFMAINX2
00000550 R_ARM_PC24 ELFMAINX2
00000554 R_ARM_PC24 ELFMAINX2
0000055c R_ARM_PC24 ELFMAINX2
00000564 R_ARM_PC24 ELFMAINX2
00000568 R_ARM_PC24 ELFMAINX2
00000584 R_ARM_PC24 ELFMAINX2
00000588 R_ARM_PC24 ELFMAINX2
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
@@ -214,3 +228,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
00000000 R_ARM_ABS32 MFLG
00000014 R_ARM_PC24 ELFMAINX
+10 -11
View File
@@ -7,24 +7,23 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xccc
.text 0x0000000000000000 0x398 tmp/armeb.v4a-linux.elf-fold.o
.text 0x0000000000000000 0xcd4
.text 0x0000000000000000 0x3a0 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x0000000000000338 memcpy
0x0000000000000340 memcpy
0x0000000000000048 Psync
0x000000000000037c mempcpy
0x0000000000000384 mempcpy
0x00000000000000b0 mmap
0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path
0x000000000000035c memset
0x00000000fffffff4 page_mask
0x0000000000000364 memset
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000398 0x0 tmp/armeb.v4a-linux.elf-help_umf.o
.text 0x0000000000000398 0x0 tmp/armeb.v4a-expand.o
.text 0x0000000000000398 0x934 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000c68 underlay
0x0000000000000b34 upx_main
.text 0x00000000000003a0 0x0 tmp/armeb.v4a-linux.elf-help_umf.o
.text 0x00000000000003a0 0x0 tmp/armeb.v4a-expand.o
.text 0x00000000000003a0 0x934 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000c70 underlay
0x0000000000000b3c upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o