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:
parent
404fb48668
commit
26ca21f6cb
@ -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
|
||||
|
||||
1825
src/stub/arm.v4a-linux.elf-entry.h
generated
1825
src/stub/arm.v4a-linux.elf-entry.h
generated
File diff suppressed because it is too large
Load Diff
4537
src/stub/arm.v4a-linux.elf-fold.h
generated
4537
src/stub/arm.v4a-linux.elf-fold.h
generated
File diff suppressed because it is too large
Load Diff
1835
src/stub/arm.v5a-linux.elf-entry.h
generated
1835
src/stub/arm.v5a-linux.elf-entry.h
generated
File diff suppressed because it is too large
Load Diff
4553
src/stub/arm.v5a-linux.elf-fold.h
generated
4553
src/stub/arm.v5a-linux.elf-fold.h
generated
File diff suppressed because it is too large
Load Diff
1821
src/stub/armeb.v4a-linux.elf-entry.h
generated
1821
src/stub/armeb.v4a-linux.elf-entry.h
generated
File diff suppressed because it is too large
Load Diff
4538
src/stub/armeb.v4a-linux.elf-fold.h
generated
4538
src/stub/armeb.v4a-linux.elf-fold.h
generated
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
|
||||
|
||||
77
src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump
generated
vendored
77
src/stub/tmp/arm.v4a-linux.elf-entry.bin.dump
generated
vendored
@ -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
|
||||
|
||||
21
src/stub/tmp/arm.v4a-linux.elf-fold.map
generated
vendored
21
src/stub/tmp/arm.v4a-linux.elf-fold.map
generated
vendored
@ -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
|
||||
|
||||
77
src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump
generated
vendored
77
src/stub/tmp/arm.v5a-linux.elf-entry.bin.dump
generated
vendored
@ -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
|
||||
|
||||
21
src/stub/tmp/arm.v5a-linux.elf-fold.map
generated
vendored
21
src/stub/tmp/arm.v5a-linux.elf-fold.map
generated
vendored
@ -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
|
||||
|
||||
77
src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
generated
vendored
77
src/stub/tmp/armeb.v4a-linux.elf-entry.bin.dump
generated
vendored
@ -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
|
||||
|
||||
21
src/stub/tmp/armeb.v4a-linux.elf-fold.map
generated
vendored
21
src/stub/tmp/armeb.v4a-linux.elf-fold.map
generated
vendored
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user