ELF2 for arm64 main programs
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
modified: stub/Makefile
modified: stub/src/amd64-linux.elf-entry.S
modified: stub/src/amd64-linux.elf-main2.c
modified: stub/src/arm64-linux.elf-entry.S
modified: stub/src/arm64-linux.elf-fold.S
modified: stub/src/arm64-linux.elf-fold.lds
new file: stub/src/arm64-linux.elf-main2.c
plus generated *.h *.dump *.map
This commit is contained in:
parent
4fa50b96ad
commit
6276a4a7c4
@ -46,12 +46,12 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
|
||||
a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
|
||||
ac7093ea493bfa05e1229584029be585bf6042099fce41bb3f5b89279a41c8f6 *amd64-linux.elf/upx-3.91
|
||||
7b49177bad3dfe076ded4fb661d601bf8c0a26f900686dee41425ff5af3407c1 *amd64-linux.elf/upx-3.95
|
||||
1dcbac9b18093bc2cfa8180bc2f6ebf654decb322f9f90bc884f64446397599a *amd64-linux.elf/upx-3.91
|
||||
f1df33ab1679203b3aa32ae79250bec646435bacb721388e0289947d7b387d88 *amd64-linux.elf/upx-3.95
|
||||
1bd70a3cd3b34e635a3c947cacd46c4d66bf07e0fd350cc6d1f3cf60483f75b9 *amd64-win64.pe/upx-3.95.exe
|
||||
c9d8d916100e1dd972a2a9a060e4213505b14c62e9705ab6c8b544a8f18e083d *arm-linux.elf/upx-3.95
|
||||
94422a91473a467dfb534afa3f20247bc38691aeb386a42fb3e0fd18d3d0ae08 *arm-wince.pe/upx-3.91.exe
|
||||
73264b5b85b3866e7d132a29745deff2fc3fe190b66e492fdb22df188d801cc8 *arm64-linux.elf/upx-3.95
|
||||
fcdfb02749f51327bfef97369d4f4c95d3b87ef9534a3e6f8c3022aff3f667fa *arm64-linux.elf/upx-3.95
|
||||
0a9d0d95822a7d645d67b61ebd5b86d8be07b8a36e0f29dbc9b55a8666ed67af *armeb-linux.elf/upx-3.91
|
||||
6e4ff31a80809fc5058ae714ab10ad7810c310bd7d116fad8b198009b9872312 *armeb-linux.elf/upx-3.95
|
||||
e17a126cebc32977991a292b7434d1435a7c95862ccece0e4acbf6e810bd3443 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -69,12 +69,12 @@ fcbd8b4709ee324eb772e5de45a85bac5b8e560460fb1d50d0958f2ce568be97 *mipsel-linux.e
|
||||
d74c348bad0c1f3e776cf78282141492a58746c601f3f4288c9e675b7b425f82 *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
||||
4d50cd6cb9456f54533d98b217826077ec4afd23fe80acf35f52ab42d6dc63e6 *amd64-linux.elf/upx-3.91
|
||||
269f04d0109a4eb160e9696998c60c9301927b504b110b023f07f03ba721202f *amd64-linux.elf/upx-3.95
|
||||
6e5cdecceed30621f3cdd62dad279d027d6668311374917ae591de63b7a7857a *amd64-linux.elf/upx-3.91
|
||||
3c9e7bc6a5fe039da7b56be80f8ee90a1cf3112b53080c0fdd059a61b1bed6be *amd64-linux.elf/upx-3.95
|
||||
0314c6974f29d180e46e41a1004d46a3993fe96f03de7f78d45ad89ad3b2177e *amd64-win64.pe/upx-3.95.exe
|
||||
0f781a70828dc3b939988b96e70c0734cef3f4a7693624e61f7a678b0c8667a6 *arm-linux.elf/upx-3.95
|
||||
d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/upx-3.91.exe
|
||||
0e1298896e6eac45ebe3610571fda980555c00a022e215d6fd7ab4af3a1fae2f *arm64-linux.elf/upx-3.95
|
||||
20930d073fccb9730b8f1930a88cdcd822d7449a310cc5372cceaa0c52acffca *arm64-linux.elf/upx-3.95
|
||||
7ebffb7cd7a0f95e82738cb58728334fe51b5174f54f807303d281e4594037cf *armeb-linux.elf/upx-3.91
|
||||
4a9d498ec0df4923ebb475f634c25f9b47eea115998adfd9c46b7dc4a561cf47 *armeb-linux.elf/upx-3.95
|
||||
4a434c3a14686786369c8bede8736d15e307ed7dd8c40cccb8f22003b05db968 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -92,12 +92,12 @@ d05786b4b729f13a9b325322c2ea41ca7db6f60fee9f82c58874a25ee7eca086 *powerpc-linux.
|
||||
c4888e9ed7c587163b53246c2c0cb2c6118122feacfc5248f371d8f6c8783abd *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
||||
6b0f012f0b412e9589cfb5180b5a54c4535b87d781ee0ea4d7ebd3877312f97f *amd64-linux.elf/upx-3.91
|
||||
a20e7a2056834060632ad551381c73b8c5072ecca4f7af3df34c541878e29380 *amd64-linux.elf/upx-3.95
|
||||
be909d6362b96620480ca307c05b28a6856714a113026d36c1e7470d207155d5 *amd64-linux.elf/upx-3.91
|
||||
56166479df570e70c1a74b801096aa64d653c00a933ae9b11c06df580ba99d31 *amd64-linux.elf/upx-3.95
|
||||
97bb5953405f3413d9ff9bdc272caf2858697168b3e85dab54213da356b5ea0f *amd64-win64.pe/upx-3.95.exe
|
||||
0bf33b6b3f246093a7e15c4a51b0a15f40c7ec9c16fcd38613b8b66004a3b3cb *arm-linux.elf/upx-3.95
|
||||
8c73f5acfc70e3c518be09978af87b9bec4906240cb457a166da0eba05bea4db *arm-wince.pe/upx-3.91.exe
|
||||
8f21a05b2edfea21c0b3df2fd0b955e480bccc7bebc71fcc8918bf625d200dcf *arm64-linux.elf/upx-3.95
|
||||
eb5e101d1299518212be474f27242f63fd495f9e6c930d40f38edb02fff86567 *arm64-linux.elf/upx-3.95
|
||||
4be1831f03092f1c594115d95663f3d180c0066e10b9d8389f25a350a3976529 *armeb-linux.elf/upx-3.91
|
||||
c3ec4a5148e25f74f6c8dca92b608f65dc5539f9c5a0f839f801612b13505bd1 *armeb-linux.elf/upx-3.95
|
||||
d454dd376db342e7650a93bd4859546711c94f5da55336e5b969dbea996465d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -115,12 +115,12 @@ fa3be8f93006a88c7ad3d9fd13f600c4f69745859eb76f7eab317a5b87d256ea *mipsel-linux.e
|
||||
cf8c7d3616c00e6709eea0ae335cc3959a8debdac3623076541f51724649a6cc *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
||||
3bb0b0e781849c7b4c39b85eec13088479f4d01edfa62ea412a08456c6d578ab *amd64-linux.elf/upx-3.91
|
||||
c414d7606ca9c58097fb987ac859f3fad6e1416c0b3934318e240708ed660e9f *amd64-linux.elf/upx-3.95
|
||||
8f1a3bcfd3a3908c667970e3c2342e6421e49df985edb12a9f8d16a8636b13f1 *amd64-linux.elf/upx-3.91
|
||||
255643b345ffb38904dfeb200e21a0f67802e299e05563ad3cd8240e207d279e *amd64-linux.elf/upx-3.95
|
||||
b8815f95e92d6853a04a86069e9054115be2d9aa657fa2c8912d0f37e56c894f *amd64-win64.pe/upx-3.95.exe
|
||||
7a832eb6c3c33a04053786334c9e1953796ba2debacc754b5a18632ec987aa40 *arm-linux.elf/upx-3.95
|
||||
018242f330e19dd7ca2fb78687c0070ad88f1aa2e113be865c30ad3ff94a4ada *arm-wince.pe/upx-3.91.exe
|
||||
ede34a26982566c5f04b43a112d6dfc2bdb817f1d81895e62c64520788300d5f *arm64-linux.elf/upx-3.95
|
||||
e38062cc314a5a2e89c47ec4dadb888db07d7ac355e5523469ae75766f6068bc *arm64-linux.elf/upx-3.95
|
||||
0a64b334793d1d6056241d0072afe8aa34d92ca5680192d05e1df90ca2f3c893 *armeb-linux.elf/upx-3.91
|
||||
895a9facf830fbcf2953adc0d7cf364fc5ab716f03940fc6165b49343c5253de *armeb-linux.elf/upx-3.95
|
||||
4e16bdab8b74ea5c7de4f255eec035189c24ac6374afef883c17696642c4fe16 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -138,12 +138,12 @@ a214c035d403c1dc7b5d80d6cfd8e00e2278f8600332875f2e53e1c61648fdc2 *powerpc-linux.
|
||||
e614e62b002d3f8e900099d1683d17a932e8879c53de6b9a9d4a064f551afa8d *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
||||
a60cc1b7b7734c3874fed17e8ff79f212b97c2eed15ee9e6c48600b19b9201cb *amd64-linux.elf/upx-3.91
|
||||
b2fa0763c1635014e886c457b0263aef9ccc304db6c08ebc4451a91a7b9e2f4c *amd64-linux.elf/upx-3.95
|
||||
afdac91bf87ea0399034adcc9b5744726d3d1c7173306f19ca6a3c86acd4c6bc *amd64-linux.elf/upx-3.91
|
||||
4c61a6e47671d57391f61c5110c42092033a49e1fe0a950c8f85e1c7f797d09e *amd64-linux.elf/upx-3.95
|
||||
434732efb16b89114162a1787a28c128e2c11edb9835411f2b707cac5cd475ae *amd64-win64.pe/upx-3.95.exe
|
||||
acbb1628a4631ec5ded40ec286c55544839f57a671ef925c89f81a7fff937954 *arm-linux.elf/upx-3.95
|
||||
93e2ead9e54732a1731896681d415e3ce60b7420ad7f3c57822ad7dbd061cdd3 *arm-wince.pe/upx-3.91.exe
|
||||
83799cb0b2736bc0c38a23b0a37e127e6066e1cf87eaf9b65541861d8131ffa4 *arm64-linux.elf/upx-3.95
|
||||
dee589677746210903d4c752da178cafe0ba6fddafc9beb566dfef1692dcf9b3 *arm64-linux.elf/upx-3.95
|
||||
9d6b8ef721a9af947f8439c5e6805da9ecadf8e5e41f1e5ef54c40f3c8395db2 *armeb-linux.elf/upx-3.91
|
||||
591f023a8c6506cf8113fcb8a8672d0044890d60c6b9372a7eeeb40c9f5af464 *armeb-linux.elf/upx-3.95
|
||||
2957b481e67689a5ad43dcfdfde207b9eb16142c161f3e43fd0eeff5917fefbd *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -161,12 +161,12 @@ e3825daa7fb8d509590c1db347a8403dbd899da453fb43850ebf1d31abbe0cba *powerpc-linux.
|
||||
3b246002f2dff8e44cf3c2cd2c64701514a1354c27b616c9a704f542df30e04f *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
||||
966ac969f6670e153d53262a83bfbbcaa696a7ffad884d514e51eab1ca3783b7 *amd64-linux.elf/upx-3.91
|
||||
4d01dd4a8890f6fc23a26833ea36a7d9a00de276bbbcebfb1cb6a51475986722 *amd64-linux.elf/upx-3.95
|
||||
f9e4463d20f5e5f2f359c8503d7846be3409d0eaabee2772b0c9aa6b843aec48 *amd64-linux.elf/upx-3.91
|
||||
c6c01776f3f3a912abff169de5507ba4fa67bc045e9699d5a8a6f694796f7768 *amd64-linux.elf/upx-3.95
|
||||
f38ff7edc916c1a3e82020035667de858c89d52c98d960dad0e21b4da444ed6c *amd64-win64.pe/upx-3.95.exe
|
||||
2481a933d3f1bcaed047e9cbc81ae227351e86e7c6c761c4756faea0c525aeb6 *arm-linux.elf/upx-3.95
|
||||
bb475839ec547696aaccf4da202b99be927c872e5de298a5eb1f0be0edc06d1d *arm-wince.pe/upx-3.91.exe
|
||||
856c8e7c77318394baa9880ef794627114f8e2e31c72ca1098c7797b716d5fa8 *arm64-linux.elf/upx-3.95
|
||||
7634941f1bd62cc5b42467ed26a1f9a85d317dad01fa55f3914848caf01f7375 *arm64-linux.elf/upx-3.95
|
||||
d33a702da5d0c46e744056c24e8323360223ed8e1be07660eecc28ade7b5fc75 *armeb-linux.elf/upx-3.91
|
||||
57790e4d030d32d19ae6ba2a485a5bc6f7244c7e65d3ec4c8b0afe395927dd83 *armeb-linux.elf/upx-3.95
|
||||
8673a20ba4b83e25daab30431ed215dcb35f595fa0cabf67ff57368a07ba4c14 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
@ -184,12 +184,12 @@ c37806b0d68697276cdd208ab37c92e01055bfbab73c6bbdf054c95fe9cef3b9 *powerpc-linux.
|
||||
bdd174f8e00e1364fba1f821b56e0083fb9993d2bab9e3a93fced8f66ccc84c7 *powerpc64le-linux.elf/upx-3.95
|
||||
"
|
||||
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
|
||||
a00c0f98e790ab31600fdc918e76b35cd7f1f4b7bada42980b6d7ee8e963caa8 *amd64-linux.elf/upx-3.91
|
||||
3a0dbc859768bee2213632ac0fb811562e282c183eccd2930b04378f583bd7dd *amd64-linux.elf/upx-3.95
|
||||
276a901f5187f7e020f584451aae4a93d50fc1b93d79637725e16df9a5a65b32 *amd64-linux.elf/upx-3.91
|
||||
4a52204ba45028280f7b3528c186e8f42145a51dfa7d081e24b70081b272bc27 *amd64-linux.elf/upx-3.95
|
||||
5fccb0f5044baaa74d176efb25eefa3b5810dc737ed0f9d38084d275f7ebe7b8 *amd64-win64.pe/upx-3.95.exe
|
||||
90e56eefcce87542dbbc65e54c83c7e921a747877cbe489089c6043165b4f334 *arm-linux.elf/upx-3.95
|
||||
56be0b4046accdfadbe534ecb6e6452b9e3a18bb9eac39da0ee8893c31d24416 *arm-wince.pe/upx-3.91.exe
|
||||
11994cbac13b0545049d35d331581ad7fb773075b619a378958d39c531aaa88a *arm64-linux.elf/upx-3.95
|
||||
a921bfa806e2d5c987a2ad908c8a7132779e24d56da5210cce6304ea90c9f312 *arm64-linux.elf/upx-3.95
|
||||
0925e9f13460111685bcf3e695a0e191a083f43149cb0a2e6f93ca68f414614b *armeb-linux.elf/upx-3.91
|
||||
03e9bb54264382f17dc15e451b9aff634e41d0b3e14585350479bf143b612c09 *armeb-linux.elf/upx-3.95
|
||||
6f9fbac216cd42aa370cb90965e74669daf33fd403bf0a250aaec06dd3439009 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||
|
||||
@ -1651,8 +1651,8 @@ PackLinuxElf64::buildLinuxLoader(
|
||||
}
|
||||
else if (0
|
||||
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|
||||
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
|
||||
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
|
||||
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_AARCH64
|
||||
) { // main program with ELF2 de-compressor
|
||||
initLoader(fold, szfold);
|
||||
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience
|
||||
@ -1719,15 +1719,16 @@ PackLinuxElf64::buildLinuxLoader(
|
||||
if (xct_off
|
||||
&& (0
|
||||
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|
||||
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
|
||||
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
|
||||
|| this->e_machine==Elf64_Ehdr::EM_AARCH64)
|
||||
)
|
||||
) {
|
||||
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
|
||||
} // shlib
|
||||
else if (0
|
||||
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|
||||
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
|
||||
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
|
||||
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_AARCH64
|
||||
) { // main program with ELF2 de-compressor
|
||||
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
|
||||
if (this->e_machine==Elf64_Ehdr::EM_PPC64
|
||||
|
||||
@ -700,6 +700,8 @@ tc.arm64-linux.elf.gcc = arm64-linux-gcc-4.9.2 -nostdinc -MMD -MT $@
|
||||
tc.arm64-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
|
||||
tc.arm64-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
|
||||
|
||||
+tc.arm64-expand.gcc = $(tc.arm64-linux.elf.gcc)
|
||||
|
||||
tc.arm64-linux.elf-fold.ld = arm64-linux-ld-2.25
|
||||
tc.arm64-linux.elf-so_fold.ld = arm64-linux-ld-2.25
|
||||
|
||||
@ -707,15 +709,16 @@ tc.arm64-linux.elf-entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littlea
|
||||
tc.arm64-linux.elf-so_entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-so_fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-main2.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-so_main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
|
||||
|
||||
tc.arm64-linux.elf-entry.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-so_entry.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-fold.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-so_fold.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-main.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-main2.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-linux.elf-so_main.objdump = arm64-linux-objdump-2.25
|
||||
tc.arm64-expand.objdump = arm64-linux-objdump-2.25
|
||||
|
||||
arm64-linux.elf-entry.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c $< -o tmp/$T.bin
|
||||
@ -727,10 +730,13 @@ arm64-linux.elf-so_entry.h: $(srcdir)/src/$$T.S
|
||||
$(call tc,f-embed_objinfo_without_xstrip,tmp/$T.bin)
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
arm64-linux.elf-fold.h : tmp/$$T.o tmp/arm64-linux.elf-main.o $(srcdir)/src/arm64-linux.elf-fold.lds
|
||||
$(call tc,ld) --strip-all -T $(srcdir)/src/arm64-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
|
||||
$(call tc,f-objstrip,tmp/$T.bin)
|
||||
$(call tc,sstrip) tmp/$T.bin
|
||||
arm64-linux.elf-fold.h : $(srcdir)/src/$$T.lds \
|
||||
tmp/$$T.o \
|
||||
tmp/arm64-expand.o \
|
||||
tmp/arm64-linux.elf-main2.o
|
||||
$(call tc,ld) -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
|
||||
$(call tc,objdump) -Dr $(tc_objdump_disasm_options) tmp/$T.bin | $(RTRIM) > tmp/$T.bin.disasm
|
||||
$(call tc,f-embed_objinfo_without_xstrip_keep_dot_text,tmp/$T.bin)
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
arm64-linux.elf-so_fold.h : tmp/$$T.o tmp/arm64-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/arm64-expand.o
|
||||
@ -749,8 +755,9 @@ tmp/arm64-linux.elf-so_fold.o : $(srcdir)/src/$$T.S
|
||||
|
||||
tmp/arm64-expand.o: $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c $< -o $@
|
||||
arm64-linux-objdump-2.25 -Dr $(tc_objdump_disasm_options) tmp/$T.o | $(RTRIM) > tmp/$T.o.disasm
|
||||
|
||||
tmp/arm64-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/arm64-linux.elf-main.c
|
||||
tmp/arm64-linux.elf-main2.o : $(srcdir)/src/$$T.c
|
||||
$(call tc,gcc) -c -Os $< -o $@
|
||||
$(call tc,f-objstrip,$@)
|
||||
|
||||
|
||||
6
src/stub/amd64-linux.elf-entry.h
generated
6
src/stub/amd64-linux.elf-entry.h
generated
@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 1105
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0xbd0f3bb4
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x69ac5629
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0xb7253bb2
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x1881def8
|
||||
|
||||
unsigned char stub_amd64_linux_elf_entry[1105] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@ -58,7 +58,7 @@ unsigned char stub_amd64_linux_elf_entry[1105] = {
|
||||
/* 0x0120 */ 141, 52, 47,243,164, 94,235,180, 93, 89, 72, 57,206,116, 1,244,
|
||||
/* 0x0130 */ 72,139, 69, 48, 72,137, 4, 36, 72,139, 85, 32, 72,131,234, 16,
|
||||
/* 0x0140 */ 84, 94, 76,137,231,106, 1, 88,232, 60, 0, 0, 0, 85, 92, 69,
|
||||
/* 0x0150 */ 41,201, 77,137,224,106, 1, 65, 90, 82, 94,106, 7, 90, 41,255,
|
||||
/* 0x0150 */ 41,201, 77,137,224,106, 1, 65, 90, 82, 94,106, 5, 90, 41,255,
|
||||
/* 0x0160 */ 106, 9, 88,232, 33, 0, 0, 0, 80, 72,137, 69, 24, 65, 80, 95,
|
||||
/* 0x0170 */ 106, 3, 88, 15, 5, 88, 72,131,192, 8,255,224, 72,139, 7, 72,
|
||||
/* 0x0180 */ 131,199, 8, 72,133,192,117,244,195, 80, 15, 5, 89, 72, 61, 0,
|
||||
|
||||
570
src/stub/arm64-linux.elf-entry.h
generated
570
src/stub/arm64-linux.elf-entry.h
generated
@ -1,5 +1,5 @@
|
||||
/* arm64-linux.elf-entry.h
|
||||
created from arm64-linux.elf-entry.bin, 7405 (0x1ced) bytes
|
||||
created from arm64-linux.elf-entry.bin, 1646 (0x66e) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -32,472 +32,112 @@
|
||||
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7405
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xbcad6a23
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x4f61097f
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 1646
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x3bf2c3a4
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x88b67ee4
|
||||
|
||||
unsigned char stub_arm64_linux_elf_entry[7405] = {
|
||||
unsigned char stub_arm64_linux_elf_entry[1646] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 4, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
||||
/* 0x0040 */ 0, 0, 0, 0,224, 7,191,169,211,255,255, 24, 0, 0, 0,148,
|
||||
/* 0x0050 */ 254, 15, 31,248,226, 15,191,169, 7, 64, 33,139, 5, 0,128, 18,
|
||||
/* 0x0060 */ 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203,
|
||||
/* 0x0070 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
|
||||
/* 0x0080 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
|
||||
/* 0x0090 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
|
||||
/* 0x00a0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
|
||||
/* 0x00b0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
|
||||
/* 0x00c0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
|
||||
/* 0x00d0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
|
||||
/* 0x00e0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
|
||||
/* 0x00f0 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
|
||||
/* 0x0100 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
|
||||
/* 0x0110 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
|
||||
/* 0x0120 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
|
||||
/* 0x0130 */ 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26,239,255,255,151,
|
||||
/* 0x0140 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
|
||||
/* 0x0150 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,
|
||||
/* 0x0160 */ 191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,
|
||||
/* 0x0170 */ 226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,
|
||||
/* 0x0180 */ 226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26,219,255,255,151,
|
||||
/* 0x0190 */ 163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151,
|
||||
/* 0x01a0 */ 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26,
|
||||
/* 0x01b0 */ 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x01c0 */ 33, 4, 0,113,161,255,255, 84,212,255,255, 23,226, 15,190,169,
|
||||
/* 0x01d0 */ 254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x01e0 */ 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
|
||||
/* 0x01f0 */ 130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x0200 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,
|
||||
/* 0x0210 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84,
|
||||
/* 0x0220 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,
|
||||
/* 0x0230 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146,
|
||||
/* 0x0240 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84,
|
||||
/* 0x0250 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,
|
||||
/* 0x0260 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,254, 7, 65,248,
|
||||
/* 0x0270 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x0280 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56,
|
||||
/* 0x0290 */ 67, 20, 0, 56,248,255,255,151,162,255,255, 84, 33, 0,128, 82,
|
||||
/* 0x02a0 */ 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
|
||||
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
|
||||
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
|
||||
/* 0x02e0 */ 165,124, 1, 19, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
|
||||
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
||||
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
||||
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
||||
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
||||
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||
/* 0x0360 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
|
||||
/* 0x0370 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
|
||||
/* 0x0380 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
|
||||
/* 0x0390 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
|
||||
/* 0x03a0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
|
||||
/* 0x03b0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
|
||||
/* 0x03c0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
|
||||
/* 0x03d0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
|
||||
/* 0x03e0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x03f0 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
|
||||
/* 0x0400 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
|
||||
/* 0x0410 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x0420 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
|
||||
/* 0x0430 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x0440 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0450 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
|
||||
/* 0x0460 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
|
||||
/* 0x0470 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
|
||||
/* 0x0480 */ 159, 56, 0,113, 1, 0, 0, 84,226, 15,190,169,253,123, 1,169,
|
||||
/* 0x0490 */ 253, 3, 0,145, 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,
|
||||
/* 0x04a0 */ 231, 32,200, 26,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,
|
||||
/* 0x04b0 */ 228, 3, 0,145,159,124,129,168,159, 0, 8,235,195,255,255, 84,
|
||||
/* 0x04c0 */ 255,127,191,169,230, 3, 3,170,197, 0, 64,185,228, 3, 2,170,
|
||||
/* 0x04d0 */ 227, 35, 0,145, 34, 8, 0, 81,225, 3, 0,170,224, 3, 0,145,
|
||||
/* 0x04e0 */ 39, 20, 64, 56,231, 8, 0, 18, 7, 8, 0, 57, 39, 20, 64, 56,
|
||||
/* 0x04f0 */ 232,124, 4, 83, 8, 4, 0, 57,231, 12, 0, 18, 7, 0, 0, 57,
|
||||
/* 0x0500 */ 35, 0, 0,148,191, 3, 0,145,229, 3, 0,170,253,123, 65,169,
|
||||
/* 0x0510 */ 224, 7,194,168, 33, 0, 64,249, 33, 0, 0,139, 35, 0, 59,213,
|
||||
/* 0x0520 */ 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,132, 32,194,154,
|
||||
/* 0x0530 */ 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213,
|
||||
/* 0x0540 */ 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,159, 59, 3,213,
|
||||
/* 0x0550 */ 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154,
|
||||
/* 0x0560 */ 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213,
|
||||
/* 0x0570 */ 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,
|
||||
/* 0x0580 */ 223, 63, 3,213,224, 3, 5,170,192, 3, 95,214,255, 67, 1,209,
|
||||
/* 0x0590 */ 39, 0,128, 82, 17, 16, 0,145, 9,128,128, 82,243, 83, 0,169,
|
||||
/* 0x05a0 */ 245, 91, 1,169,247, 99, 2,169,249,107, 3,169,251,115, 4,169,
|
||||
/* 0x05b0 */ 20, 8, 64, 57, 19, 4, 64, 57, 22, 0, 64, 57,244, 32,212, 26,
|
||||
/* 0x05c0 */ 127, 0, 0,185,243, 32,211, 26,223, 0, 0,185, 7, 0,128,210,
|
||||
/* 0x05d0 */ 148, 6, 0, 81, 8, 4, 64, 57, 10, 1, 22, 11,104, 6, 0, 81,
|
||||
/* 0x05e0 */ 18, 1, 39, 30, 8, 96,128, 82, 8, 33,202, 26, 8,217, 28, 49,
|
||||
/* 0x05f0 */ 160, 0, 0, 84, 41,122, 39,120,231, 4, 0,145, 31, 1, 7,107,
|
||||
/* 0x0600 */ 168,255,255, 84, 34, 64, 34,139, 63, 0, 2,235, 64, 16, 0, 84,
|
||||
/* 0x0610 */ 235, 3, 1,170, 40, 4, 0,145,103, 85, 64, 56, 31, 1, 2,235,
|
||||
/* 0x0620 */ 160, 15, 0, 84, 9, 21, 64, 56, 31, 1, 11,235, 39, 33, 7, 42,
|
||||
/* 0x0630 */ 97,255,255, 84,229, 69, 0, 52, 8, 1,128, 82, 53, 0,128, 82,
|
||||
/* 0x0640 */ 18, 0,128, 82, 9, 0,128, 18, 20, 1, 39, 30,104, 0,128, 82,
|
||||
/* 0x0650 */ 177, 2, 39, 30,247, 3, 21, 42, 7, 1, 39, 30, 8, 86,128,210,
|
||||
/* 0x0660 */ 165, 2, 39, 30,252, 3, 21, 42, 3, 1,103,158,104, 1,128, 82,
|
||||
/* 0x0670 */ 234, 3, 18, 42,240, 3, 18, 42, 0, 1, 39, 30, 8,176, 41,145,
|
||||
/* 0x0680 */ 14,224,191, 18, 15, 0,129, 82, 1, 1,103,158, 40, 1,128, 82,
|
||||
/* 0x0690 */ 2, 1, 39, 30,136, 2, 38, 30, 8, 1, 22, 75, 16, 1, 39, 30,
|
||||
/* 0x06a0 */ 72,110, 28, 83, 63, 1, 14,107, 25, 2, 20, 10, 13,125, 64,147,
|
||||
/* 0x06b0 */ 173,193, 57,139,173,249,127,211,232, 0, 0, 84,127, 1, 2,235,
|
||||
/* 0x06c0 */ 160, 10, 0, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x06d0 */ 7, 33, 7, 42, 59,106,109,120, 40,125, 11, 83, 8,125, 27, 27,
|
||||
/* 0x06e0 */ 255, 0, 8,107,130, 10, 0, 84, 73, 2, 38, 30, 19, 62, 1, 14,
|
||||
/* 0x06f0 */ 95, 26, 0,113, 12, 2, 9, 10, 73, 41,211, 26,140, 33,214, 26,
|
||||
/* 0x0700 */ 234, 1, 27, 75, 41, 1, 12, 11,106, 23,138, 11, 42,106, 45,120,
|
||||
/* 0x0710 */ 41, 5, 9, 11, 41, 93,120,211, 41,217, 28,145, 58, 6, 9,139,
|
||||
/* 0x0720 */ 109, 31, 0, 84, 10, 2, 28, 75, 41, 0,128, 82,153,104,106, 56,
|
||||
/* 0x0730 */ 7, 0, 0, 20, 91,107, 42,120, 41,121, 31, 83,232, 3, 13, 42,
|
||||
/* 0x0740 */ 83, 57, 0, 53, 63,253, 3,113,236, 3, 0, 84, 57,123, 31, 83,
|
||||
/* 0x0750 */ 31, 1, 14,107, 51, 3, 24, 18, 56,121, 31, 83,106,126, 64,147,
|
||||
/* 0x0760 */ 74, 1, 4,145, 74,193, 41,139, 74,249,127,211,232, 0, 0, 84,
|
||||
/* 0x0770 */ 127, 1, 2,235, 8, 93, 24, 83,224, 4, 0, 84,108, 1, 64, 57,
|
||||
/* 0x0780 */ 107, 5, 0,145,135, 33, 7, 42, 76,107,106,120, 13,125, 11, 83,
|
||||
/* 0x0790 */ 251, 1, 12, 75,173,125, 12, 27,155, 21,155, 11,140, 21, 76, 75,
|
||||
/* 0x07a0 */ 255, 0, 13,107, 8, 1, 13, 75, 99,252,255, 84, 76,107, 42,120,
|
||||
/* 0x07b0 */ 9, 7, 0, 17,231, 0, 13, 75,115,252,255, 53, 63,253, 3,113,
|
||||
/* 0x07c0 */ 77, 27, 0, 84, 42, 29, 0, 83,233, 3, 8, 42,138, 72, 48, 56,
|
||||
/* 0x07d0 */ 16, 6, 0, 17, 95, 38, 0,113,236, 49, 0, 84, 82, 14, 0, 81,
|
||||
/* 0x07e0 */ 191, 0, 16,107,232,245,255, 84, 0,224,191, 18, 63, 1, 0,107,
|
||||
/* 0x07f0 */ 136, 0, 0, 84,127, 1, 2,235,224, 0, 0, 84,107, 5, 0,145,
|
||||
/* 0x0800 */ 97, 1, 1,203, 97, 0, 0,185,208, 0, 0,185, 0, 0,128, 82,
|
||||
/* 0x0810 */ 2, 0, 0, 20, 32, 0,128, 82,243, 83, 64,169,245, 91, 65,169,
|
||||
/* 0x0820 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,255, 67, 1,145,
|
||||
/* 0x0830 */ 192, 3, 95,214, 58, 1, 8, 75, 74,126, 64,147,105, 23, 91, 75,
|
||||
/* 0x0840 */ 95, 3, 14,107, 41,106, 45,120, 76, 1, 3,145,231, 0, 8, 75,
|
||||
/* 0x0850 */ 140,249,127,211,232, 0, 0, 84,127, 1, 2,235,192,253,255, 84,
|
||||
/* 0x0860 */ 104, 1, 64, 57, 90, 95, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
|
||||
/* 0x0870 */ 40,106,108,120, 74,127, 11, 83, 74,125, 8, 27,255, 0, 10,107,
|
||||
/* 0x0880 */ 130, 25, 0, 84,237, 0, 38, 30,233, 1, 8, 75, 95, 30, 0,113,
|
||||
/* 0x0890 */ 53, 2, 38, 30, 8, 21,137, 11,241, 2, 39, 30, 40,106, 44,120,
|
||||
/* 0x08a0 */ 242,179,141, 26, 12,160, 25,145,247, 3, 28, 42, 95, 1, 14,107,
|
||||
/* 0x08b0 */ 232, 0, 0, 84,127, 1, 2,235,224,250,255, 84,104, 1, 64, 57,
|
||||
/* 0x08c0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,141, 1, 64,121,
|
||||
/* 0x08d0 */ 73,125, 11, 83, 41,125, 13, 27,255, 0, 9,107, 98, 31, 0, 84,
|
||||
/* 0x08e0 */ 40,115, 29, 83,115, 0,128, 82,234, 1, 13, 75, 8,125, 64,147,
|
||||
/* 0x08f0 */ 8, 9, 0,145,173, 21,138, 11,228, 3, 39, 30,141, 1, 0,121,
|
||||
/* 0x0900 */ 102, 2, 39, 30,153, 5, 8,139,218, 0, 38, 30, 44, 0,128, 82,
|
||||
/* 0x0910 */ 6, 0, 0, 20, 13, 3, 0,121, 90, 7, 0,113,140,121, 31, 83,
|
||||
/* 0x0920 */ 233, 3, 8, 42, 32, 3, 0, 84, 63, 1, 14,107,147,121, 31, 83,
|
||||
/* 0x0930 */ 56,199, 44,139,232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,
|
||||
/* 0x0940 */ 160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,
|
||||
/* 0x0950 */ 8, 3, 64,121, 42,125, 11, 83,237, 1, 8, 75, 27, 21, 72, 75,
|
||||
/* 0x0960 */ 13, 21,141, 11, 72,125, 8, 27,255, 0, 8,107, 41, 1, 8, 75,
|
||||
/* 0x0970 */ 35,253,255, 84, 27, 3, 0,121, 90, 7, 0,113,231, 0, 8, 75,
|
||||
/* 0x0980 */ 108, 6, 0, 17, 33,253,255, 84,166, 68,166, 46,138, 0, 38, 30,
|
||||
/* 0x0990 */ 95, 14, 0,113,200, 0, 38, 30, 72, 1, 8, 75, 8, 1, 12, 11,
|
||||
/* 0x09a0 */ 6, 1, 39, 30,236, 22, 0, 84,234, 0, 38, 30, 31, 13, 0,113,
|
||||
/* 0x09b0 */ 220, 0,128, 82, 10,209,138, 26, 40, 0,128, 82, 74,101, 26, 83,
|
||||
/* 0x09c0 */ 74,125, 64,147, 74,193, 6,145, 91,249,127,211, 6, 0, 0, 20,
|
||||
/* 0x09d0 */ 44,106, 57,120,156, 7, 0,113, 8,121, 31, 83,233, 3, 10, 42,
|
||||
/* 0x09e0 */ 32, 3, 0, 84, 63, 1, 14,107, 19,121, 31, 83,121,199, 40,139,
|
||||
/* 0x09f0 */ 232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,192,240,255, 84,
|
||||
/* 0x0a00 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42, 42,106,121,120,
|
||||
/* 0x0a10 */ 45,125, 11, 83,236, 1, 10, 75, 90, 21, 74, 75, 76, 21,140, 11,
|
||||
/* 0x0a20 */ 170,125, 10, 27,255, 0, 10,107, 41, 1, 10, 75, 35,253,255, 84,
|
||||
/* 0x0a30 */ 58,106, 57,120,156, 7, 0,113,231, 0, 10, 75,104, 6, 0, 17,
|
||||
/* 0x0a40 */ 33,253,255, 84, 10, 1, 1, 81, 95, 13, 0,113, 45, 17, 0, 84,
|
||||
/* 0x0a50 */ 95, 53, 0,113, 72, 1, 0, 18, 77,125, 1, 19, 12, 1, 31, 50,
|
||||
/* 0x0a60 */ 140, 32, 0, 84,104, 0,102,158,187, 5, 0, 81,152, 33,219, 26,
|
||||
/* 0x0a70 */ 8,193, 42,203, 8, 65, 56,139, 40, 6, 8,139, 8, 9, 0,209,
|
||||
/* 0x0a80 */ 19, 1,103,158, 40, 0,128, 82,252, 3, 8, 42, 7, 0, 0, 20,
|
||||
/* 0x0a90 */ 83, 3, 0,121, 8,121, 31, 83,233, 3, 10, 42,123, 7, 0,113,
|
||||
/* 0x0aa0 */ 156,123, 31, 83,128, 14, 0, 84,106, 2,102,158, 63, 1, 14,107,
|
||||
/* 0x0ab0 */ 25,121, 31, 83, 90,197, 40,139,232, 0, 0, 84,127, 1, 2,235,
|
||||
/* 0x0ac0 */ 41, 93, 24, 83,128,234,255, 84,106, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0ad0 */ 71, 33, 7, 42, 74, 3, 64,121, 45,125, 11, 83,243, 1, 10, 75,
|
||||
/* 0x0ae0 */ 76, 21, 74, 75, 83, 21,147, 11,170,125, 10, 27,255, 0, 10,107,
|
||||
/* 0x0af0 */ 41, 1, 10, 75,227,252,255, 84, 76, 3, 0,121, 24, 3, 28, 42,
|
||||
/* 0x0b00 */ 231, 0, 10, 75, 40, 7, 0, 17,229,255,255, 23, 41, 0,128, 82,
|
||||
/* 0x0b10 */ 6, 0, 0, 20, 41,121, 31, 83, 74,107, 56,120, 63,253, 3,113,
|
||||
/* 0x0b20 */ 232, 3, 12, 42, 44, 3, 0, 84, 31, 1, 14,107, 51,121, 31, 83,
|
||||
/* 0x0b30 */ 56,125,127,147,232, 0, 0, 84,127, 1, 2,235, 8, 93, 24, 83,
|
||||
/* 0x0b40 */ 160,230,255, 84,106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,
|
||||
/* 0x0b50 */ 74,107,120,120, 12,125, 11, 83,237, 1, 10, 75,140,125, 10, 27,
|
||||
/* 0x0b60 */ 89, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107, 8, 1, 12, 75,
|
||||
/* 0x0b70 */ 35,253,255, 84,105, 6, 0, 17, 89,107, 56,120, 63,253, 3,113,
|
||||
/* 0x0b80 */ 231, 0, 12, 75, 45,253,255, 84, 42, 29, 0, 83, 95, 14, 0,113,
|
||||
/* 0x0b90 */ 138, 72, 48, 56,233, 3, 8, 42, 16, 6, 0, 17,204,225,255, 84,
|
||||
/* 0x0ba0 */ 191, 0, 16,107, 18, 0,128, 82,200,215,255, 84, 15,255,255, 23,
|
||||
/* 0x0bb0 */ 73, 3, 10, 75, 8, 21, 72, 75, 63, 1, 14,107, 40,106, 44,120,
|
||||
/* 0x0bc0 */ 231, 0, 10, 75,154, 97, 0,145,232, 0, 0, 84,127, 1, 2,235,
|
||||
/* 0x0bd0 */ 32,226,255, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0be0 */ 7, 33, 7, 42, 40,106,122,120, 42,125, 11, 83, 74,125, 8, 27,
|
||||
/* 0x0bf0 */ 255, 0, 10,107, 66, 10, 0, 84,233, 1, 8, 75, 95, 1, 14,107,
|
||||
/* 0x0c00 */ 173,129, 7,145, 8, 21,137, 11, 40,106, 58,120,232, 0, 0, 84,
|
||||
/* 0x0c10 */ 127, 1, 2,235, 0,224,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
|
||||
/* 0x0c20 */ 107, 5, 0,145, 7, 33, 7, 42, 40,106,109,120, 73,125, 11, 83,
|
||||
/* 0x0c30 */ 41,125, 8, 27,255, 0, 9,107,226, 16, 0, 84,234, 1, 8, 75,
|
||||
/* 0x0c40 */ 8, 21,138, 11, 40,106, 45,120,112,222,255, 52, 74, 0, 38, 30,
|
||||
/* 0x0c50 */ 8, 2, 28, 75, 12, 0, 38, 30, 95, 30, 0,113, 82,177,140, 26,
|
||||
/* 0x0c60 */ 138,104,104, 56,138, 72, 48, 56, 16, 6, 0, 17,221,254,255, 23,
|
||||
/* 0x0c70 */ 248, 3, 10, 42, 28, 7, 0, 49,128,219,255, 84, 82, 30, 0, 17,
|
||||
/* 0x0c80 */ 200, 0, 38, 30,159, 3, 16,107, 12, 9, 0, 17, 72,220,255, 84,
|
||||
/* 0x0c90 */ 232, 3, 16, 42, 2, 0, 0, 20, 76,218,255, 52, 10, 2, 28, 75,
|
||||
/* 0x0ca0 */ 16, 6, 0, 17, 31, 2, 5,107,140, 5, 0, 81,138,104,106, 56,
|
||||
/* 0x0cb0 */ 138, 72, 40, 56,232, 3, 16, 42, 3,255,255, 84,191, 0, 16,107,
|
||||
/* 0x0cc0 */ 8,207,255, 84,201,254,255, 23, 74, 1, 9, 75,173, 21, 77, 75,
|
||||
/* 0x0cd0 */ 95, 1, 14,107,141, 1, 0,121,231, 0, 9, 75,232, 0, 0, 84,
|
||||
/* 0x0ce0 */ 127, 1, 2,235,128,217,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
|
||||
/* 0x0cf0 */ 107, 5, 0,145, 7, 33, 7, 42,141, 5, 64,121, 73,125, 11, 83,
|
||||
/* 0x0d00 */ 41,125, 13, 27,255, 0, 9,107, 34, 7, 0, 84, 40,115, 29, 83,
|
||||
/* 0x0d10 */ 19, 1,128, 82,234, 1, 13, 75, 8,125, 64,147,100, 2, 39, 30,
|
||||
/* 0x0d20 */ 8, 9, 2,145,115, 0,128, 82,173, 21,138, 11,153, 5, 8,139,
|
||||
/* 0x0d30 */ 141, 5, 0,121,102, 2, 39, 30,244,254,255, 23, 41, 1, 10, 75,
|
||||
/* 0x0d40 */ 8, 21, 72, 75, 63, 1, 14,107, 40,106, 58,120,231, 0, 10, 75,
|
||||
/* 0x0d50 */ 154,193, 0,145,232, 0, 0, 84,127, 1, 2,235,192,213,255, 84,
|
||||
/* 0x0d60 */ 104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
|
||||
/* 0x0d70 */ 45,106,122,120, 40,125, 11, 83, 10,125, 13, 27,255, 0, 10,107,
|
||||
/* 0x0d80 */ 35, 5, 0, 84, 41, 1, 10, 75,173, 21, 77, 75, 63, 1, 14,107,
|
||||
/* 0x0d90 */ 45,106, 58,120,231, 0, 10, 75,140, 33, 1,145,232, 0, 0, 84,
|
||||
/* 0x0da0 */ 127, 1, 2,235,128,211,255, 84,104, 1, 64, 57, 41, 93, 24, 83,
|
||||
/* 0x0db0 */ 107, 5, 0,145, 7, 33, 7, 42, 45,106,108,120, 40,125, 11, 83,
|
||||
/* 0x0dc0 */ 10,125, 13, 27,255, 0, 10,107, 2, 8, 0, 84,232, 1, 13, 75,
|
||||
/* 0x0dd0 */ 233, 3, 28, 42, 60, 2, 38, 30,173, 21,136, 11, 45,106, 44,120,
|
||||
/* 0x0de0 */ 241, 2, 39, 30,247, 3, 9, 42, 21, 0, 0, 20, 8, 2,128, 82,
|
||||
/* 0x0df0 */ 231, 0, 9, 75,173, 21, 77, 75,153, 17, 8,145, 4, 1, 39, 30,
|
||||
/* 0x0e00 */ 8, 1,128, 82,141, 5, 0,121, 73, 1, 9, 75, 6, 1, 39, 30,
|
||||
/* 0x0e10 */ 190,254,255, 23,191, 0, 16,107, 82, 26, 0, 81, 40,196,255, 84,
|
||||
/* 0x0e20 */ 114,254,255, 23,232, 1, 13, 75,233, 3, 28, 42,252, 3, 23, 42,
|
||||
/* 0x0e30 */ 247, 3, 9, 42,173, 21,136, 11, 45,106, 58,120,136, 2, 38, 30,
|
||||
/* 0x0e40 */ 95, 30, 0,113, 9, 0, 38, 30, 44, 0,102,158, 18,177,137, 26,
|
||||
/* 0x0e50 */ 151,254,255, 23, 8, 21, 72, 75, 74, 1, 9, 75,231, 0, 9, 75,
|
||||
/* 0x0e60 */ 40,106, 45,120,246,255,255, 23,232, 3, 13, 42, 84,254,255, 23,
|
||||
/* 0x0e70 */ 170, 21, 0, 81, 63, 1, 14,107,140,121, 31, 83,232, 0, 0, 84,
|
||||
/* 0x0e80 */ 127, 1, 2,235, 41, 93, 24, 83, 96,204,255, 84,104, 1, 64, 57,
|
||||
/* 0x0e90 */ 107, 5, 0,145, 7, 33, 7, 42, 41,125, 1, 83,255, 0, 9,107,
|
||||
/* 0x0ea0 */ 99, 0, 0, 84,231, 0, 9, 75,140, 1, 0, 50, 74, 5, 0,113,
|
||||
/* 0x0eb0 */ 33,254,255, 84, 8, 32, 25,145,152,109, 28, 83,155, 0,128, 82,
|
||||
/* 0x0ec0 */ 19, 1,103,158,240,254,255, 23,232, 3, 28, 42,231, 0, 10, 75,
|
||||
/* 0x0ed0 */ 173, 21, 77, 75,252, 3, 21, 42, 45,106, 44,120, 42, 1, 10, 75,
|
||||
/* 0x0ee0 */ 53, 2, 38, 30,241, 2, 39, 30,247, 3, 8, 42,212,255,255, 23,
|
||||
/* 0x0ef0 */ 240, 3, 5, 42,227, 19,189,169,229, 27, 1,169,254, 19, 0,249,
|
||||
/* 0x0f00 */ 232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139,
|
||||
/* 0x0f10 */ 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,
|
||||
/* 0x0f20 */ 174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,
|
||||
/* 0x0f30 */ 228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82,
|
||||
/* 0x0f40 */ 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185,
|
||||
/* 0x0f50 */ 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11,
|
||||
/* 0x0f60 */ 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170,
|
||||
/* 0x0f70 */ 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,
|
||||
/* 0x0f80 */ 232, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,
|
||||
/* 0x0f90 */ 226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185,
|
||||
/* 0x0fa0 */ 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84,
|
||||
/* 0x0fb0 */ 227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57,
|
||||
/* 0x0fc0 */ 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26,
|
||||
/* 0x0fd0 */ 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42,
|
||||
/* 0x0fe0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84,
|
||||
/* 0x0ff0 */ 227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83,
|
||||
/* 0x1000 */ 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,
|
||||
/* 0x1010 */ 202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107,
|
||||
/* 0x1020 */ 193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20,
|
||||
/* 0x1030 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84,
|
||||
/* 0x1040 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,
|
||||
/* 0x1050 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20,
|
||||
/* 0x1060 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,
|
||||
/* 0x1070 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185,
|
||||
/* 0x1080 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,
|
||||
/* 0x1090 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148,
|
||||
/* 0x10a0 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,
|
||||
/* 0x10b0 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x10c0 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,
|
||||
/* 0x10d0 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203,
|
||||
/* 0x10e0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,
|
||||
/* 0x10f0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,
|
||||
/* 0x1100 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,
|
||||
/* 0x1110 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,
|
||||
/* 0x1120 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x1130 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,
|
||||
/* 0x1140 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,
|
||||
/* 0x1150 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82,
|
||||
/* 0x1160 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,
|
||||
/* 0x1170 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,
|
||||
/* 0x1180 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145,
|
||||
/* 0x1190 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,
|
||||
/* 0x11a0 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
|
||||
/* 0x11b0 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,
|
||||
/* 0x11c0 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,
|
||||
/* 0x11d0 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145,
|
||||
/* 0x11e0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148,
|
||||
/* 0x11f0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113,
|
||||
/* 0x1200 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,
|
||||
/* 0x1210 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,
|
||||
/* 0x1220 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139,
|
||||
/* 0x1230 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,
|
||||
/* 0x1240 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113,
|
||||
/* 0x1250 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82,
|
||||
/* 0x1260 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148,
|
||||
/* 0x1270 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,
|
||||
/* 0x1280 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,
|
||||
/* 0x1290 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17,
|
||||
/* 0x12a0 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,
|
||||
/* 0x12b0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,
|
||||
/* 0x12c0 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57,
|
||||
/* 0x12d0 */ 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,
|
||||
/* 0x12e0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,
|
||||
/* 0x12f0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,
|
||||
/* 0x1300 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,
|
||||
/* 0x1310 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84,
|
||||
/* 0x1320 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42,
|
||||
/* 0x1330 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,
|
||||
/* 0x1340 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,
|
||||
/* 0x1350 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,
|
||||
/* 0x1360 */ 231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58,
|
||||
/* 0x1370 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,
|
||||
/* 0x1380 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121,
|
||||
/* 0x1390 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82,
|
||||
/* 0x13a0 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82,
|
||||
/* 0x13b0 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82,
|
||||
/* 0x13c0 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46,
|
||||
/* 0x13d0 */ 10, 0, 0, 0, 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82,
|
||||
/* 0x13e0 */ 1, 0, 0,212,192, 3, 95,214,244, 3, 30,170, 0,195, 94,184,
|
||||
/* 0x13f0 */ 25, 83, 0,209, 57, 3, 0,203,129, 6, 64,185, 4, 0,128, 18,
|
||||
/* 0x1400 */ 67, 4,128, 82, 0, 0,128,210,243,255,255,151,224, 7,191,169,
|
||||
/* 0x1410 */ 250,111,191,169,251, 3, 0,170,226, 3, 0,170,225, 15, 31,248,
|
||||
/* 0x1420 */ 227, 3, 0,145,128, 66, 0,145,129, 10, 64,185,132, 50, 64, 57,
|
||||
/* 0x1430 */ 0, 3, 63,214,232, 7, 65,248,122, 3, 0,249,115, 19, 0,185,
|
||||
/* 0x1440 */ 162, 0,128, 82,225, 27, 64,185,224, 3, 27,170, 72, 28,128, 82,
|
||||
/* 0x1450 */ 1, 0, 0,212,128, 2, 64,185, 0,116, 30, 18, 29,195, 94,184,
|
||||
/* 0x1460 */ 60, 3, 0,139, 96, 83, 0,145, 0, 0, 31,214, 1,132, 64,248,
|
||||
/* 0x1470 */ 225,255,255,181,192, 3, 95,214,248, 3, 30,170,224, 99, 0,145,
|
||||
/* 0x1480 */ 251,255,255,151,250,255,255,151,246, 3, 0,170, 1, 8,193,168,
|
||||
/* 0x1490 */ 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53, 34, 0,160,210,
|
||||
/* 0x14a0 */ 250, 3, 2,203, 27, 0,128, 18,208,255,255,151, 0, 0, 0, 0,
|
||||
/* 0x14b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
|
||||
/* 0x14c0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10,
|
||||
/* 0x14d0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
|
||||
/* 0x14e0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
|
||||
/* 0x14f0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1500 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
|
||||
/* 0x1510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
|
||||
/* 0x1520 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
|
||||
/* 0x1530 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
|
||||
/* 0x1540 */ 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52,
|
||||
/* 0x1550 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x1560 */ 83, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32,
|
||||
/* 0x1570 */ 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48,
|
||||
/* 0x1580 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x1590 */ 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32,
|
||||
/* 0x15a0 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32,
|
||||
/* 0x15b0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
||||
/* 0x15c0 */ 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x15d0 */ 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53,
|
||||
/* 0x15e0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x15f0 */ 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
|
||||
/* 0x1600 */ 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32,
|
||||
/* 0x1610 */ 48, 49, 99, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x1620 */ 69, 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32,
|
||||
/* 0x1630 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32,
|
||||
/* 0x1640 */ 48, 32, 32, 48, 51, 51, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
||||
/* 0x1650 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65,
|
||||
/* 0x1660 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32,
|
||||
/* 0x1670 */ 48, 32, 32, 48, 32, 32, 48, 52, 56, 48, 32, 32, 50, 42, 42, 48,
|
||||
/* 0x1680 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76,
|
||||
/* 0x1690 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54,
|
||||
/* 0x16a0 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 56, 99, 32, 32, 50,
|
||||
/* 0x16b0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32,
|
||||
/* 0x16c0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32,
|
||||
/* 0x16d0 */ 48, 52, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,102, 52,
|
||||
/* 0x16e0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x16f0 */ 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32,
|
||||
/* 0x1700 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57,
|
||||
/* 0x1710 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x1720 */ 83, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32,
|
||||
/* 0x1730 */ 32, 32, 32, 32, 48, 51,101, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
||||
/* 0x1740 */ 49, 51, 57, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x1750 */ 69, 78, 84, 83, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78,
|
||||
/* 0x1760 */ 90, 32, 32, 32, 32, 32, 32, 48,100, 99, 32, 32, 48, 32, 32, 48,
|
||||
/* 0x1770 */ 32, 32, 48, 49, 51,100, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67,
|
||||
/* 0x1780 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
|
||||
/* 0x1790 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
|
||||
/* 0x17b0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65,
|
||||
/* 0x17c0 */ 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x17e0 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
|
||||
/* 0x17f0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1800 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
|
||||
/* 0x1810 */ 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
|
||||
/* 0x1820 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1830 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69,
|
||||
/* 0x1840 */ 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48,
|
||||
/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
||||
/* 0x1860 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
|
||||
/* 0x1870 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1890 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50,
|
||||
/* 0x18a0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18b0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68,
|
||||
/* 0x18c0 */ 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x18e0 */ 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10,
|
||||
/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1900 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76,
|
||||
/* 0x1910 */ 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
|
||||
/* 0x1920 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1930 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1940 */ 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
|
||||
/* 0x1950 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1960 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95,
|
||||
/* 0x1970 */ 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1980 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1990 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
|
||||
/* 0x19a0 */ 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10,
|
||||
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48,
|
||||
/* 0x19d0 */ 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19e0 */ 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
|
||||
/* 0x19f0 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116,
|
||||
/* 0x1a00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a10 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32,
|
||||
/* 0x1a20 */ 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,
|
||||
/* 0x1a30 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48,
|
||||
/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
|
||||
/* 0x1a50 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48,
|
||||
/* 0x1a60 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,
|
||||
/* 0x1a70 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
|
||||
/* 0x1a90 */ 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108,
|
||||
/* 0x1aa0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
|
||||
/* 0x1ab0 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ac0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90,
|
||||
/* 0x1ad0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,
|
||||
/* 0x1ae0 */ 101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
|
||||
/* 0x1b00 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101,
|
||||
/* 0x1b10 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1b30 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70,
|
||||
/* 0x1b40 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
|
||||
/* 0x1b50 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
|
||||
/* 0x1b60 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
|
||||
/* 0x1b70 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
|
||||
/* 0x1b80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
|
||||
/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1ba0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32,
|
||||
/* 0x1bb0 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54,
|
||||
/* 0x1bd0 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73,
|
||||
/* 0x1be0 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bf0 */ 48, 48, 48, 97, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
|
||||
/* 0x1c00 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76,
|
||||
/* 0x1c10 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83,
|
||||
/* 0x1c20 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
||||
/* 0x1c30 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
||||
/* 0x1c40 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c50 */ 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95,
|
||||
/* 0x1c60 */ 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1c70 */ 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
||||
/* 0x1c80 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
|
||||
/* 0x1c90 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x1ca0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x1cb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x1cc0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cd0 */ 100, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83,
|
||||
/* 0x1ce0 */ 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
|
||||
/* 0x0040 */ 0, 0, 0, 0,224, 7,191,169,211,255,255, 24,224, 99, 0,145,
|
||||
/* 0x0050 */ 60, 0, 0,148, 59, 0, 0,148,246, 3, 0,170,255,131, 0,209,
|
||||
/* 0x0060 */ 1, 8,193,168, 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53,
|
||||
/* 0x0070 */ 34, 0,160,210,250, 3, 2,203,250, 3, 0,249, 0, 0, 0,148,
|
||||
/* 0x0080 */ 244, 3, 30,170, 1, 0,128, 82,128, 98, 0,209,232, 34,128, 82,
|
||||
/* 0x0090 */ 1, 0, 0,212,251, 3, 0, 42,128, 6, 64,185,253, 3, 0,145,
|
||||
/* 0x00a0 */ 160, 3, 0,203, 0,236,124,146, 31, 0, 0,145,226, 3, 0,170,
|
||||
/* 0x00b0 */ 225, 15, 31,248,227, 3, 0,145,128, 66, 0,145,129, 10, 64,185,
|
||||
/* 0x00c0 */ 132, 50, 64, 57, 34, 0, 0,148,232, 7, 65,248,250, 3, 0,249,
|
||||
/* 0x00d0 */ 130, 6, 64,185,225, 3, 0,145,224, 3, 27, 42, 8, 8,128, 82,
|
||||
/* 0x00e0 */ 1, 0, 0,212,191, 3, 0,145, 5, 0,128,210,228, 3, 27, 42,
|
||||
/* 0x00f0 */ 35, 0,128, 82,162, 0,128, 82,129, 6, 64,185,225, 15, 0,249,
|
||||
/* 0x0100 */ 0, 0,128,210,200, 27,128, 82, 1, 0, 0,212,224, 11, 0,249,
|
||||
/* 0x0110 */ 252, 3, 0,170,224, 3, 27, 42, 40, 7,128, 82, 1, 0, 0,212,
|
||||
/* 0x0120 */ 253, 11, 64,185,129, 2, 64,185,158, 83, 0,145,189, 3, 1, 75,
|
||||
/* 0x0130 */ 253, 7, 0,249, 33,120, 30, 18, 60, 3, 1,139,192, 3, 31,214,
|
||||
/* 0x0140 */ 1,132, 64,248,225,255,255,181,192, 3, 95,214, 1, 64, 33,139,
|
||||
/* 0x0150 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x0160 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||
/* 0x0170 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
|
||||
/* 0x0180 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
|
||||
/* 0x0190 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
|
||||
/* 0x01a0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
|
||||
/* 0x01b0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
|
||||
/* 0x01c0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
|
||||
/* 0x01d0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
|
||||
/* 0x01e0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
|
||||
/* 0x01f0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x0200 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
|
||||
/* 0x0210 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
|
||||
/* 0x0220 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x0230 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
|
||||
/* 0x0240 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x0250 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0260 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
|
||||
/* 0x0270 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
|
||||
/* 0x0280 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
|
||||
/* 0x0290 */ 117,112,120, 0,217, 19, 1,209, 32, 3, 64,185, 57, 67, 32,203,
|
||||
/* 0x02a0 */ 224, 7, 0,249,192, 3, 63,214, 0, 0, 0, 0,102,105,108,101,
|
||||
/* 0x02b0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,
|
||||
/* 0x02c0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,
|
||||
/* 0x02d0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
|
||||
/* 0x02e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
|
||||
/* 0x02f0 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0300 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0310 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
|
||||
/* 0x0320 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
|
||||
/* 0x0330 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x0340 */ 50, 53, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32,
|
||||
/* 0x0350 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
|
||||
/* 0x0360 */ 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32,
|
||||
/* 0x0370 */ 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 57, 48, 32, 32,
|
||||
/* 0x0380 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
|
||||
/* 0x0390 */ 32, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32,
|
||||
/* 0x03a0 */ 32, 48, 49, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 57, 48,
|
||||
/* 0x03b0 */ 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x03c0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
|
||||
/* 0x03d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x03e0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
|
||||
/* 0x03f0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48,
|
||||
/* 0x0400 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
||||
/* 0x0410 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
|
||||
/* 0x0420 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x0440 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70,
|
||||
/* 0x0450 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0460 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
||||
/* 0x0470 */ 85, 78, 68, 42, 32, 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48,
|
||||
/* 0x0480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32,
|
||||
/* 0x0490 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
|
||||
/* 0x04a0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x04b0 */ 48, 48, 48, 48, 49, 48, 99, 32,103, 32, 32, 32, 32, 32, 70, 32,
|
||||
/* 0x04c0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 49, 52, 52, 32,117, 99,
|
||||
/* 0x04d0 */ 108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,
|
||||
/* 0x04e0 */ 115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x04f0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
|
||||
/* 0x0500 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101,
|
||||
/* 0x0510 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0530 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70,
|
||||
/* 0x0540 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
|
||||
/* 0x0550 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
|
||||
/* 0x0560 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
|
||||
/* 0x0570 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
|
||||
/* 0x0580 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
|
||||
/* 0x0590 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x05a0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32,
|
||||
/* 0x05b0 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x05c0 */ 48, 48, 48, 48, 48, 51, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54,
|
||||
/* 0x05d0 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73,
|
||||
/* 0x05e0 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x05f0 */ 48, 48, 48, 48, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
|
||||
/* 0x0600 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
|
||||
/* 0x0610 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84,
|
||||
/* 0x0620 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
|
||||
/* 0x0630 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
|
||||
/* 0x0640 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0650 */ 48, 49, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66,
|
||||
/* 0x0660 */ 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
|
||||
};
|
||||
|
||||
1207
src/stub/arm64-linux.elf-fold.h
generated
1207
src/stub/arm64-linux.elf-fold.h
generated
File diff suppressed because it is too large
Load Diff
@ -249,7 +249,7 @@ eof_n2b:
|
||||
mov %r12,%arg5 // mfd
|
||||
push $MAP_SHARED; pop %sys4
|
||||
push %arg3; pop %arg2 // LENU
|
||||
push $PROT_WRITE|PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
|
||||
push $PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
|
||||
subl %edi,%edi // (%arg1)dst = 0; // kernel chooses addr
|
||||
push $__NR_mmap; pop %rax; call sys_check
|
||||
push %rax // MATCH_12
|
||||
|
||||
@ -650,10 +650,10 @@ upx_main( // returns entry address
|
||||
/*arg4*/ ElfW(auxv_t) *const av
|
||||
#if defined(__x86_64) //{
|
||||
/*arg5*/ , ElfW(Addr) elfaddr // In: &ElfW(Ehdr) for stub
|
||||
#elif defined(__powerpc64__) //}{
|
||||
/*arg5*/ , ElfW(Addr) *p_reloc // In: &ElfW(Ehdr) for stub; Out: 'slide' for PT_INTERP
|
||||
#elif defined(__aarch64__) //}{
|
||||
/*arg5*/ , ElfW(Addr) elfaddr
|
||||
#elif defined(__powerpc64__) //}{
|
||||
/*arg5*/ , ElfW(Addr) *p_reloc // In: &ElfW(Ehdr) for stub; Out: 'slide' for PT_INTERP
|
||||
#endif //}
|
||||
)
|
||||
{
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
*/
|
||||
|
||||
#include "arch/arm64/v8/macros.S"
|
||||
#define bkpt brk #0
|
||||
NBPW= 8
|
||||
|
||||
sz_Elf64_Phdr= 56
|
||||
@ -49,7 +50,6 @@ sz_b_info= 12
|
||||
sz_cpr= 4
|
||||
b_method= 8
|
||||
|
||||
is_ptinterp= (1<<0)
|
||||
unmap_all_pages= (1<<1)
|
||||
|
||||
AT_NULL= 0 // <elf.h>
|
||||
@ -66,6 +66,7 @@ PROT_READ= 1
|
||||
PROT_WRITE= 2
|
||||
PROT_EXEC= 4
|
||||
|
||||
MAP_SHARED= 1
|
||||
MAP_PRIVATE= 2
|
||||
MAP_FIXED= 0x10
|
||||
MAP_ANONYMOUS= 0x20
|
||||
@ -74,13 +75,28 @@ PAGE_SHIFT= 16 // 64KiB PAGE_SIZE
|
||||
PAGE_SIZE = -(~0<<PAGE_SHIFT)
|
||||
|
||||
// /usr/include/asm-generic/unistd.h
|
||||
__NR_close = 0x39 // 57
|
||||
__NR_exit = 0x5d // 93
|
||||
__NR_memfd_create= 0x117 // 279
|
||||
__NR_mmap = 0xde // 222
|
||||
__NR_mprotect = 0xe2 // 226
|
||||
__NR_munmap = 0xd7 // 215
|
||||
__NR_openat = 0x38 // 56
|
||||
__NR_write = 0x40 // 64
|
||||
|
||||
arg1 .req x0
|
||||
arg1w .req w0
|
||||
arg2 .req x1
|
||||
arg2w .req w1
|
||||
arg3 .req x2
|
||||
arg3w .req w2
|
||||
arg4 .req x3
|
||||
arg4w .req w3
|
||||
arg5 .req x4
|
||||
arg5w .req w4
|
||||
arg6 .req x5
|
||||
arg6w .req w5
|
||||
|
||||
#ifndef DEBUG /*{*/
|
||||
#define DEBUG 0
|
||||
#endif /*}*/
|
||||
@ -92,26 +108,23 @@ __NR_write = 0x40 // 64
|
||||
#define TRACE(arg) /*empty*/
|
||||
#endif //}
|
||||
|
||||
//lr .req x30
|
||||
//lr .req x30
|
||||
//fp .req x29
|
||||
wLENU .req w29 // un-folded fold_begin and upx_main
|
||||
xLENU .req x29
|
||||
xADRU .req x28
|
||||
xADRC .req x28 // OVERLAPS xADRU
|
||||
|
||||
wfd .req w27 // file descriptor of /proc/self/exe
|
||||
wLENC .req w29
|
||||
xLENC .req x29
|
||||
|
||||
mfd .req w27 // file descriptor from memfd_create
|
||||
xfd .req x27
|
||||
xPMASK .req x26 // PAGE_MASK
|
||||
// The above 4 registers are passed on stack to unfolded code.
|
||||
// The above 4 registers are passed on *stack* to unfolded code.
|
||||
|
||||
xelfa .req x25 // hi &Elf64_Ehdr
|
||||
xfexp .req x24 // de-compressor
|
||||
// xPMASK, xelfa, xfexp still are used here.
|
||||
|
||||
wLENC .req w29 // compressed input OVERLAPS wLENU
|
||||
xLENC .req x29
|
||||
xADRC .req x28 // OVERLAPS xADRU
|
||||
xADRM .req x27 // conveneinence; OVERLAPS wfd, xfd
|
||||
wLENM .req w23
|
||||
xLENM .req x23
|
||||
// xPMASK, xelfa still are used here.
|
||||
|
||||
xauxv .req x22
|
||||
wszuf .req w21
|
||||
@ -129,60 +142,50 @@ wPrivAnon .req w19
|
||||
|
||||
section ELFMAINX
|
||||
sz_pack2= .-4 // placed there by ::pack3()
|
||||
mflg:
|
||||
.int MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
|
||||
mflg:
|
||||
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
|
||||
_start: .globl _start
|
||||
#if DEBUG /*{*/
|
||||
bkpt // DEBUG 0xd4200000
|
||||
TRACE(#0)
|
||||
#endif /*}*/
|
||||
stp x0,x1,[sp,#-2*NBPW]! // ABI: -static crt0 might pass data in x0,x1
|
||||
ldr wPrivAnon,mflg
|
||||
|
||||
add x0,sp,#(1+ 2)*NBPW
|
||||
call zfind // avoid feint of 0==argc; out: x0= &envp
|
||||
call zfind; mov xauxv,x0 // &Elf64_auxv
|
||||
|
||||
sub sp,sp,#4*NBPW // space for PMASK, SZPK2, ADRU, LENU
|
||||
F_PMASK= 0 * NBPW
|
||||
F_SZPK2= 1 * NBPW
|
||||
F_ADRU= 2 * NBPW
|
||||
F_LENU= 3 * NBPW
|
||||
|
||||
// set xPMASK by finding actual page size in Elf64_auxv
|
||||
1:
|
||||
ldp x1,x2,[x0],#2*NBPW
|
||||
cmp w1,#AT_PAGESZ; beq 2f
|
||||
cbnz w1,1b // AT_NULL
|
||||
mov x2,#PAGE_SIZE // default
|
||||
2:
|
||||
neg xPMASK,x2 // save for folded code
|
||||
str xPMASK,[sp,#F_PMASK]
|
||||
|
||||
call main
|
||||
L00:
|
||||
mov xFOLD,lr
|
||||
|
||||
f_exp:
|
||||
f_decompress:
|
||||
mov w1,#0 // flags
|
||||
add x0,xFOLD,#strupx - LxFOLD
|
||||
do_sys __NR_memfd_create; mov mfd,w0
|
||||
|
||||
section NRV_HEAD
|
||||
// empty
|
||||
section NRV_TAIL
|
||||
// empty
|
||||
|
||||
// FIXME
|
||||
#define NO_METHOD_CHECK 1
|
||||
|
||||
section NRV2E
|
||||
#include "arch/arm64/v8/nrv2e_d32.S"
|
||||
|
||||
section NRV2D
|
||||
#include "arch/arm64/v8/nrv2d_d32.S"
|
||||
|
||||
section NRV2B
|
||||
#include "arch/arm64/v8/nrv2b_d32.S"
|
||||
|
||||
#include "arch/arm64/v8/lzma_d.S"
|
||||
|
||||
section ELFMAINY
|
||||
end_decompress: .globl end_decompress
|
||||
|
||||
msg_SELinux:
|
||||
mov w2,#L71 - L70 // length
|
||||
adr x1,L70 // message text
|
||||
mov w0,#2 // fd stderr
|
||||
do_sys __NR_write
|
||||
die:
|
||||
mov w0,#127
|
||||
do_sys __NR_exit
|
||||
L70:
|
||||
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
|
||||
L71:
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section ELFMAINZ
|
||||
.balign 4
|
||||
mmapRW0:
|
||||
mov x5,#0 // offset
|
||||
mmapRW:
|
||||
mov w2,#PROT_WRITE|PROT_READ
|
||||
mmap:
|
||||
do_sys __NR_mmap
|
||||
ret
|
||||
// alloca() for de-compressed stub
|
||||
ldr w0,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
|
||||
mov fp,sp
|
||||
sub x0,fp,x0
|
||||
and x0,x0,#-2*NBPW
|
||||
mov sp,x0
|
||||
|
||||
src .req x0
|
||||
lsrc .req w1
|
||||
@ -190,49 +193,17 @@ dst .req x2
|
||||
ldst .req x3
|
||||
xmeth .req x4
|
||||
wmeth .req w4
|
||||
unfold:
|
||||
mov xFOLD,lr
|
||||
// Reserve enough space to decompress the folded code of the stub
|
||||
ldr w0, [xfexp,#sz_pack2 - f_exp]
|
||||
add xelfa,xfexp,#sz_pack2 - f_exp
|
||||
sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub
|
||||
ldr w1,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
|
||||
mov w4,#-1 // fd
|
||||
mov w3,#MAP_PRIVATE|MAP_ANONYMOUS
|
||||
mov x0,#0 // kernel chooses addr
|
||||
call mmapRW0
|
||||
PUSH2(x0,x1) // ADRU, LENU
|
||||
PUSH2(xPMASK,xfd)
|
||||
mov xADRM,x0 // convenience
|
||||
// Decompress folded code
|
||||
|
||||
// Decompress folded code of this stub
|
||||
mov dst,x0 // ADRU
|
||||
PUSH1(x1); mov ldst,sp // &slot on stack; lzma uses for EOF
|
||||
add src, xFOLD,#sz_b_info + LBINFO - LxFOLD // folded code
|
||||
ldr lsrc, [XFOLD,#sz_cpr + LBINFO - LxFOLD]
|
||||
ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD]
|
||||
TRACE(#1)
|
||||
callr xfexp // decompress it
|
||||
call f_expand // decompress it
|
||||
POP1(x8) // discard lzma EOF
|
||||
|
||||
// propagate PAGE_MASK and wPrivAnon
|
||||
str xPMASK,[xADRM]
|
||||
str wPrivAnon,[xADRM,#NBPW + 2*4] // bits_privanon in unfolded code
|
||||
|
||||
// PROT_EXEC
|
||||
mov w2,#PROT_EXEC|PROT_READ
|
||||
ldr w1,[sp,3*NBPW] // LENU
|
||||
mov x0,xADRM // base
|
||||
TRACE(#2)
|
||||
do_sys __NR_mprotect
|
||||
|
||||
// Use the unfolded code
|
||||
ldr w0,[xFOLD, #LOBINFO - LxFOLD] // O_BINFO
|
||||
bic w0,w0,#is_ptinterp | unmap_all_pages
|
||||
ldr wLENC,[xfexp,#sz_pack2 - f_exp]
|
||||
add xADRC,xelfa,x0 // &b_info of compressed input data
|
||||
add x0,xADRM,#NBPW + 3*4 // jmp over get_page_mask() and bits_privanon
|
||||
jr x0
|
||||
|
||||
.unreq src
|
||||
.unreq lsrc
|
||||
.unreq dst
|
||||
@ -240,6 +211,52 @@ unfold:
|
||||
.unreq xmeth
|
||||
.unreq wmeth
|
||||
|
||||
str xPMASK,[sp] // propagate PAGE_MASK
|
||||
|
||||
// Write de-compressed stub
|
||||
ldr w2,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
|
||||
mov x1,sp
|
||||
mov w0,mfd
|
||||
do_sys __NR_write
|
||||
mov sp,fp
|
||||
|
||||
mov arg6,#0 // beginning of file
|
||||
mov arg5w,mfd
|
||||
mov arg4w,#MAP_SHARED // modes
|
||||
mov arg3w,#PROT_READ|PROT_EXEC // FIXME: add PROT_WRITE for DEBUG only
|
||||
ldr arg2w,[xFOLD,#sz_unc + LBINFO - LxFOLD]
|
||||
str arg2,[sp,#F_LENU]
|
||||
mov arg1,#0 // addr (kernel chooses)
|
||||
do_sys __NR_mmap; str x0,[sp,#F_ADRU]; mov xADRU,x0
|
||||
|
||||
mov arg1w,mfd
|
||||
do_sys __NR_close
|
||||
|
||||
// Use the unfolded stub
|
||||
ldr wLENC,[sp,#F_SZPK2]
|
||||
ldr w1,[xFOLD, #LOBINFO - LxFOLD] // O_BINFO
|
||||
add lr,xADRU,#3*4 + NBPW // jmp to fold_begin
|
||||
sub wLENC,wLENC,w1
|
||||
str xLENC,[sp,#F_SZPK2]
|
||||
bic w1,w1,#unmap_all_pages
|
||||
add xADRC,xelfa,x1 // &b_info of compressed input data
|
||||
jr lr // goto unfolded stub
|
||||
|
||||
zfind:
|
||||
ldr x1,[x0],#NBPW; cbnz x1,zfind
|
||||
ret
|
||||
|
||||
f_expand:
|
||||
#define NO_METHOD_CHECK 1
|
||||
#include "arch/arm64/v8/nrv2b_d32.S"
|
||||
|
||||
section ELFMAINY
|
||||
end_decompress: .globl end_decompress
|
||||
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section ELFMAINZ
|
||||
.balign 4
|
||||
#if DEBUG //{
|
||||
TRACE_BUFLEN=1024
|
||||
trace: // preserves condition code (thank you, CBNZ) [if write() does!]
|
||||
@ -334,33 +351,23 @@ hex:
|
||||
.ascii "0123456789abcdef"
|
||||
#endif //}
|
||||
|
||||
zfind:
|
||||
ldr x1,[x0],#NBPW; cbnz x1,zfind
|
||||
ret
|
||||
strupx:
|
||||
.asciz "upx"
|
||||
.balign 4
|
||||
|
||||
main:
|
||||
mov xfexp,lr
|
||||
add x0,sp,#3*NBPW; call zfind // in: x0= &argv; out: x0= &envp
|
||||
call zfind; mov xauxv,x0 // &Elf64_auxv
|
||||
|
||||
// set xPMASK by finding actual page size in Elf64_auxv
|
||||
1:
|
||||
ldp x1,x2,[x0],#sz_auxv
|
||||
cmp w1,#AT_PAGESZ; beq 2f
|
||||
cbnz w1,1b // AT_NULL
|
||||
mov x2,#PAGE_SIZE // default
|
||||
2:
|
||||
neg xPMASK,x2 // save for folded code
|
||||
|
||||
mov wfd,#-1
|
||||
|
||||
call unfold
|
||||
lr .req x30
|
||||
add xelfa,lr,#sz_pack2 - L00 // &sz_pack2
|
||||
ldr w0,[xelfa]
|
||||
sub xelfa,xelfa,w0,uxtw
|
||||
str x0,[sp,#F_SZPK2]
|
||||
callr lr
|
||||
LxFOLD:
|
||||
LOBINFO:
|
||||
.int O_BINFO // o_binfo | is_ptinterp | unmap_all_pages
|
||||
.int O_BINFO
|
||||
LBINFO:
|
||||
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}
|
||||
/*
|
||||
vi:ts=8:et:nowrap
|
||||
vaddi:ts=8:et:nowrap
|
||||
*/
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@ fold_begin: // known offset (NBPW + 3*4)
|
||||
//// brk #0 // DEBUG
|
||||
b L10
|
||||
|
||||
// In: sp/ PMASK,fd,ADRU,LENU, x0,x1, argc,argv,...
|
||||
// In: sp/ PMASK,LENC,ADRU,LENU, x0,x1, argc,argv,...
|
||||
//lr .req x30
|
||||
wLENC .req w29 // compressed input
|
||||
xLENC .req x29
|
||||
@ -140,7 +140,7 @@ mprotect: .globl mprotect
|
||||
do_sys __NR_mprotect; ret
|
||||
|
||||
L10:
|
||||
add sp,sp,#2*NBPW // toss xPMASK,xfd
|
||||
add sp,sp,#2*NBPW // toss xPMASK,sz_pack2
|
||||
POP2(xADRU,xLENU)
|
||||
|
||||
mov x7,sp // old_sp: x0,x1,argc,...
|
||||
@ -213,11 +213,8 @@ no_buf_pse:
|
||||
no_env_pse:
|
||||
|
||||
/* Construct arglist for upx_main */
|
||||
ldr x7,PAGE_MASK
|
||||
mov x6,xelfa // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
|
||||
mov x4,xelfa // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
|
||||
sub sp,sp,#MAX_ELF_HDR_64 + OVERHEAD // alloca
|
||||
adr x5,f_unfilter
|
||||
mov x4,xfexp // &f_decompress
|
||||
mov x3,xauxv // new &Elf64_auxv_t
|
||||
mov x2,sp // ehdr
|
||||
mov w1,wLENC // total size of compressed data
|
||||
@ -451,6 +448,8 @@ hex:
|
||||
.unreq cto
|
||||
.unreq fid
|
||||
|
||||
section SYSCALLS; .balign 4
|
||||
|
||||
__NR_SYSCALL_BASE= 0
|
||||
|
||||
__NR_exit = 0x5d + __NR_SYSCALL_BASE // 93
|
||||
@ -466,6 +465,8 @@ __NR_readlink = 0x4e + __NR_SYSCALL_BASE // 78
|
||||
__NR_mmap = 0xde + __NR_SYSCALL_BASE // 222
|
||||
__NR_mprotect = 0xe2 + __NR_SYSCALL_BASE // 226
|
||||
__NR_munmap = 0xd7 + __NR_SYSCALL_BASE // 215
|
||||
__NR_memfd_create= 0x117 + __NR_SYSCALL_BASE // 279
|
||||
__NR_ftruncate= 0x2e + __NR_SYSCALL_BASE // 46
|
||||
|
||||
.globl my_bkpt
|
||||
my_bkpt:
|
||||
@ -477,28 +478,28 @@ exit:
|
||||
do_sys __NR_exit
|
||||
|
||||
.globl read
|
||||
read:
|
||||
do_sys __NR_read; ret
|
||||
read: do_sys __NR_read; ret
|
||||
|
||||
.globl write
|
||||
write:
|
||||
do_sys __NR_write; ret
|
||||
write: do_sys __NR_write; ret
|
||||
|
||||
.globl close
|
||||
close:
|
||||
do_sys __NR_close; ret
|
||||
close: do_sys __NR_close; ret
|
||||
|
||||
.globl getpid
|
||||
getpid:
|
||||
do_sys __NR_getpid; ret
|
||||
getpid: do_sys __NR_getpid; ret
|
||||
|
||||
.globl brk
|
||||
brk:
|
||||
do_sys __NR_brk; ret
|
||||
brk: do_sys __NR_brk; ret
|
||||
|
||||
.globl munmap
|
||||
munmap:
|
||||
do_sys __NR_munmap; ret
|
||||
munmap: do_sys __NR_munmap; ret
|
||||
|
||||
.globl memfd_create
|
||||
memfd_create: do_sys __NR_memfd_create; ret
|
||||
|
||||
.globl ftruncate
|
||||
ftruncate: do_sys __NR_ftruncate; ret
|
||||
|
||||
.globl unlink
|
||||
unlink:
|
||||
@ -539,5 +540,15 @@ div10: .globl div10
|
||||
ret
|
||||
#endif /*}*/
|
||||
|
||||
memcpy: .globl memcpy // void *memcpy(void *dst, void const *src, size_t len)
|
||||
ldrb w3,[x1],#1; sub x2,x2,#1
|
||||
strb w3,[x0],#1; cbnz x2,memcpy
|
||||
ret
|
||||
|
||||
memset: .globl memset // void *memset(void *dst, int c, size_t len);
|
||||
strb w1,[x0],#1; sub x2,x2,#1
|
||||
cbnz x2,memset
|
||||
ret
|
||||
|
||||
// vi:ts=8:et:nowrap
|
||||
|
||||
|
||||
@ -30,19 +30,7 @@
|
||||
|
||||
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64")
|
||||
OUTPUT_ARCH(aarch64)
|
||||
/*ENTRY(_start)*/
|
||||
PHDRS
|
||||
{
|
||||
text PT_LOAD FILEHDR PHDRS FLAGS ( 5 ) ; /* r-x (no -w-) */
|
||||
data PT_LOAD ; /* for setting brk(0) */
|
||||
}
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
|
||||
.text : {
|
||||
*(.text)
|
||||
*(.data)
|
||||
} : text
|
||||
.data : {
|
||||
} : data
|
||||
. = SIZEOF_HEADERS + 12 ;
|
||||
}
|
||||
|
||||
1
src/stub/src/arm64-linux.elf-main2.c
Normal file
1
src/stub/src/arm64-linux.elf-main2.c
Normal file
@ -0,0 +1 @@
|
||||
#include "amd64-linux.elf-main2.c"
|
||||
37
src/stub/tmp/arm64-linux.elf-entry.bin.dump
generated
vendored
37
src/stub/tmp/arm64-linux.elf-entry.bin.dump
generated
vendored
@ -2,49 +2,24 @@ file format elf64-littleaarch64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 010 0 0 040 2**0 CONTENTS
|
||||
1 NRV_HEAD 0 0 0 050 2**0 CONTENTS
|
||||
2 NRV_TAIL 0 0 0 050 2**0 CONTENTS
|
||||
3 NRV2E 017c 0 0 050 2**0 CONTENTS
|
||||
4 NRV2D 0170 0 0 01cc 2**0 CONTENTS
|
||||
5 NRV2B 0144 0 0 033c 2**0 CONTENTS
|
||||
6 LZMA_ELF00 010c 0 0 0480 2**0 CONTENTS
|
||||
7 LZMA_DEC20 0968 0 0 058c 2**0 CONTENTS
|
||||
8 LZMA_DEC10 04a0 0 0 0ef4 2**0 CONTENTS
|
||||
9 LZMA_DEC30 0 0 0 01394 2**0 CONTENTS
|
||||
10 ELFMAINY 03e 0 0 01394 2**0 CONTENTS
|
||||
11 ELFMAINZ 0dc 0 0 013d4 2**2 CONTENTS
|
||||
0 ELFMAINX 0250 0 0 040 2**0 CONTENTS
|
||||
1 ELFMAINY 0 0 0 0290 2**0 CONTENTS
|
||||
2 ELFMAINZ 01c 0 0 0290 2**2 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
|
||||
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
|
||||
0000000000000000 l d ELFMAINX 0 ELFMAINX
|
||||
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
|
||||
0000000000000000 l d NRV_TAIL 0 NRV_TAIL
|
||||
0000000000000000 l d NRV2E 0 NRV2E
|
||||
0000000000000000 l d NRV2D 0 NRV2D
|
||||
0000000000000000 l d NRV2B 0 NRV2B
|
||||
0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00
|
||||
0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20
|
||||
0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10
|
||||
0000000000000000 l d ELFMAINY 0 ELFMAINY
|
||||
0000000000000000 *UND* 0 MFLG
|
||||
0000000000000004 g ELFMAINX 0 _start
|
||||
0000000000000000 g F NRV2E 017c ucl_nrv2e_decompress_32
|
||||
0000000000000000 g F NRV2D 0170 ucl_nrv2d_decompress_32
|
||||
0000000000000000 g F NRV2B 0144 ucl_nrv2b_decompress_32
|
||||
0000000000000000 g LZMA_DEC10 0 LzmaDecode
|
||||
000000000000010c g F ELFMAINX 0144 ucl_nrv2b_decompress_32
|
||||
0000000000000000 g ELFMAINY 0 end_decompress
|
||||
0000000000000000 *UND* 0 O_BINFO
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000000 R_AARCH64_ABS32 MFLG
|
||||
000000000000000c R_AARCH64_CALL26 ELFMAINZ+0x00000000000000a4
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_ELF00]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
|
||||
000000000000003c R_AARCH64_CALL26 ELFMAINZ+0x0000000000000004
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINZ]:
|
||||
OFFSET TYPE VALUE
|
||||
00000000000000d8 R_AARCH64_ABS32 O_BINFO
|
||||
0000000000000018 R_AARCH64_ABS32 O_BINFO
|
||||
|
||||
116
src/stub/tmp/arm64-linux.elf-fold.map
generated
vendored
116
src/stub/tmp/arm64-linux.elf-fold.map
generated
vendored
@ -6,48 +6,82 @@ Name Origin Length Attributes
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x00000000001000bc 0xae4
|
||||
*(.text)
|
||||
.text 0x00000000001000bc 0x300 tmp/arm64-linux.elf-fold.o
|
||||
0x00000000001000c4 get_page_mask
|
||||
0x00000000001000d4 mmap_privanon
|
||||
0x00000000001000e4 mmap
|
||||
0x0000000000100100 Pprotect
|
||||
0x0000000000100100 mprotect
|
||||
0x0000000000100318 my_bkpt
|
||||
0x0000000000100320 exit
|
||||
0x0000000000100328 read
|
||||
0x0000000000100334 write
|
||||
0x0000000000100340 close
|
||||
0x000000000010034c getpid
|
||||
0x0000000000100358 brk
|
||||
0x0000000000100364 munmap
|
||||
0x0000000000100370 unlink
|
||||
0x0000000000100384 readlink
|
||||
0x000000000010038c open
|
||||
0x00000000001003a8 __clear_cache
|
||||
.text 0x00000000001003bc 0x7e4 tmp/arm64-linux.elf-main.o
|
||||
0x0000000000100a38 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
.iplt 0x0000000000100ba0 0x0
|
||||
.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.rela.dyn 0x0000000000100ba0 0x0
|
||||
.rela.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.data
|
||||
0x000000000000004c . = (SIZEOF_HEADERS + 0xc)
|
||||
LOAD tmp/arm64-linux.elf-fold.o
|
||||
LOAD tmp/arm64-linux.elf-main.o
|
||||
LOAD tmp/arm64-expand.o
|
||||
LOAD tmp/arm64-linux.elf-main2.o
|
||||
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
|
||||
|
||||
.igot.plt 0x0000000000100ba0 0x0
|
||||
.igot.plt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.text 0x0000000000000000 0xaa8
|
||||
.text 0x0000000000000000 0x250 tmp/arm64-linux.elf-fold.o
|
||||
0x0000000000000008 get_page_mask
|
||||
0x0000000000000018 mmap_privanon
|
||||
0x0000000000000028 mmap
|
||||
0x0000000000000044 Pprotect
|
||||
0x0000000000000044 mprotect
|
||||
.text 0x0000000000000250 0x0 tmp/arm64-expand.o
|
||||
.text 0x0000000000000250 0x858 tmp/arm64-linux.elf-main2.o
|
||||
0x0000000000000904 underlay
|
||||
0x0000000000000970 upx_main
|
||||
|
||||
.bss 0x0000000000100ba0 0x0
|
||||
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
|
||||
.data 0x0000000000000000 0x0
|
||||
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000000000 0x0 tmp/arm64-expand.o
|
||||
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
|
||||
|
||||
.bss 0x0000000000000000 0x0
|
||||
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000000000 0x0 tmp/arm64-expand.o
|
||||
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
|
||||
|
||||
SYSCALLS 0x0000000000000000 0xe0
|
||||
SYSCALLS 0x0000000000000000 0xe0 tmp/arm64-linux.elf-fold.o
|
||||
0x0000000000000000 my_bkpt
|
||||
0x0000000000000008 exit
|
||||
0x0000000000000010 read
|
||||
0x000000000000001c write
|
||||
0x0000000000000028 close
|
||||
0x0000000000000034 getpid
|
||||
0x0000000000000040 brk
|
||||
0x000000000000004c munmap
|
||||
0x0000000000000058 memfd_create
|
||||
0x0000000000000064 ftruncate
|
||||
0x0000000000000070 unlink
|
||||
0x0000000000000084 readlink
|
||||
0x000000000000008c open
|
||||
0x00000000000000a8 __clear_cache
|
||||
0x00000000000000bc memcpy
|
||||
0x00000000000000d0 memset
|
||||
|
||||
EXP_HEAD 0x0000000000000000 0x104
|
||||
EXP_HEAD 0x0000000000000000 0x104 tmp/arm64-expand.o
|
||||
0x0000000000000000 f_expand
|
||||
|
||||
EXP_TAIL 0x0000000000000000 0x20
|
||||
EXP_TAIL 0x0000000000000000 0x20 tmp/arm64-expand.o
|
||||
0x0000000000000000 eof
|
||||
|
||||
NRV2E 0x0000000000000000 0x17c
|
||||
NRV2E 0x0000000000000000 0x17c tmp/arm64-expand.o
|
||||
0x0000000000000000 ucl_nrv2e_decompress_32
|
||||
|
||||
NRV2D 0x0000000000000000 0x170
|
||||
NRV2D 0x0000000000000000 0x170 tmp/arm64-expand.o
|
||||
0x0000000000000000 ucl_nrv2d_decompress_32
|
||||
|
||||
NRV2B 0x0000000000000000 0x144
|
||||
NRV2B 0x0000000000000000 0x144 tmp/arm64-expand.o
|
||||
0x0000000000000000 ucl_nrv2b_decompress_32
|
||||
|
||||
LZMA_ELF00 0x0000000000000000 0x10c
|
||||
LZMA_ELF00 0x0000000000000000 0x10c tmp/arm64-expand.o
|
||||
|
||||
LZMA_DEC20 0x0000000000000000 0x968
|
||||
LZMA_DEC20 0x0000000000000000 0x968 tmp/arm64-expand.o
|
||||
|
||||
LZMA_DEC10 0x0000000000000000 0x4a0
|
||||
LZMA_DEC10 0x0000000000000000 0x4a0 tmp/arm64-expand.o
|
||||
0x0000000000000000 LzmaDecode
|
||||
|
||||
LZMA_DEC30 0x0000000000000000 0x0
|
||||
LZMA_DEC30 0x0000000000000000 0x0 tmp/arm64-expand.o
|
||||
|
||||
Loading…
Reference in New Issue
Block a user