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

View File

@ -49,11 +49,11 @@ expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
836d9c5d9092421e49aeb573cde449ef740afbfea54d131ccbd88d8c7d87860d *amd64-linux.elf/upx-3.91
9776a2d030719f9d74413d17c1bb732aaabb610b341031facd2c1a75348fc661 *amd64-linux.elf/upx-3.95
822718cc0f6ac5e57bb23eeb65be6f3f7e73df8b062853abddcc924ec8207596 *amd64-win64.pe/upx-3.95.exe
e01b7eff05063c7f49482ac8d93ea7a89c779a0d6cb346eb8c3a96e2e204662d *arm-linux.elf/upx-3.95
40353c37020fd4bb713c5d54273b8dc07666e262b83a4f0652ccb8a236465f9c *arm-linux.elf/upx-3.95
1440d6b44968954baf56fbc2a0739a51873455876114d4445ae4b67cb5e7893b *arm-wince.pe/upx-3.91.exe
35c08bf5086fe21ff19e3512359e54ac97c6d4513e6bb9ef4a59294bebf18f6a *arm64-linux.elf/upx-3.95
5630b5bdd02121b97494a7b5aca48fec9e433b4a1230c5502d51add42c825b29 *armeb-linux.elf/upx-3.91
4c298423461506aa9895a450319931002c33439c09bc3bf793ab00b2d9a865ae *armeb-linux.elf/upx-3.95
0ca2dcd9e8b5c3f16dcb31e30b42ec57a70b8fe90281d412081095a3d7812f01 *armeb-linux.elf/upx-3.91
462a72efbb580a2e90564412737bb3c1db1d930cde5b4f2c94782df91c8e4f4b *armeb-linux.elf/upx-3.95
a7ee051c5f9dcf233e2ee248274121b99fb8f098eff95469bc0638a7423723f0 *i386-dos32.djgpp2.coff/upx-3.91.exe
85cf31be166cb59587a99419cdd0fc5a79825d7508ab2c9a4bc0d700d603354d *i386-dos32.djgpp2.coff/upx-3.95.exe
fc7656d9a877967be7e339bfc98a0c63ea7b5abc30b96fa9e5931c75ecbe9827 *i386-linux.elf/upx-3.91
@ -72,11 +72,11 @@ expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
8431343adec632690cec669038c246438c799e7dc1b8bc85586e0d2bcd2eebad *amd64-linux.elf/upx-3.91
1852bded40be6eb5ddb07a491476dcfcca69cadda45a5f128aa8f967d567fa0b *amd64-linux.elf/upx-3.95
5ab022e2c3ecb09931e2181fb5f7699f35e2b453b54c823e42653c84b0df5f2c *amd64-win64.pe/upx-3.95.exe
3bf7b3b955ac90d59a5efa197240c2c99eec5c21b7cf8125731ac9fe2d5939a4 *arm-linux.elf/upx-3.95
6de0cf1903760710a95cb5330d0ffb406a93f081dbe6806935f51b0c75e23f03 *arm-linux.elf/upx-3.95
53121baf42c85991900aa3947f3d817fe6e894bc6f325ab1d576de6fba5fbcbf *arm-wince.pe/upx-3.91.exe
3c9e49445280de6a771e77f6a88b3c3957815baa193e92a893d5defe6699f50a *arm64-linux.elf/upx-3.95
83e91856e15fec9c92473a1d696806b20be9f7be1f9c5a4f2e4d03ba1399ece3 *armeb-linux.elf/upx-3.91
c8931a326150591abfeac821cca4ca74055192e9745241020d69971635a07602 *armeb-linux.elf/upx-3.95
627a3c77adfcd4ef8c32f1638a6b99e20e79bb914cbcebed6fb9ad5f96936530 *armeb-linux.elf/upx-3.91
7faf9f0adf508cf29bf0ac2a62234df06d6c9153d6d59cf61019361db906daf8 *armeb-linux.elf/upx-3.95
51e4faea51e12c7442b27bb50150f532ac51d8102f77a669cbce82f2675a2ef2 *i386-dos32.djgpp2.coff/upx-3.91.exe
1196f578ab0b862bae8ac6b5166b770f072cf0ac521a2a23a6347c19ea82a0da *i386-dos32.djgpp2.coff/upx-3.95.exe
3015651261f28fb43ed43a8c1fa257bcfcdc788e6fd3f436f3de23733736c724 *i386-linux.elf/upx-3.91
@ -95,11 +95,11 @@ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
f817034e8b7765d8b422dac9cb6f24f78ce5bfd7169cd3b33e8224e00b131eca *amd64-linux.elf/upx-3.91
d21441a05514c085c10e99b00d8cc4d45484297a8e4e8a246364ca4347d0ed56 *amd64-linux.elf/upx-3.95
7bd7cd37093200fa94d21dd7fdfef4d7fb9c3049fbf5f408f1f242cb8d9c6a55 *amd64-win64.pe/upx-3.95.exe
46ea8dbdb15685f1f79f462acd2db6bafdcc731be26ae8ffaed6ddb954a473a7 *arm-linux.elf/upx-3.95
d328a89b333d0b36e96d0c61375bf686e8f3b73a188dd4d0df4d78e30af08632 *arm-linux.elf/upx-3.95
ad0a7a18e87657d28260b7c527d284863becd3c5f92259c570125465f88d4042 *arm-wince.pe/upx-3.91.exe
0b700f0f7dde3118694155e876e6c2003ef701fe94856d6562936ec081278747 *arm64-linux.elf/upx-3.95
72a5ac1ad2dc8d0235d4be417244a8766610390450521400039dfeb6a9d7cec4 *armeb-linux.elf/upx-3.91
f1896a43459d0078c37eccd2c878ff5a91039c2f49025fefc617f6c4ad7ce246 *armeb-linux.elf/upx-3.95
53a1d04fa62e25e64e6f792b079e21b4c42676a73503ae6d9e67ae16c98e6d04 *armeb-linux.elf/upx-3.91
33ed1e3b84836d2af52295ba0b90343ac0b8d524539ce3b8d0aa9f19a51d70dd *armeb-linux.elf/upx-3.95
6fcdc8e34ce8b3501db2260c8a921c6e963954fdeffedfefca353a27bcc02d56 *i386-dos32.djgpp2.coff/upx-3.91.exe
6f4f901c1838252f9b3104060475a6f13a2ebec830096ff28d870148580e4287 *i386-dos32.djgpp2.coff/upx-3.95.exe
8127f8380300508e8062e9391e321abd0429a6a31fec41e769cc7fe80af27e27 *i386-linux.elf/upx-3.91
@ -118,11 +118,11 @@ expected_sha256sums__t140_compress_lzma_2_no_filter="\
fefac6fbd1e95479eb4066519f9bd801a30c29966685840b6a011e2911b984ca *amd64-linux.elf/upx-3.91
64487a0e0aade092a8ff7e6d8d9528ca550540cac8d432005ba610179782d042 *amd64-linux.elf/upx-3.95
a55ec5a7f2911f6da8b9336daf4f1051e753cfb7a4458c7f7baa6b63340c6daf *amd64-win64.pe/upx-3.95.exe
3c0e0ea709a193fdd0771e6f6cb196757df645ebdf5a794af0bb26a361e87a51 *arm-linux.elf/upx-3.95
9f405739b904bb85053b75187c9175e4ac7f66a07ac5e320eaa4e9771e1ec79e *arm-linux.elf/upx-3.95
7a6c603eecf214e5d6742f1fce922223c97c8bd2527678a968640dd6c1bc0d71 *arm-wince.pe/upx-3.91.exe
c8435e2f82ba72a0b6abad4146539d40d495461c5e480af705b2bbd21d192128 *arm64-linux.elf/upx-3.95
e3d8e5f1fd529975483eef14c6d5985ce2869e26af67811d7185b99a426dc9ba *armeb-linux.elf/upx-3.91
f70db696b4f6860de6804fdca48a837ff9fe1be9a88ecf5d32e927b3c7178ca6 *armeb-linux.elf/upx-3.95
21fc48eaaedc73fe9239159fb864c6149f729ef1661a8407b88ad9c9a19f9a54 *armeb-linux.elf/upx-3.91
742db587dc53f616c7b276a930c3f586da2b7c3ce6ccd523c041e88a9671b99b *armeb-linux.elf/upx-3.95
7a8eaa5139b95cc56591200fce62d3c9af163671467952cab6fcf487318107bb *i386-dos32.djgpp2.coff/upx-3.91.exe
9b5fc0f54a5f811bda190c36fb2fa5c5b03c6c3de0c62693e4191230b5a419b8 *i386-dos32.djgpp2.coff/upx-3.95.exe
68b4ce63cb0bd7dd5b287e1f9fa5d9bc234ac36359ce3ebff863984c503a698e *i386-linux.elf/upx-3.91
@ -141,11 +141,11 @@ expected_sha256sums__t150_compress_ucl_2_all_filters="\
05b29bde32af1e63e837e2be499567c4b10d7e692c88082f24e3417e0c7b9f40 *amd64-linux.elf/upx-3.91
65c142ee01af09fa8741932c1f21d466be971aad059cc5afddbb7ecdf142c1bb *amd64-linux.elf/upx-3.95
cbb5c90bd9195bd9e3acd931312a70deeccfab5540f398ceda8826f8d6b332bf *amd64-win64.pe/upx-3.95.exe
e29c6093fac30bf3a0f7e368f792343594f320142b58416bc7a3c0b17c6c037d *arm-linux.elf/upx-3.95
1ea1bb18c0ac85c07450f0a6704b84e58a1322556757e2943340ef381b2ce675 *arm-linux.elf/upx-3.95
76a5f0518fc797bd3f132ce6eb61ca187b5d463f191417883a73d4584716c23a *arm-wince.pe/upx-3.91.exe
4df30002376a4f18029ea9dd8260d395bec3a3fa11fbc5aa19859c2f0efdc2e6 *arm64-linux.elf/upx-3.95
2bb47c4cd752022c0c58ea9ec21bbd62f1bf68f81356aadb94dcd03700e8126b *armeb-linux.elf/upx-3.91
60d7fb2d50b8ef6c8aed86f6444485749a99de4abf60727650c01a9910646422 *armeb-linux.elf/upx-3.95
ba03fd4889210435c9673f2dcbd2269162037090eccc79cf7d2b896e64a57e2e *armeb-linux.elf/upx-3.91
681f32d01c76ff31776b8d6f1556daa38eee297f675aa40ff1bb2e47e12adf15 *armeb-linux.elf/upx-3.95
aa05c3a2953f0f2d70842cba45786b707a79ffef22fd084f51e304762cc67765 *i386-dos32.djgpp2.coff/upx-3.91.exe
c677241e9a8753ba1332ac3875ab6398fb2d792d2627edd9e58f2535b3131abe *i386-dos32.djgpp2.coff/upx-3.95.exe
7bcd42f58dcc8ddb6cb1a4e33d56b584fe6d49b002b01a0859571d1324dd593a *i386-linux.elf/upx-3.91
@ -164,11 +164,11 @@ expected_sha256sums__t160_compress_all_methods_1_no_filter="\
94c91b97fcce7402a4494b22699b2450e8e4e2a9f4ddd66e1133c76ce198c167 *amd64-linux.elf/upx-3.91
5b3e85adb37919d051c6eaff205b8e1d77a2dfde0d8e7dcdee7c22f8fd5dc8c7 *amd64-linux.elf/upx-3.95
5a0ecb45658904bcd0b823b77dba039c9814e2eff4ed429784c36b7074b9858c *amd64-win64.pe/upx-3.95.exe
dce31e336759c334feac8099c0a93c281ef9b2abce75c53974049044f16250f6 *arm-linux.elf/upx-3.95
de93a219ca3c4ea84bd9c1b5fb37ff4aaa0a08ea6eac18da6d7a5865e4dad19c *arm-linux.elf/upx-3.95
fdbe0395ac401285edb9c2f9bfbb0fbd3c0eaad5052a88d8369b1a66b35a8a3e *arm-wince.pe/upx-3.91.exe
acdb7ff90d7c6f403872ec333e2987ee74e99d6e1390863b321b528d312c1084 *arm64-linux.elf/upx-3.95
31f1a8b1a4cc676c61b081da626116ded2f9413a847b8b87f3727b42e4bc5796 *armeb-linux.elf/upx-3.91
fe57f05ed19600015c00ef146808cff081c03574ec29f228d32eba8c44122154 *armeb-linux.elf/upx-3.95
54860e61da36414dc105aafcdbb86c79b745913a7d0da911fa58a6941f111e2d *armeb-linux.elf/upx-3.91
7c36b75cc8a0712515e12a9e565df4ca43bff6cc0077afb282d367fcc2ee2acd *armeb-linux.elf/upx-3.95
0a0099246096d20ff6035a4df6566954b9d8aff9ed8fdbd35aa5ee4995b02bfe *i386-dos32.djgpp2.coff/upx-3.91.exe
5df7aa9f0896df87eb8798119ad16a9b89c87a7568a67339e33b5baa99ec361f *i386-dos32.djgpp2.coff/upx-3.95.exe
53e5aae9bc70f58e3dc2aef5a94f66df2517d547670e72ee2b3189b7da809f41 *i386-linux.elf/upx-3.91
@ -187,11 +187,11 @@ expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
52a39c30b60abb82c1ec2826297eb46abdc29b5dd55d7a7a41dd2fc1c573f60a *amd64-linux.elf/upx-3.91
f0c728c42e8775767e0d963e1eef7ca78711f3f6dd180df980a1faef926d7cac *amd64-linux.elf/upx-3.95
e07e9babdeb12fddeebbfa1b0293163cc5e63017d6f0933d02587c8da1e90a82 *amd64-win64.pe/upx-3.95.exe
bc63dfcb36bf806ea8f84adbfeb27901aeb8d71d6ce853c54ffa19638b6ce4ea *arm-linux.elf/upx-3.95
f0359efa2247e9ea756f54c85e7518d61f3b293e08f566c3812c64c7d5f0db0f *arm-linux.elf/upx-3.95
8d1706ab02013b536c3a4cec20d40a96591ffa45fdcb464ccd3f038567006d79 *arm-wince.pe/upx-3.91.exe
14932490ff17e27bb5bedde576b8683892c4720f4a0058f373aab9f8894fda09 *arm64-linux.elf/upx-3.95
69cec23ba1a584d733ff98852c21a17d0f4ed7855249e7bf1cf5ef24dff2337c *armeb-linux.elf/upx-3.91
f1bfc701fdc9c162d5b324d2b8623dfe2e5ec0f5c161b6ad75f9f7f9c517b964 *armeb-linux.elf/upx-3.95
64a73512e40c2fb49d8ae3a1d496b379c97b8724cf8ca4461a85825ff04366a0 *armeb-linux.elf/upx-3.91
078e7cd073ba071f17ad4292e2211b7d635f57e974546e7f156cc87f9aa716e2 *armeb-linux.elf/upx-3.95
dda2c348c43741a1bd65049a8e7b51be1ebf873d215370ec002185c85390c168 *i386-dos32.djgpp2.coff/upx-3.91.exe
560392427ded22f2f3fea59ef10e55d65cf841001e67b1e4558ef13514baa602 *i386-dos32.djgpp2.coff/upx-3.95.exe
f3f8feceebe8536633554b204df68c2e94e1d1a313fe7a576b7f5d404c916083 *i386-linux.elf/upx-3.91

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

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

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

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

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

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

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

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