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:
Generated
+963
-862
File diff suppressed because it is too large
Load Diff
Generated
+2267
-2270
File diff suppressed because it is too large
Load Diff
Generated
+968
-867
File diff suppressed because it is too large
Load Diff
Generated
+2275
-2278
File diff suppressed because it is too large
Load Diff
Generated
+961
-860
File diff suppressed because it is too large
Load Diff
Generated
+2267
-2271
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user