From 0430e7931e4c04bf95e962048f58dff8c33edeb8 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 27 Oct 2017 20:07:32 -0700 Subject: [PATCH] PowerPC64 stub: on syscall, real Linux trashes r13 and below (except r1, r2, and input args!) So, r12 .e_entry for musl must copy from a saved register. [qemu-ppc64 doesn't trash registers!] modified: ../.github/travis_testsuite_1.sh modified: p_lx_elf.cpp modified: stub/src/amd64-linux.elf-main.c modified: stub/src/powerpc64le-linux.elf-fold.S also .h .fold.map --- .github/travis_testsuite_1.sh | 14 +- src/p_lx_elf.cpp | 1 + src/stub/amd64-linux.elf-fold.h | 94 +++--- src/stub/arm64-linux.elf-fold.h | 173 +++++----- src/stub/powerpc64-linux.elf-fold.h | 351 ++++++++++---------- src/stub/powerpc64le-linux.elf-fold.h | 350 +++++++++---------- src/stub/src/amd64-linux.elf-main.c | 20 +- src/stub/src/powerpc64le-linux.elf-fold.S | 17 +- src/stub/tmp/amd64-linux.elf-fold.map | 19 +- src/stub/tmp/arm64-linux.elf-fold.map | 28 +- src/stub/tmp/powerpc64-linux.elf-fold.map | 82 ++--- src/stub/tmp/powerpc64le-linux.elf-fold.map | 82 ++--- 12 files changed, 621 insertions(+), 610 deletions(-) diff --git a/.github/travis_testsuite_1.sh b/.github/travis_testsuite_1.sh index 80626448..9fa0fbaa 100644 --- a/.github/travis_testsuite_1.sh +++ b/.github/travis_testsuite_1.sh @@ -149,7 +149,7 @@ c3f44b4d00a87384c03a6f9e7aec809c1addfe3e271244d38a474f296603088c *mipsel-linux.e b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\ -28b683722345d081015abbf1a45b876270a6981c5560529d610b4f317e181ce0 *amd64-linux.elf/upx-3.91 +5e69180feb2270dc14cc3d63cf441d4bc65eab42084870b578ad17c4907434c3 *amd64-linux.elf/upx-3.91 c1a6ef9d0b8a26f1d6e3307af6f119bc95411a54421c7da3bd6ade9c4eead187 *arm-wince.pe/upx-3.91.exe 7e35e651e9018cfe7c6935d6faa9ae31b5c7324be1112238dd407060a20286d9 *armeb-linux.elf/upx-3.91 7d5f0fd6f18e4cd16655ef58805f228bcaddd5b035ce998faed446e290aea3d9 *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -160,7 +160,7 @@ b45b537b1c3641a9993f908c5f19504c2ae83f727135bdd63b19a8ae06da31ec *mipsel-linux.e 9b9ec6cc491ddc78752966f5be57d12e47c0c3105172ae599de3fce520526190 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\ -f4b6e8a6cbfe0942d37d2b2ff1437bbde5ae9d4c0eb6e3b5b62d0f8259d5bdc0 *amd64-linux.elf/upx-3.91 +a58d8691ca88a37961f0796ba32b9c10f40153123cc8b77e7fe2e9d343260d3a *amd64-linux.elf/upx-3.91 2bb2477bdf4643954b4bb707b1017459238b03f66883303cd20e9e8740764dd7 *arm-wince.pe/upx-3.91.exe 174c480d7ad1262fa1b1a2ae91f06e2adb53e49443da043b2b7930f8f3cf0709 *armeb-linux.elf/upx-3.91 c52473f5dbdac560c05d5d173e5342b5e696e604517359baef581672eb25a9e6 *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -171,7 +171,7 @@ ef94d8b0e02a650c302bec9f2d50462f2accc2fbb8003cc4977bc550d2e5b9f2 *m68k-atari.tos 50babab276c089f8562e0d38587c7ccc9e0bd84f8c6f0af523d6a07c94568094 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ -9281ab55f56614a71bd0b82f07fbdf8eab264fc92bb3004cf705d32c6b4e2b82 *amd64-linux.elf/upx-3.91 +0d9c53dcdc006f3ccc92e6674e40386ee8e27995b11847d890a3afed56966769 *amd64-linux.elf/upx-3.91 0915344e0ee8e7c006e6cce71c024f518e097a88820c7ab3ca183ab1c614ce82 *arm-wince.pe/upx-3.91.exe 40f6d18e983239020f5139d5c641d5504922d2ac42583fd0d67cf115da92b3b9 *armeb-linux.elf/upx-3.91 5c5ff78652e76834f3f9ab110c42e3a34ef54c748bce212b0e942049f43f5d4d *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -182,7 +182,7 @@ dfc6abff2d3417b9708b1232d5791a9232c6623dcedb9dcb59428b67bbf864e9 *m68k-atari.tos f0c96dba224cafa2e1a3ffe92609c48235289337fac3761491bf2f0680017841 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t140_compress_lzma_2_no_filter="\ -9f9985f76d30857e7b745759ce0e3ad8c282678b7d4d953f20d270521d42c433 *amd64-linux.elf/upx-3.91 +addd62594650895432f4f922be6eeb39f07afff5a96c2ed93c308109eee7e6ab *amd64-linux.elf/upx-3.91 3af2a2346a252dfacefb6209725907b2947dc1ccf5e99af139608354f852507c *arm-wince.pe/upx-3.91.exe 4d6dbb67cea5b89956bab304633de379ed4ad4dfa808217a0d5014efe5f047fc *armeb-linux.elf/upx-3.91 964fb400b0b4a2b1926ce7076610db8c3a8e41807fe030209af1615d43b6a020 *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -193,7 +193,7 @@ f34a9691c617178582ab8b8cc50d9ccce1c37cd6074f9e146459121b1cdbaff9 *mipsel-linux.e 85a97fbde61dcb34e6f32e9bd7dc13a74969f82baada2e1880777197b86dacd2 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t150_compress_ucl_2_all_filters="\ -f5f1279c21c69a05851315fe9f5314126fb8934a2a96aa7870f7b97f4df79399 *amd64-linux.elf/upx-3.91 +20682c50460f581ef947a80a4a76e99499d4d4a1644cf667e0e745c70ae5bcce *amd64-linux.elf/upx-3.91 dc7323e753ce62e6a1c22112f139953dbaa1e5268530479f8ad48e0c54062295 *arm-wince.pe/upx-3.91.exe a63e457b523ba78919a00c0d818f697ff51d005ea1b8108a4bc96afe26e721db *armeb-linux.elf/upx-3.91 8614d93ba30def6866b3be92ae5bdd5f294266e0fc4a26c078682917f127656d *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -204,7 +204,7 @@ a85707417a7ee7f81685272f460fde6cd3406cfe1457d656e337b1839d3cd3f2 *i386-linux.elf 794737f95430181e3abe03a5e4ba879230afcef47bbbd984def7b05854e3032a *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t160_compress_all_methods_1_no_filter="\ -f5f609943462eb0f0e18c729c0606196dbae2a1fc323d2e1329962100e55a653 *amd64-linux.elf/upx-3.91 +0dbee44c0d0e63f1d2af7d7a097165eaf0f7f6c19f23b26f16b197ffae12e9bb *amd64-linux.elf/upx-3.91 1c9c618741739404f40d198d2fc77010539589379bf260502af9f10f1ec0d05b *arm-wince.pe/upx-3.91.exe 34412ce06f8ec8e0ff494803374caef537afeede157f705086cb5a7ec8c32bf3 *armeb-linux.elf/upx-3.91 863bbf7f3cf41296987b085a4db8acba372e3d65d8d9c656f9a7276f2e7aa4d3 *i386-dos32.djgpp2.coff/upx-3.91.exe @@ -215,7 +215,7 @@ f5f609943462eb0f0e18c729c0606196dbae2a1fc323d2e1329962100e55a653 *amd64-linux.el f9a432e027c4bb8c4c9dbb6855a5fbd0af170506ba2bf794fe800a45c3191ce6 *powerpc-linux.elf/upx-3.91 " expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\ -db3ccfefb8fcfd0de0e9413fd96eb81573eb8b8205ef2f87b563cd08f6289b7f *amd64-linux.elf/upx-3.91 +1e73b524418dd16cc8b3f976966732f4e87801420f619b5b1efd0a2c020f7262 *amd64-linux.elf/upx-3.91 66653a91c355a1ad1ab7b07c6c20b2d2899d0f42078683d0f4d540df476b1afb *arm-wince.pe/upx-3.91.exe 9b979047e8849e30c38632f20a5f06a74240cf66e589897470676f8326119ee4 *armeb-linux.elf/upx-3.91 490a196fbba4a8f21bfb9ac2a3b92a6dc7e287f255a3ab987f7d29d5a75d8db4 *i386-dos32.djgpp2.coff/upx-3.91.exe diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index aae9adad..3cf42b46 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -473,6 +473,7 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) upx_uint64_t const pm = ( Elf64_Ehdr::EM_X86_64 ==e_machine || Elf64_Ehdr::EM_AARCH64==e_machine + //|| Elf64_Ehdr::EM_PPC64 ==e_machine /* DOES NOT WORK! */ ) ? ((~(upx_uint64_t)0)<<12) : page_mask; diff --git a/src/stub/amd64-linux.elf-fold.h b/src/stub/amd64-linux.elf-fold.h index faf94662..ee3a7002 100644 --- a/src/stub/amd64-linux.elf-fold.h +++ b/src/stub/amd64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-fold.h - created from amd64-linux.elf-fold.bin, 2155 (0x86b) bytes + created from amd64-linux.elf-fold.bin, 2148 (0x864) bytes This file is part of the UPX executable compressor. @@ -31,20 +31,20 @@ */ -#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2155 -#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x908027be -#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xb5e8861d +#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2148 +#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x00ad254f +#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x43dc8ba8 -unsigned char stub_amd64_linux_elf_fold[2155] = { +unsigned char stub_amd64_linux_elf_fold[2148] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 107, 8, 0, 0, 0, 0, 0, 0,108, 8, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 100, 8, 0, 0, 0, 0, 0, 0,100, 8, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 107, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 100, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 74, 0, 0, @@ -65,7 +65,7 @@ unsigned char stub_amd64_linux_elf_fold[2155] = { /* 0x01a0 */ 141,119,248, 72,193,233, 3,243, 72,165, 72,141,103, 8,252, 75, /* 0x01b0 */ 141, 12, 38,139, 67,252,131,224, 1, 72, 1,193, 65, 89, 94, 95, /* 0x01c0 */ 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80, 73,137,232,232, -/* 0x01d0 */ 79, 5, 0, 0, 72,129,196, 8, 8, 0, 0, 72,137, 68, 36, 24, +/* 0x01d0 */ 72, 5, 0, 0, 72,129,196, 8, 8, 0, 0, 72,137, 68, 36, 24, /* 0x01e0 */ 91, 69, 41,201, 65,137,216,106, 2, 65, 90,106, 1, 90,190, 0, /* 0x01f0 */ 16, 0, 0,106, 0, 95,106, 9, 88, 15, 5,137,223,106, 3, 88, /* 0x0200 */ 15, 5, 95, 94,106, 11, 88, 65,255,102,248,176, 9, 73,137,202, @@ -111,10 +111,10 @@ unsigned char stub_amd64_linux_elf_fold[2155] = { /* 0x0480 */ 201, 65,131,200,255, 49,210, 72,137,222,232,124,253,255,255, 72, /* 0x0490 */ 137,199, 72,141, 4, 3,199, 68, 36, 12, 0, 0, 0, 0, 73,137, /* 0x04a0 */ 253, 73, 41,237,102, 65,131,126, 56, 0, 72,137, 68, 36, 56, 15, -/* 0x04b0 */ 132, 77, 2, 0, 0, 72,131,124, 36, 48, 0,116, 35, 65,131, 60, +/* 0x04b0 */ 132, 70, 2, 0, 0, 72,131,124, 36, 48, 0,116, 35, 65,131, 60, /* 0x04c0 */ 36, 6,117, 28, 73,139, 84, 36, 16, 72,139,124, 36, 32,190, 3, -/* 0x04d0 */ 0, 0, 0, 76, 1,234,232,178,254,255,255,233, 11, 2, 0, 0, -/* 0x04e0 */ 65,131, 60, 36, 1, 15,133, 0, 2, 0, 0, 72,131,124, 36, 48, +/* 0x04d0 */ 0, 0, 0, 76, 1,234,232,178,254,255,255,233, 4, 2, 0, 0, +/* 0x04e0 */ 65,131, 60, 36, 1, 15,133,249, 1, 0, 0, 72,131,124, 36, 48, /* 0x04f0 */ 0,116, 75, 73,131,124, 36, 8, 0,117, 67, 73,139, 84, 36, 16, /* 0x0500 */ 72,139,124, 36, 32,190, 3, 0, 0, 0, 76, 1,234, 73, 3, 86, /* 0x0510 */ 32,232,119,254,255,255, 73, 15,183, 86, 56, 72,139,124, 36, 32, @@ -129,46 +129,46 @@ unsigned char stub_amd64_linux_elf_fold[2155] = { /* 0x05a0 */ 216, 72,131,124, 36, 48, 0,117, 7, 68,139, 68, 36, 44,177, 18, /* 0x05b0 */ 139, 84, 36, 8, 73,137,193, 76,137,254, 72,137,239,131,202, 2, /* 0x05c0 */ 72,131,124, 36, 48, 0, 15, 68, 84, 36, 8,232, 59,252,255,255, -/* 0x05d0 */ 72, 57,197, 15,133,214, 0, 0, 0, 72,131,124, 36, 48, 0,116, +/* 0x05d0 */ 72, 57,197, 15,133,207, 0, 0, 0, 72,131,124, 36, 48, 0,116, /* 0x05e0 */ 25, 72,139, 76, 36, 16, 72,139, 84, 36, 24, 72,141,116, 36, 64, /* 0x05f0 */ 72,139,124, 36, 48,232,130,252,255,255, 76,137,251, 72,247,219, /* 0x0600 */ 129,227,255, 15, 0, 0,246, 68, 36, 8, 2,116, 13, 74,141,124, /* 0x0610 */ 61, 0, 49,192, 72,137,217,252,243,170, 72,131,124, 36, 48, 0, -/* 0x0620 */ 15,132,147, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0, +/* 0x0620 */ 15,132,140, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0, /* 0x0630 */ 73, 35, 4, 36, 72,186, 1, 0, 0, 0, 1, 0, 0, 0, 72, 57, -/* 0x0640 */ 208,117, 89, 73,139, 84, 36, 40, 73,139,116, 36, 16, 73, 59, 84, +/* 0x0640 */ 208,117, 82, 73,139, 84, 36, 40, 73,139,116, 36, 16, 73, 59, 84, /* 0x0650 */ 36, 32, 72,141, 4, 50, 74,141, 12, 40,117, 14,137,200,247,216, -/* 0x0660 */ 37,255, 15, 0, 0,131,248, 3,119, 20, 76,137,232, 72,193,224, -/* 0x0670 */ 6, 73,131,124, 36, 8, 0, 72,141, 76, 6, 12,117, 30, 72,133, -/* 0x0680 */ 201,199, 1, 15, 5,195,144,116, 19, 72,139,124, 36, 32, 72,137, -/* 0x0690 */ 202, 49,246, 72,131,231,254,232,241,252,255,255,139, 84, 36, 8, -/* 0x06a0 */ 76,137,254, 72,137,239,232,139,251,255,255,133,192,116, 10,191, -/* 0x06b0 */ 127, 0, 0, 0,232,105,251,255,255, 73,141, 4, 31, 72, 1,197, -/* 0x06c0 */ 72, 59, 44, 36,115, 37, 72, 41, 44, 36,139, 84, 36, 8, 69, 49, -/* 0x06d0 */ 201, 72,139, 52, 36, 65,131,200,255,185, 50, 0, 0, 0, 72,137, -/* 0x06e0 */ 239,232, 37,251,255,255, 72, 57,197,117,196,255, 68, 36, 12, 65, -/* 0x06f0 */ 15,183, 70, 56, 73,131,196, 56, 57, 68, 36, 12, 15,140,179,253, -/* 0x0700 */ 255,255, 72,139,132, 36,144, 0, 0, 0, 76,137, 40, 77, 3,110, -/* 0x0710 */ 24, 72,131,196, 88, 91, 93, 65, 92, 76,137,232, 65, 93, 65, 94, -/* 0x0720 */ 65, 95,195, 65, 87, 65, 86, 73,137,206, 49,201, 65, 85, 65, 84, -/* 0x0730 */ 77,137,204, 85, 72,137,213, 76,141,109, 64, 83, 76,137,195, 72, -/* 0x0740 */ 131,236, 72,139, 7, 72,137,124, 36, 24, 72,137,124, 36, 40, 76, -/* 0x0750 */ 141,188, 36,128, 0, 0, 0, 72,137,116, 36, 32, 72,141,116, 36, -/* 0x0760 */ 48, 72,137, 84, 36, 56, 76,137,194, 72,137, 68, 36, 48,139, 71, -/* 0x0770 */ 4, 72,141,124, 36, 16, 72,131,192, 12, 72,137, 68, 36, 16,232, -/* 0x0780 */ 248,250,255,255, 65, 83, 77,137,225, 49,210, 73,137,216, 76,137, -/* 0x0790 */ 241, 72,137,239, 72,141,116, 36, 40, 65, 87,232, 37,252,255,255, -/* 0x07a0 */ 190, 9, 0, 0, 0, 72,137,194, 76,137,247, 73,137,196,232,218, -/* 0x07b0 */ 251,255,255, 65, 89, 65, 90,102,131,125, 56, 0,199, 68, 36, 12, -/* 0x07c0 */ 0, 0, 0, 0, 15,132,143, 0, 0, 0, 65,131,125, 0, 3,117, -/* 0x07d0 */ 114, 73,139, 63, 73, 3,125, 16, 49,210, 49,246,232, 77,250,255, -/* 0x07e0 */ 255,133,192,137,195,120, 23,186, 0, 4, 0, 0, 72,137,238,137, -/* 0x07f0 */ 199,232, 72,250,255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, -/* 0x0800 */ 0, 0, 0,232, 26,250,255,255, 73,199, 7, 0, 0, 0, 0, 65, -/* 0x0810 */ 80, 69, 49,201, 69, 49,192, 49,201, 65, 87,137,218, 49,246, 72, -/* 0x0820 */ 137,239,232,158,251,255,255, 73,139, 23,190, 7, 0, 0, 0, 76, -/* 0x0830 */ 137,247, 73,137,196,232, 83,251,255,255,137,223,232,233,249,255, -/* 0x0840 */ 255, 94, 95,255, 68, 36, 12, 15,183, 69, 56, 73,131,197, 56, 57, -/* 0x0850 */ 68, 36, 12, 15,130,113,255,255,255, 72,131,196, 72, 76,137,224, -/* 0x0860 */ 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195 +/* 0x0660 */ 37,255, 15, 0, 0,131,248, 3,119, 13, 73,131,124, 36, 8, 0, +/* 0x0670 */ 74,141, 76, 46, 12,117, 30, 72,133,201,199, 1, 15, 5,195,144, +/* 0x0680 */ 116, 19, 72,139,124, 36, 32, 72,137,202, 49,246, 72,131,231,254, +/* 0x0690 */ 232,248,252,255,255,139, 84, 36, 8, 76,137,254, 72,137,239,232, +/* 0x06a0 */ 146,251,255,255,133,192,116, 10,191,127, 0, 0, 0,232,112,251, +/* 0x06b0 */ 255,255, 73,141, 4, 31, 72, 1,197, 72, 59, 44, 36,115, 37, 72, +/* 0x06c0 */ 41, 44, 36,139, 84, 36, 8, 69, 49,201, 72,139, 52, 36, 65,131, +/* 0x06d0 */ 200,255,185, 50, 0, 0, 0, 72,137,239,232, 44,251,255,255, 72, +/* 0x06e0 */ 57,197,117,196,255, 68, 36, 12, 65, 15,183, 70, 56, 73,131,196, +/* 0x06f0 */ 56, 57, 68, 36, 12, 15,140,186,253,255,255, 72,139,132, 36,144, +/* 0x0700 */ 0, 0, 0, 76,137, 40, 77, 3,110, 24, 72,131,196, 88, 91, 93, +/* 0x0710 */ 65, 92, 76,137,232, 65, 93, 65, 94, 65, 95,195, 65, 87, 65, 86, +/* 0x0720 */ 73,137,206, 49,201, 65, 85, 65, 84, 77,137,204, 85, 72,137,213, +/* 0x0730 */ 76,141,109, 64, 83, 76,137,195, 72,131,236, 72,139, 7, 72,137, +/* 0x0740 */ 124, 36, 24, 72,137,124, 36, 40, 76,141,188, 36,128, 0, 0, 0, +/* 0x0750 */ 72,137,116, 36, 32, 72,141,116, 36, 48, 72,137, 84, 36, 56, 76, +/* 0x0760 */ 137,194, 72,137, 68, 36, 48,139, 71, 4, 72,141,124, 36, 16, 72, +/* 0x0770 */ 131,192, 12, 72,137, 68, 36, 16,232,255,250,255,255, 65, 83, 77, +/* 0x0780 */ 137,225, 49,210, 73,137,216, 76,137,241, 72,137,239, 72,141,116, +/* 0x0790 */ 36, 40, 65, 87,232, 44,252,255,255,190, 9, 0, 0, 0, 72,137, +/* 0x07a0 */ 194, 76,137,247, 73,137,196,232,225,251,255,255, 65, 89, 65, 90, +/* 0x07b0 */ 102,131,125, 56, 0,199, 68, 36, 12, 0, 0, 0, 0, 15,132,143, +/* 0x07c0 */ 0, 0, 0, 65,131,125, 0, 3,117,114, 73,139, 63, 73, 3,125, +/* 0x07d0 */ 16, 49,210, 49,246,232, 84,250,255,255,133,192,137,195,120, 23, +/* 0x07e0 */ 186, 0, 4, 0, 0, 72,137,238,137,199,232, 79,250,255,255, 72, +/* 0x07f0 */ 61, 0, 4, 0, 0,116, 10,191,127, 0, 0, 0,232, 33,250,255, +/* 0x0800 */ 255, 73,199, 7, 0, 0, 0, 0, 65, 80, 69, 49,201, 69, 49,192, +/* 0x0810 */ 49,201, 65, 87,137,218, 49,246, 72,137,239,232,165,251,255,255, +/* 0x0820 */ 73,139, 23,190, 7, 0, 0, 0, 76,137,247, 73,137,196,232, 90, +/* 0x0830 */ 251,255,255,137,223,232,240,249,255,255, 94, 95,255, 68, 36, 12, +/* 0x0840 */ 15,183, 69, 56, 73,131,197, 56, 57, 68, 36, 12, 15,130,113,255, +/* 0x0850 */ 255,255, 72,131,196, 72, 76,137,224, 91, 93, 65, 92, 65, 93, 65, +/* 0x0860 */ 94, 65, 95,195 }; diff --git a/src/stub/arm64-linux.elf-fold.h b/src/stub/arm64-linux.elf-fold.h index 5207db23..66101213 100644 --- a/src/stub/arm64-linux.elf-fold.h +++ b/src/stub/arm64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm64-linux.elf-fold.h - created from arm64-linux.elf-fold.bin, 2544 (0x9f0) bytes + created from arm64-linux.elf-fold.bin, 2524 (0x9dc) bytes This file is part of the UPX executable compressor. @@ -31,20 +31,20 @@ */ -#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2544 -#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xb12386c0 -#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x6d5137d1 +#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2524 +#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xfe497c3e +#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0xec9079f2 -unsigned char stub_arm64_linux_elf_fold[2544] = { +unsigned char stub_arm64_linux_elf_fold[2524] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 240, 9, 0, 0, 0, 0, 0, 0,240, 9, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 220, 9, 0, 0, 0, 0, 0, 0,220, 9, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 240, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 220, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146, @@ -61,7 +61,7 @@ unsigned char stub_arm64_linux_elf_fold[2544] = { /* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170, /* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170, /* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170, -/* 0x0190 */ 190, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, +/* 0x0190 */ 185, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, /* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210, /* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148, /* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248, @@ -113,86 +113,85 @@ unsigned char stub_arm64_linux_elf_fold[2544] = { /* 0x04a0 */ 227, 3, 1, 42, 4, 0, 64,249,159, 0, 3,235,129, 0, 0, 84, /* 0x04b0 */ 3, 0, 0,249, 2, 4, 0,249, 6, 0, 0, 20,159, 4, 0,241, /* 0x04c0 */ 65, 0, 0, 84, 97,255,255, 53, 0, 64, 0,145,246,255,255, 23, -/* 0x04d0 */ 192, 3, 95,214,253,123,180,169,253, 3, 0,145,234, 47, 7,109, +/* 0x04d0 */ 192, 3, 95,214,253,123,181,169,253, 3, 0,145,234, 47, 7,109, /* 0x04e0 */ 202, 0,103,158, 6, 16, 64,249,236, 55, 8,109,245, 91, 2,169, /* 0x04f0 */ 232, 39, 6,109,245, 3, 0,170,249,107, 4,169, 26, 0, 6,139, /* 0x0500 */ 0, 32, 64,121,247, 99, 3,169, 31, 12, 0,113,248, 3, 3,170, -/* 0x0510 */ 64, 1,102,158, 3, 2,128, 82,141, 0,103,158, 99, 16,159, 26, -/* 0x0520 */ 238, 75, 0,253,247, 3, 1,170,174, 0,103,158,165,114, 64,121, -/* 0x0530 */ 0, 0, 64,249, 99,136, 0, 17,243, 83, 1,169,251,115, 5,169, -/* 0x0540 */ 76, 0, 39, 30,251, 3, 7,170,226, 3, 26,170, 1, 0,128,210, -/* 0x0550 */ 19, 0,128,146,165, 4, 0, 81,191, 4, 0, 49,160, 1, 0, 84, -/* 0x0560 */ 68, 0, 64,185,159, 4, 0,113, 1, 1, 0, 84, 71, 8, 64,249, -/* 0x0570 */ 68, 20, 64,249,127, 2, 7,235,228, 0, 4,139,115,146,135,154, -/* 0x0580 */ 63, 0, 4,235, 33, 32,132,154, 66,224, 0,145,242,255,255, 23, -/* 0x0590 */ 226, 3, 59,170,115, 2, 27,138, 65, 0, 1,139, 33, 0, 19,203, -/* 0x05a0 */ 72, 0,103,158, 33, 0, 27,138,163, 0, 32, 55, 83, 0, 0,181, -/* 0x05b0 */ 160, 0, 0,181, 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170, -/* 0x05c0 */ 2, 0, 0, 20, 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18, -/* 0x05d0 */ 5, 0,128,210, 28, 0,128, 82, 49,255,255,151, 19, 0, 19,203, -/* 0x05e0 */ 96,230,122,211, 11, 0,103,158,160,114, 64,121,159, 3, 0,107, -/* 0x05f0 */ 234, 18, 0, 84, 64, 3, 64,185, 55, 1, 0,180, 31, 24, 0,113, -/* 0x0600 */ 225, 0, 0, 84, 66, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, -/* 0x0610 */ 98, 2, 2,139,161,255,255,151,132, 0, 0, 20, 31, 4, 0,113, -/* 0x0620 */ 65, 16, 0, 84, 87, 2, 0,180, 64, 7, 64,249, 0, 2, 0,181, -/* 0x0630 */ 162, 18, 64,249,224, 3, 24,170, 67, 11, 64,249, 97, 0,128, 82, -/* 0x0640 */ 98, 2, 2,139, 66, 0, 3,139,148,255,255,151,162,114, 64,121, -/* 0x0650 */ 224, 3, 24,170,161, 0,128, 82,144,255,255,151,162,110, 64,121, -/* 0x0660 */ 224, 3, 24,170,129, 0,128, 82,140,255,255,151, 89, 7, 64,185, -/* 0x0670 */ 0, 72,140, 82, 32,106,174,114, 84, 11, 64,249, 57, 11, 30, 83, -/* 0x0680 */ 255, 2, 31,235, 0, 36,217, 26,160,163, 0,185, 25, 8, 0, 18, -/* 0x0690 */ 64, 23, 64,249,116, 2, 20,139, 86, 19, 64,249,128, 2, 0,139, -/* 0x06a0 */ 71, 7, 64,249,182, 91, 0,249, 70, 6,128, 82, 9, 0,103,158, -/* 0x06b0 */ 180, 95, 0,249, 0, 1,102,158, 67, 2,128, 82,133, 2, 0,138, -/* 0x06c0 */ 64, 0,128, 82, 2, 16,159, 26,255, 2, 31,235,128, 1, 38, 30, -/* 0x06d0 */ 148, 2, 5,203,182, 0, 22,139, 66, 0, 25, 42,225, 3, 22,170, -/* 0x06e0 */ 229, 0, 5,203, 4, 0,159, 90,255, 2, 31,235,195, 16,131, 26, -/* 0x06f0 */ 224, 3, 20,170,234,254,255,151,159, 2, 0,235, 96, 0, 0, 84, -/* 0x0700 */ 224, 15,128, 82,203,254,255,151,215, 0, 0,180,162, 1,102,158, -/* 0x0710 */ 224, 3, 23,170,195, 1,102,158,161,195, 2,145, 13,255,255,151, -/* 0x0720 */ 0, 1,102,158,227, 3, 22,203, 99, 0, 0,138,160, 83, 64,249, -/* 0x0730 */ 96, 0, 8, 55, 87, 1, 0,181, 45, 0, 0, 20,195,255,255,180, -/* 0x0740 */ 129, 2, 22,139, 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, -/* 0x0750 */ 31, 0, 3,235,161,255,255, 84,247,255,255, 23, 64, 3, 64,249, -/* 0x0760 */ 225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, 33, 3, 0, 84, -/* 0x0770 */ 65, 23, 64,249, 66, 19, 64,249, 64, 11, 64,249, 63, 0, 2,235, -/* 0x0780 */ 161, 5, 0, 84, 98, 14, 0,145, 66, 0, 1,139, 66, 0, 0,139, -/* 0x0790 */ 66,244,126,146,225, 3, 2, 75, 33, 0, 59, 10, 63, 28, 0,113, -/* 0x07a0 */ 169, 4, 0, 84, 32, 0,128, 82, 1, 0,128, 82, 0,128,186,114, -/* 0x07b0 */ 64, 0, 0,185, 0,120,128, 82,163, 83, 0,249,224,203,186,114, -/* 0x07c0 */ 64, 4, 0,185, 0,251,127,146, 52,255,255,151,163, 83, 64,249, -/* 0x07d0 */ 224, 3, 20,170,225, 3, 22,170,226, 3, 25, 42,163, 83, 0,249, -/* 0x07e0 */ 168,254,255,151,163, 83, 64,249,192,248,255, 53, 32, 1,102,158, -/* 0x07f0 */ 118, 0, 22,139,148, 2, 22,139,159, 2, 0,235, 98, 1, 0, 84, -/* 0x0800 */ 33, 1,102,158,224, 3, 20,170,226, 3, 25, 42, 67, 6,128, 82, -/* 0x0810 */ 4, 0,128, 18, 5, 0,128,210, 33, 0, 20,203,160,254,255,151, -/* 0x0820 */ 159, 2, 0,235,225,246,255, 84, 90,227, 0,145,156, 7, 0, 17, -/* 0x0830 */ 110,255,255, 23, 97, 1,102,158, 2, 0, 1,139, 64, 7, 64,249, -/* 0x0840 */ 66, 32, 0,145, 0,251,255,180,226,255,255, 23, 64, 1,102,158, -/* 0x0850 */ 232, 39, 70,109,247, 99, 67,169,234, 47, 71,109,249,107, 68,169, -/* 0x0860 */ 236, 55, 72,109,251,115, 69,169, 19, 0, 0,249,238, 75, 64,253, -/* 0x0870 */ 160, 14, 64,249,245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169, -/* 0x0880 */ 253,123,204,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145, -/* 0x0890 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169, -/* 0x08a0 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185, -/* 0x08b0 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145, -/* 0x08c0 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145, -/* 0x08d0 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249, -/* 0x08e0 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249, -/* 0x08f0 */ 164, 51, 0,249,151,254,255,151,164, 51, 64,249,161, 3, 2,145, -/* 0x0900 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, -/* 0x0910 */ 231, 3, 25,170,224, 3, 19,170,239,254,255,151,245, 3, 0,170, -/* 0x0920 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,219,254,255,151, -/* 0x0930 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, -/* 0x0940 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, -/* 0x0950 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 90,254,255,151, -/* 0x0960 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 49,254,255,151, -/* 0x0970 */ 225, 3, 19,170, 2,128,128,210, 48,254,255,151, 31, 0, 16,241, -/* 0x0980 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, -/* 0x0990 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, -/* 0x09a0 */ 224, 3, 19,170,191, 55, 0,249,203,254,255,151,245, 3, 0,170, -/* 0x09b0 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,183,254,255,151, -/* 0x09c0 */ 224, 3, 24, 42, 35,254,255,151,148,226, 0,145,214, 6, 0, 17, -/* 0x09d0 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, -/* 0x09e0 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 +/* 0x0510 */ 64, 1,102,158, 3, 2,128, 82,140, 0,103,158, 99, 16,159, 26, +/* 0x0520 */ 173, 0,103,158,165,114, 64,121,243, 83, 1,169, 0, 0, 64,249, +/* 0x0530 */ 247, 3, 1,170,251,115, 5,169, 75, 0, 39, 30,251, 3, 7,170, +/* 0x0540 */ 99,136, 0, 17,226, 3, 26,170, 1, 0,128,210, 19, 0,128,146, +/* 0x0550 */ 165, 4, 0, 81,191, 4, 0, 49,160, 1, 0, 84, 68, 0, 64,185, +/* 0x0560 */ 159, 4, 0,113, 1, 1, 0, 84, 71, 8, 64,249, 68, 20, 64,249, +/* 0x0570 */ 127, 2, 7,235,228, 0, 4,139,115,146,135,154, 63, 0, 4,235, +/* 0x0580 */ 33, 32,132,154, 66,224, 0,145,242,255,255, 23,226, 3, 59,170, +/* 0x0590 */ 115, 2, 27,138, 65, 0, 1,139, 33, 0, 19,203, 72, 0,103,158, +/* 0x05a0 */ 33, 0, 27,138,163, 0, 32, 55, 83, 0, 0,181,160, 0, 0,181, +/* 0x05b0 */ 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, +/* 0x05c0 */ 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, +/* 0x05d0 */ 28, 0,128, 82, 50,255,255,151, 19, 0, 19,203,160,114, 64,121, +/* 0x05e0 */ 159, 3, 0,107,202, 18, 0, 84, 64, 3, 64,185, 55, 1, 0,180, +/* 0x05f0 */ 31, 24, 0,113,225, 0, 0, 84, 66, 11, 64,249,224, 3, 24,170, +/* 0x0600 */ 97, 0,128, 82, 98, 2, 2,139,164,255,255,151,132, 0, 0, 20, +/* 0x0610 */ 31, 4, 0,113, 65, 16, 0, 84, 87, 2, 0,180, 64, 7, 64,249, +/* 0x0620 */ 0, 2, 0,181,162, 18, 64,249,224, 3, 24,170, 67, 11, 64,249, +/* 0x0630 */ 97, 0,128, 82, 98, 2, 2,139, 66, 0, 3,139,151,255,255,151, +/* 0x0640 */ 162,114, 64,121,224, 3, 24,170,161, 0,128, 82,147,255,255,151, +/* 0x0650 */ 162,110, 64,121,224, 3, 24,170,129, 0,128, 82,143,255,255,151, +/* 0x0660 */ 89, 7, 64,185, 0, 72,140, 82, 32,106,174,114, 84, 11, 64,249, +/* 0x0670 */ 57, 11, 30, 83,255, 2, 31,235, 0, 36,217, 26,160,147, 0,185, +/* 0x0680 */ 25, 8, 0, 18, 64, 23, 64,249,116, 2, 20,139, 86, 19, 64,249, +/* 0x0690 */ 128, 2, 0,139, 71, 7, 64,249,182, 83, 0,249, 70, 6,128, 82, +/* 0x06a0 */ 9, 0,103,158,180, 87, 0,249, 0, 1,102,158, 67, 2,128, 82, +/* 0x06b0 */ 133, 2, 0,138, 64, 0,128, 82, 2, 16,159, 26,255, 2, 31,235, +/* 0x06c0 */ 96, 1, 38, 30,148, 2, 5,203,182, 0, 22,139, 66, 0, 25, 42, +/* 0x06d0 */ 225, 3, 22,170,229, 0, 5,203, 4, 0,159, 90,255, 2, 31,235, +/* 0x06e0 */ 195, 16,131, 26,224, 3, 20,170,237,254,255,151,159, 2, 0,235, +/* 0x06f0 */ 96, 0, 0, 84,224, 15,128, 82,206,254,255,151,215, 0, 0,180, +/* 0x0700 */ 130, 1,102,158,224, 3, 23,170,163, 1,102,158,161,131, 2,145, +/* 0x0710 */ 16,255,255,151, 0, 1,102,158,227, 3, 22,203, 99, 0, 0,138, +/* 0x0720 */ 160, 75, 64,249, 96, 0, 8, 55, 87, 1, 0,181, 45, 0, 0, 20, +/* 0x0730 */ 195,255,255,180,129, 2, 22,139, 0, 0,128,210, 63,104, 32, 56, +/* 0x0740 */ 0, 4, 0,145, 31, 0, 3,235,161,255,255, 84,247,255,255, 23, +/* 0x0750 */ 64, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, +/* 0x0760 */ 33, 3, 0, 84, 65, 23, 64,249, 66, 19, 64,249, 64, 11, 64,249, +/* 0x0770 */ 63, 0, 2,235,161, 5, 0, 84, 98, 14, 0,145, 66, 0, 1,139, +/* 0x0780 */ 66, 0, 0,139, 66,244,126,146,225, 3, 2, 75, 33, 0, 59, 10, +/* 0x0790 */ 63, 28, 0,113,169, 4, 0, 84, 32, 0,128, 82, 1, 0,128, 82, +/* 0x07a0 */ 0,128,186,114, 64, 0, 0,185, 0,120,128, 82,163, 75, 0,249, +/* 0x07b0 */ 224,203,186,114, 64, 4, 0,185, 0,251,127,146, 55,255,255,151, +/* 0x07c0 */ 163, 75, 64,249,224, 3, 20,170,225, 3, 22,170,226, 3, 25, 42, +/* 0x07d0 */ 163, 75, 0,249,171,254,255,151,163, 75, 64,249,192,248,255, 53, +/* 0x07e0 */ 32, 1,102,158,118, 0, 22,139,148, 2, 22,139,159, 2, 0,235, +/* 0x07f0 */ 98, 1, 0, 84, 33, 1,102,158,224, 3, 20,170,226, 3, 25, 42, +/* 0x0800 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 33, 0, 20,203, +/* 0x0810 */ 163,254,255,151,159, 2, 0,235,225,246,255, 84, 90,227, 0,145, +/* 0x0820 */ 156, 7, 0, 17,110,255,255, 23, 2, 0, 19,139, 64, 7, 64,249, +/* 0x0830 */ 66, 32, 0,145, 32,251,255,180,227,255,255, 23, 64, 1,102,158, +/* 0x0840 */ 232, 39, 70,109,247, 99, 67,169,234, 47, 71,109,249,107, 68,169, +/* 0x0850 */ 236, 55, 72,109,251,115, 69,169, 19, 0, 0,249,160, 14, 64,249, +/* 0x0860 */ 245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169,253,123,203,168, +/* 0x0870 */ 192, 3, 95,214,253,123,182,169,253, 3, 0,145,247, 99, 3,169, +/* 0x0880 */ 247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169,162, 63, 0,249, +/* 0x0890 */ 243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185,162, 59, 0,249, +/* 0x08a0 */ 226, 3, 4,170,160, 79, 0,249,116, 2, 1,145,163, 75, 0,249, +/* 0x08b0 */ 3, 0,128,210,160, 71, 0,249,160, 67, 2,145,161, 67, 0,249, +/* 0x08c0 */ 161,195, 1,145,245, 91, 2,169,249, 35, 0,249,249, 3, 7,170, +/* 0x08d0 */ 165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249,164, 51, 0,249, +/* 0x08e0 */ 156,254,255,151,164, 51, 64,249,161, 3, 2,145,165, 47, 64,249, +/* 0x08f0 */ 2, 0,128, 82,227, 3, 23,170,166,163, 1,145,231, 3, 25,170, +/* 0x0900 */ 224, 3, 19,170,244,254,255,151,245, 3, 0,170, 33, 1,128, 82, +/* 0x0910 */ 224, 3, 23,170,226, 3, 21,170,224,254,255,151, 96,114, 64,121, +/* 0x0920 */ 223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, 31, 12, 0,113, +/* 0x0930 */ 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, 32, 0, 0,139, +/* 0x0940 */ 1, 0,128, 82,226, 3, 1, 42, 95,254,255,151,248, 3, 0, 42, +/* 0x0950 */ 96, 0,248, 54,224, 15,128, 82, 54,254,255,151,225, 3, 19,170, +/* 0x0960 */ 2,128,128,210, 53,254,255,151, 31, 0, 16,241, 65,255,255, 84, +/* 0x0970 */ 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,228, 3, 1,170, +/* 0x0980 */ 229, 3, 1,170,166,163, 1,145,231, 3, 25,170,224, 3, 19,170, +/* 0x0990 */ 191, 55, 0,249,208,254,255,151,245, 3, 0,170,162, 55, 64,249, +/* 0x09a0 */ 224, 3, 23,170,225, 0,128, 82,188,254,255,151,224, 3, 24, 42, +/* 0x09b0 */ 40,254,255,151,148,226, 0,145,214, 6, 0, 17,216,255,255, 23, +/* 0x09c0 */ 224, 3, 21,170,249, 35, 64,249,243, 83, 65,169,245, 91, 66,169, +/* 0x09d0 */ 247, 99, 67,169,253,123,202,168,192, 3, 95,214 }; diff --git a/src/stub/powerpc64-linux.elf-fold.h b/src/stub/powerpc64-linux.elf-fold.h index 75c90e78..3c617610 100644 --- a/src/stub/powerpc64-linux.elf-fold.h +++ b/src/stub/powerpc64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64-linux.elf-fold.h - created from powerpc64-linux.elf-fold.bin, 3144 (0xc48) bytes + created from powerpc64-linux.elf-fold.bin, 3160 (0xc58) bytes This file is part of the UPX executable compressor. @@ -31,21 +31,21 @@ */ -#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3144 -#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xe8f242f7 -#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0xe2046e33 +#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3160 +#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x8fa6418f +#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x31b45fc6 -unsigned char stub_powerpc64_linux_elf_fold[3144] = { +unsigned char stub_powerpc64_linux_elf_fold[3160] = { /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 11,248, +/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 12, 8, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, -/* 0x0060 */ 0, 0, 0, 0, 0, 0, 11,244, 0, 0, 0, 0, 0, 0, 11,244, +/* 0x0060 */ 0, 0, 0, 0, 0, 0, 12, 8, 0, 0, 0, 0, 0, 0, 12, 8, /* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, -/* 0x0080 */ 0, 0, 0, 0, 0, 0, 11,248, 0, 0, 0, 0, 0, 16, 11,248, -/* 0x0090 */ 0, 0, 0, 0, 0, 16, 11,248, 0, 0, 0, 0, 0, 0, 0, 80, +/* 0x0080 */ 0, 0, 0, 0, 0, 0, 12, 8, 0, 0, 0, 0, 0, 16, 12, 8, +/* 0x0090 */ 0, 0, 0, 0, 0, 16, 12, 8, 0, 0, 0, 0, 0, 0, 0, 80, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248, /* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125, @@ -63,174 +63,175 @@ unsigned char stub_powerpc64_linux_elf_fold[3144] = { /* 0x0180 */ 232, 4, 0, 17,248, 3, 0, 17, 64,158,255,236, 58,163, 0, 8, /* 0x0190 */ 126,154,168, 80,128, 22, 0,100, 58,100, 0, 8,148, 3, 0, 8, /* 0x01a0 */ 58, 67, 0, 4, 56,160, 15,255,126, 68,147,120, 56,118, 0,104, -/* 0x01b0 */ 72, 0, 1,217, 56,178,255,252, 44, 35, 0, 0, 65,129, 0, 12, +/* 0x01b0 */ 72, 0, 1,225, 56,178,255,252, 44, 35, 0, 0, 65,129, 0, 12, /* 0x01c0 */ 56,182, 0,100, 56, 96, 0, 12, 56, 99, 0, 4,124,133, 26, 20, /* 0x01d0 */ 124,105, 3,166,126, 99,155,120, 56,160, 0, 0,156,163,255,255, /* 0x01e0 */ 140, 4,255,255,156, 3,255,255, 66, 0,255,248,248,122,255,240, /* 0x01f0 */ 120, 99, 7, 36,124, 32, 34,120,124, 0, 26,120,120, 0, 7, 32, -/* 0x0200 */ 124, 96, 24, 80,126,164,171,120,127, 84, 24, 80,232, 4,255,249, -/* 0x0210 */ 127,164, 8, 64,248, 3,255,249, 65,253,255,244,124, 97, 27,120, -/* 0x0220 */ 57, 33, 1,136,251, 41, 0, 0,248, 33,247,113,127, 3,195,120, -/* 0x0230 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120, -/* 0x0240 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112, -/* 0x0250 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136, -/* 0x0260 */ 127,202,243,120, 72, 0, 7,121, 56, 33, 8,144,112, 96, 0, 7, -/* 0x0270 */ 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0, 64,130, 0, 24, -/* 0x0280 */ 232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20,232, 99, 0, 0, -/* 0x0290 */ 124, 99, 2, 20,124,127, 27,120, 57, 0, 0, 0,127,103,219,120, -/* 0x02a0 */ 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208, 56, 96, 0, 0, -/* 0x02b0 */ 72, 0, 0,177,127, 99,219,120, 72, 0, 0,233,127, 67,211,120, -/* 0x02c0 */ 232, 3, 0, 0,232,131, 0, 8, 56, 99, 0, 16, 43,160, 0, 0, -/* 0x02d0 */ 64,254,255,240,124,137, 3,166,127,163,235,120,127,132,227,120, -/* 0x02e0 */ 56, 0, 0, 91,127,232, 3,166,232,161, 0,176,232,193, 0,184, -/* 0x02f0 */ 232,225, 0,192,233, 1, 0,200,233, 33, 0,208,233, 65, 0,216, -/* 0x0300 */ 233, 97, 0,224,233,129, 0,232,233,161, 0,240,233,193, 0,248, -/* 0x0310 */ 233,225, 1, 0,234, 1, 1, 8,234, 33, 1, 16,234, 65, 1, 24, -/* 0x0320 */ 234, 97, 1, 32,234,129, 1, 40,234,161, 1, 48,234,193, 1, 56, -/* 0x0330 */ 234,225, 1, 64,235, 1, 1, 72,235, 33, 1, 80,235, 65, 1, 88, -/* 0x0340 */ 235, 97, 1, 96,235,129, 1,104,235,161, 1,112,235,193, 1,120, -/* 0x0350 */ 235,225, 1,128, 56, 33, 1,144,125,136, 2,166, 78,128, 4, 32, -/* 0x0360 */ 120,231, 0, 32, 56, 0, 0, 90, 68, 0, 0, 2, 64,227, 0, 8, -/* 0x0370 */ 56, 96,255,255, 78,128, 0, 32, 56, 0, 0, 1, 72, 0, 0, 8, -/* 0x0380 */ 56, 0, 0, 45, 72, 0, 0, 8, 56, 0, 0, 85, 72, 0, 0, 8, -/* 0x0390 */ 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8, -/* 0x03a0 */ 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8, -/* 0x03b0 */ 56, 0, 0, 91, 75,255,255,180,124,128, 0, 8, 78,128, 0, 32, -/* 0x03c0 */ 233, 67, 0, 0,233, 3, 0, 8, 56,229, 0, 1, 57, 32, 0, 0, -/* 0x03d0 */ 124,233, 3,166,127,170, 40, 64, 64,252, 0, 28,124, 8, 2,166, -/* 0x03e0 */ 56, 96, 0,127,248, 1, 0, 16,248, 33,255,145, 75,255,255,141, -/* 0x03f0 */ 96, 0, 0, 0, 66, 64, 0, 20,125, 72, 72,174,125, 68, 73,174, -/* 0x0400 */ 57, 41, 0, 1, 75,255,255,240,233, 67, 0, 8,125, 74, 74, 20, -/* 0x0410 */ 249, 67, 0, 8,233, 67, 0, 0,125, 41, 80, 80,249, 35, 0, 0, -/* 0x0420 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, -/* 0x0430 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 7, 77, -/* 0x0440 */ 248, 33,255, 81,124,126, 27,120,124,159, 35,120,124,189, 43,120, -/* 0x0450 */ 124,220, 51,120, 46, 38, 0, 0,233, 63, 0, 0, 47,169, 0, 0, -/* 0x0460 */ 65,158, 1, 84,127,195,243,120, 56,129, 0,112, 56,160, 0, 12, -/* 0x0470 */ 75,255,255, 81,129, 65, 0,112,129, 33, 0,116, 47,170, 0, 0, -/* 0x0480 */ 64,158, 0, 32,109, 37, 33, 88, 47,133, 80, 85, 64,158, 0, 28, -/* 0x0490 */ 233, 62, 0, 0, 47,169, 0, 0, 65,254, 1, 28, 72, 0, 0, 12, -/* 0x04a0 */ 121, 41, 0, 33, 64,226, 0, 16, 56, 96, 0,127, 75,255,254,205, -/* 0x04b0 */ 96, 0, 0, 0,127, 9, 80, 64, 65,217,255,240,233, 31, 0, 0, -/* 0x04c0 */ 127,170, 64, 64, 65,221,255,228,232,191, 0, 8, 64,152, 0,184, -/* 0x04d0 */ 125, 36, 75,120,233, 61, 0, 0,232,126, 0, 8, 56,193, 0,128, -/* 0x04e0 */ 249, 65, 0,128,248, 65, 0, 40,136,225, 0,120,233,125, 0, 16, -/* 0x04f0 */ 125, 41, 3,166,232, 93, 0, 8, 78,128, 4, 33,232, 65, 0, 40, -/* 0x0500 */ 47,163, 0, 0, 64,222,255,164,232,129, 0,128,129, 33, 0,112, -/* 0x0510 */ 127,164, 72, 64, 64,222,255,148,136,193, 0,121, 47,166, 0, 0, -/* 0x0520 */ 65,158, 0, 68, 65,146, 0, 64, 43,164, 2, 0, 65,157, 0, 16, -/* 0x0530 */ 233, 63, 0, 0,127,169, 32, 0, 64,158, 0, 44,232,127, 0, 8, -/* 0x0540 */ 136,161, 0,122,120,132, 0, 32,248, 65, 0, 40,233, 60, 0, 0, -/* 0x0550 */ 233,124, 0, 16,125, 41, 3,166,232, 92, 0, 8, 78,128, 4, 33, -/* 0x0560 */ 232, 65, 0, 40,129, 1, 0,116,233, 94, 0, 8,233, 62, 0, 0, -/* 0x0570 */ 125, 74, 66, 20,125, 40, 72, 80,249, 94, 0, 8,249, 62, 0, 0, -/* 0x0580 */ 72, 0, 0, 20,124,164, 43,120,127,195,243,120,125, 37, 75,120, -/* 0x0590 */ 75,255,254, 49,129, 1, 0,112,233, 95, 0, 8,233, 63, 0, 0, -/* 0x05a0 */ 125, 74, 66, 20,125, 40, 72, 80,249, 95, 0, 8,249, 63, 0, 0, -/* 0x05b0 */ 75,255,254,168, 56, 33, 0,176,129,129, 0, 8,125,144,129, 32, -/* 0x05c0 */ 72, 0, 6, 24, 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0, -/* 0x05d0 */ 44, 35, 0, 0, 77,130, 0, 32,120,105, 7,225, 76,130, 0, 32, -/* 0x05e0 */ 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64, 64,158, 0, 16, -/* 0x05f0 */ 248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32, 43,170, 0, 1, -/* 0x0600 */ 64,158, 0, 8, 64,154,255,236, 56, 99, 0, 16, 75,255,255,216, -/* 0x0610 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125,128, 0, 38, -/* 0x0620 */ 124, 8, 2,166,145,129, 0, 8, 72, 0, 5, 41,248, 33,254,225, -/* 0x0630 */ 125, 15, 67,120,161, 3, 0, 16,125, 50, 75,120,233, 35, 0, 32, -/* 0x0640 */ 125, 90, 83,120,124,125, 27,120,124,147, 35,120, 47,136, 0, 3, -/* 0x0650 */ 248,161, 1, 96,124,216, 51,120,124,240, 59,120,126, 35, 74, 20, -/* 0x0660 */ 57, 64, 0, 16, 64,158, 0, 8, 57, 64, 0, 0,161, 29, 0, 56, -/* 0x0670 */ 232,114, 0, 0, 57, 74, 0, 34,126, 39,139,120,121, 70, 0, 32, -/* 0x0680 */ 56,128, 0, 0, 57, 8, 0, 1, 59,224,255,255,125, 9, 3,166, -/* 0x0690 */ 66, 64, 0, 60,129, 7, 0, 0, 47,136, 0, 1, 64,158, 0, 40, -/* 0x06a0 */ 232,167, 0, 16,127,191, 40, 64, 64,157, 0, 8,124,191, 43,120, -/* 0x06b0 */ 233, 7, 0, 40,125, 5, 66, 20,127,164, 64, 64, 64,156, 0, 8, -/* 0x06c0 */ 125, 4, 67,120, 56,231, 0, 56, 75,255,255,200,127, 85,208,248, -/* 0x06d0 */ 127,255,208, 56,124,149, 34, 20,121, 73,231,227,124,159, 32, 80, -/* 0x06e0 */ 124,132,208, 56, 64,130, 0, 28, 47,191, 0, 0, 64,158, 0, 28, -/* 0x06f0 */ 47,163, 0, 0, 65,158, 0, 24, 56,192, 0, 50, 72, 0, 0, 16, -/* 0x0700 */ 127,227,251,120, 72, 0, 0, 8, 56, 96, 0, 0, 56,160, 0, 0, -/* 0x0710 */ 124,198, 7,180, 56,224,255,255, 57, 0, 0, 0, 75,255,252, 69, -/* 0x0720 */ 96, 0, 0, 0,127, 90,208,248, 62,224, 0, 1,147, 65, 0,136, -/* 0x0730 */ 122,247,131,228,127,255, 24, 80, 59, 32, 0, 0,123,233, 54,100, -/* 0x0740 */ 249, 33, 0,128, 46, 51, 0, 0, 98,247, 0, 1,123, 14, 7,164, -/* 0x0750 */ 161, 93, 0, 56,127,138,200, 0, 64,157, 2, 64,129, 81, 0, 0, -/* 0x0760 */ 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28,232,177, 0, 16, -/* 0x0770 */ 127, 3,195,120, 56,128, 0, 3,124,191, 42, 20, 75,255,254, 85, -/* 0x0780 */ 72, 0, 2, 8, 47,138, 0, 1, 64,158, 2, 0, 65,146, 0, 76, -/* 0x0790 */ 233, 81, 0, 8, 47,170, 0, 0, 64,158, 0, 64,233, 93, 0, 32, -/* 0x07a0 */ 232,177, 0, 16,127, 3,195,120, 56,128, 0, 3,125, 95, 82, 20, -/* 0x07b0 */ 124,170, 42, 20, 75,255,254, 29,160,189, 0, 56,127, 3,195,120, -/* 0x07c0 */ 56,128, 0, 5, 75,255,254, 13,160,189, 0, 54,127, 3,195,120, -/* 0x07d0 */ 56,128, 0, 4, 75,255,253,253,131,113, 0, 4,235,209, 0, 16, -/* 0x07e0 */ 61, 32,115, 81, 97, 41, 98, 64,235,145, 0, 32,234,209, 0, 40, -/* 0x07f0 */ 87,123, 22,250,127,223,242, 20,251,129, 0,112,125, 59,220, 48, -/* 0x0800 */ 127,202,168, 56,251,193, 0,120,126,222,178, 20,127,138,226, 20, -/* 0x0810 */ 127,202,240, 80, 87,116, 7,126, 64,146, 0, 12, 56,160, 0, 0, -/* 0x0820 */ 72, 0, 0, 8, 56,160, 0, 2,124,165,163,120,124,165, 7,180, -/* 0x0830 */ 64,146, 0, 16,232,225, 1, 96, 56,192, 0, 18, 72, 0, 0, 12, -/* 0x0840 */ 56,192, 0, 50, 56,224,255,255,233, 17, 0, 8,127,195,243,120, -/* 0x0850 */ 127,132,227,120,125, 10, 64, 80, 75,255,251, 9, 96, 0, 0, 0, -/* 0x0860 */ 127,190, 24, 0, 65,254, 0, 16, 56, 96, 0,127, 75,255,251, 13, -/* 0x0870 */ 96, 0, 0, 0, 65,146, 0, 24,126, 99,155,120, 56,129, 0,112, -/* 0x0880 */ 126, 5,131,120,125,230,123,120, 75,255,251,169,125, 92, 0,208, -/* 0x0890 */ 123,105,255,227,125, 90,168, 56, 64,130, 0, 12, 64,146, 0, 48, -/* 0x08a0 */ 72, 0, 0,176, 47,186, 0, 0, 65,158,255,244,127, 73, 3,166, -/* 0x08b0 */ 124,254,226, 20, 57, 0, 0, 0, 57, 32, 0, 0,125, 39, 65,174, -/* 0x08c0 */ 57, 8, 0, 1, 66, 0,255,244, 75,255,255,212,233, 17, 0, 0, -/* 0x08d0 */ 121, 8, 7,194,121, 8, 0, 2,127,168,184, 0, 64,158, 0, 88, -/* 0x08e0 */ 232,177, 0, 40,233, 17, 0, 32,232,241, 0, 16,127,165, 64, 0, -/* 0x08f0 */ 64,158, 0,196,124,165, 58, 20,129, 33, 0,136,124,165,250, 20, -/* 0x0900 */ 125, 5, 0,208,125, 8, 72, 56, 43,136, 0, 7, 64,157, 0,168, -/* 0x0910 */ 61, 32, 68, 0,125,195,115,120, 97, 41, 0, 2, 56,128, 0, 0, -/* 0x0920 */ 145, 37, 0, 0, 61, 32, 78,128, 97, 41, 0, 32,145, 37, 0, 4, -/* 0x0930 */ 75,255,252,161,127,195,243,120,127,132,227,120,126,133, 7,180, -/* 0x0940 */ 75,255,250,105, 96, 0, 0, 0, 47,163, 0, 0, 64,222,255, 28, -/* 0x0950 */ 127,154,226, 20,127,222,226, 20,127,190,176, 64, 64,156, 0, 44, -/* 0x0960 */ 127,195,243,120,124,158,176, 80,126,133, 7,180, 56,192, 0, 50, -/* 0x0970 */ 56,224,255,255, 57, 0, 0, 0, 75,255,249,233, 96, 0, 0, 0, -/* 0x0980 */ 127,190, 24, 0, 64,222,254,228, 59, 57, 0, 1, 58, 49, 0, 56, -/* 0x0990 */ 127, 57, 7,180, 75,255,253,188,251,242, 0, 0, 56, 33, 1, 32, -/* 0x09a0 */ 129,129, 0, 8,125,144,129, 32,232,125, 0, 24,124,127, 26, 20, -/* 0x09b0 */ 72, 0, 1,240,233, 33, 0,128,233, 17, 0, 8,124,167, 74, 20, -/* 0x09c0 */ 47,168, 0, 0, 56,165, 0, 8, 65,158,255, 72, 75,255,255,104, -/* 0x09d0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166, -/* 0x09e0 */ 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120,129, 35, 0, 0, -/* 0x09f0 */ 124,191, 43,120,124,218, 51,120, 56,192, 0, 0,125, 88, 83,120, -/* 0x0a00 */ 249, 33, 0,144,248,161, 0,152,124,229, 59,120, 59,159, 0, 64, -/* 0x0a10 */ 129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0,248, 97, 0,136, -/* 0x0a20 */ 248,129, 0,128, 57, 41, 0, 12,248,225, 0,160,249, 1, 0,168, -/* 0x0a30 */ 249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144, 75,255,249,245, -/* 0x0a40 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0, -/* 0x0a50 */ 127, 70,211,120,127,169,235,120,127, 10,195,120,127,227,251,120, -/* 0x0a60 */ 75,255,251,189, 56,128, 0, 9,124,123, 27,120,127, 67,211,120, -/* 0x0a70 */ 127,101,219,120, 75,255,251, 93,161, 63, 0, 56,127,137,240, 64, -/* 0x0a80 */ 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,156, -/* 0x0a90 */ 232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0, 56,160, 0, 0, -/* 0x0aa0 */ 124, 99, 74, 20, 75,255,248,245, 96, 0, 0, 0, 47,131, 0, 0, -/* 0x0ab0 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,248,189, -/* 0x0ac0 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,248,197, -/* 0x0ad0 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 57, 32, 0, 0, -/* 0x0ae0 */ 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120, 56,192, 0, 0, -/* 0x0af0 */ 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120,127, 10,195,120, -/* 0x0b00 */ 127,227,251,120, 75,255,251, 25,232,189, 0, 0, 56,128, 0, 7, -/* 0x0b10 */ 124,123, 27,120,127, 67,211,120, 75,255,250,185,127, 35,203,120, -/* 0x0b20 */ 75,255,248,129, 96, 0, 0, 0, 59,222, 0, 1, 59,156, 0, 56, -/* 0x0b30 */ 123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240,127, 99,219,120, -/* 0x0b40 */ 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0, -/* 0x0b50 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136, -/* 0x0b60 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168, -/* 0x0b70 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200, -/* 0x0b80 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232, -/* 0x0b90 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32, -/* 0x0ba0 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136, -/* 0x0bb0 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168, -/* 0x0bc0 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200, -/* 0x0bd0 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16, -/* 0x0be0 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248, -/* 0x0bf0 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,192, -/* 0x0c00 */ 0, 0, 0, 0, 0, 16,139,248, 0, 0, 0, 0, 0, 16, 4, 48, -/* 0x0c10 */ 0, 0, 0, 0, 0, 16,139,248, 0, 0, 0, 0, 0, 16, 5,208, -/* 0x0c20 */ 0, 0, 0, 0, 0, 16,139,248, 0, 0, 0, 0, 0, 16, 6, 28, -/* 0x0c30 */ 0, 0, 0, 0, 0, 16,139,248, 0, 0, 0, 0, 0, 16, 9,220, -/* 0x0c40 */ 0, 0, 0, 0, 0, 16,139,248 +/* 0x0200 */ 124, 96, 24, 80,126,164,171,120, 56, 0, 0, 0,248, 3,255,249, +/* 0x0210 */ 248, 3,255,249,124,117, 27,120,127, 84, 24, 80,232, 4,255,249, +/* 0x0220 */ 127,164, 8, 64,248, 3,255,249, 65,253,255,244,124, 97, 27,120, +/* 0x0230 */ 57, 33, 1,136,251, 41, 0, 0,248, 33,247,113,127, 3,195,120, +/* 0x0240 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120, +/* 0x0250 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112, +/* 0x0260 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136, +/* 0x0270 */ 127,202,243,120, 72, 0, 7,125, 56, 33, 8,144,126,162,171,120, +/* 0x0280 */ 112, 96, 0, 7, 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0, +/* 0x0290 */ 64,130, 0, 24,232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20, +/* 0x02a0 */ 232, 99, 0, 0,124, 99, 2, 20,248,117, 0, 0,124,127, 27,120, +/* 0x02b0 */ 57, 0, 0, 0,127,103,219,120, 56,192, 0, 2, 56,160, 0, 1, +/* 0x02c0 */ 124,158, 0,208, 56, 96, 0, 0, 72, 0, 0,161,127, 99,219,120, +/* 0x02d0 */ 72, 0, 0,217,232, 21,255,248,124, 9, 3,166,232, 21, 0, 0, +/* 0x02e0 */ 248, 1, 1,128,127,163,235,120,127,132,227,120, 56, 0, 0, 91, +/* 0x02f0 */ 127,232, 3,166,232,161, 0,176,232,193, 0,184,232,225, 0,192, +/* 0x0300 */ 233, 1, 0,200,233, 33, 0,208,233, 65, 0,216,233, 97, 0,224, +/* 0x0310 */ 233,129, 0,232,233,161, 0,240,233,193, 0,248,233,225, 1, 0, +/* 0x0320 */ 234, 1, 1, 8,234, 33, 1, 16,234, 65, 1, 24,234, 97, 1, 32, +/* 0x0330 */ 234,129, 1, 40,234,161, 1, 48,234,193, 1, 56,234,225, 1, 64, +/* 0x0340 */ 235, 1, 1, 72,235, 33, 1, 80,235, 65, 1, 88,235, 97, 1, 96, +/* 0x0350 */ 235,129, 1,104,235,161, 1,112,235,193, 1,120,235,225, 1,128, +/* 0x0360 */ 56, 33, 1,144, 78,128, 4, 32,120,231, 0, 32, 56, 0, 0, 90, +/* 0x0370 */ 68, 0, 0, 2, 64,227, 0, 8, 56, 96,255,255, 78,128, 0, 32, +/* 0x0380 */ 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8, +/* 0x0390 */ 56, 0, 0, 85, 72, 0, 0, 8, 56, 0, 0, 3, 72, 0, 0, 8, +/* 0x03a0 */ 56, 0, 0, 5, 72, 0, 0, 8, 56, 0, 0, 6, 72, 0, 0, 8, +/* 0x03b0 */ 56, 0, 0,125, 72, 0, 0, 8, 56, 0, 0, 91, 75,255,255,180, +/* 0x03c0 */ 124,128, 0, 8, 78,128, 0, 32,233, 67, 0, 0,233, 3, 0, 8, +/* 0x03d0 */ 56,229, 0, 1, 57, 32, 0, 0,124,233, 3,166,127,170, 40, 64, +/* 0x03e0 */ 64,252, 0, 28,124, 8, 2,166, 56, 96, 0,127,248, 1, 0, 16, +/* 0x03f0 */ 248, 33,255,145, 75,255,255,141, 96, 0, 0, 0, 66, 64, 0, 20, +/* 0x0400 */ 125, 72, 72,174,125, 68, 73,174, 57, 41, 0, 1, 75,255,255,240, +/* 0x0410 */ 233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,233, 67, 0, 0, +/* 0x0420 */ 125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32, 0, 0, 0, 0, +/* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,124, 8, 2,166, +/* 0x0440 */ 145,129, 0, 8, 72, 0, 7, 89,248, 33,255, 81,124,126, 27,120, +/* 0x0450 */ 124,159, 35,120,124,189, 43,120,124,220, 51,120, 46, 38, 0, 0, +/* 0x0460 */ 233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 84,127,195,243,120, +/* 0x0470 */ 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,129, 65, 0,112, +/* 0x0480 */ 129, 33, 0,116, 47,170, 0, 0, 64,158, 0, 32,109, 37, 33, 88, +/* 0x0490 */ 47,133, 80, 85, 64,158, 0, 28,233, 62, 0, 0, 47,169, 0, 0, +/* 0x04a0 */ 65,254, 1, 28, 72, 0, 0, 12,121, 41, 0, 33, 64,226, 0, 16, +/* 0x04b0 */ 56, 96, 0,127, 75,255,254,205, 96, 0, 0, 0,127, 9, 80, 64, +/* 0x04c0 */ 65,217,255,240,233, 31, 0, 0,127,170, 64, 64, 65,221,255,228, +/* 0x04d0 */ 232,191, 0, 8, 64,152, 0,184,125, 36, 75,120,233, 61, 0, 0, +/* 0x04e0 */ 232,126, 0, 8, 56,193, 0,128,249, 65, 0,128,248, 65, 0, 40, +/* 0x04f0 */ 136,225, 0,120,233,125, 0, 16,125, 41, 3,166,232, 93, 0, 8, +/* 0x0500 */ 78,128, 4, 33,232, 65, 0, 40, 47,163, 0, 0, 64,222,255,164, +/* 0x0510 */ 232,129, 0,128,129, 33, 0,112,127,164, 72, 64, 64,222,255,148, +/* 0x0520 */ 136,193, 0,121, 47,166, 0, 0, 65,158, 0, 68, 65,146, 0, 64, +/* 0x0530 */ 43,164, 2, 0, 65,157, 0, 16,233, 63, 0, 0,127,169, 32, 0, +/* 0x0540 */ 64,158, 0, 44,232,127, 0, 8,136,161, 0,122,120,132, 0, 32, +/* 0x0550 */ 248, 65, 0, 40,233, 60, 0, 0,233,124, 0, 16,125, 41, 3,166, +/* 0x0560 */ 232, 92, 0, 8, 78,128, 4, 33,232, 65, 0, 40,129, 1, 0,116, +/* 0x0570 */ 233, 94, 0, 8,233, 62, 0, 0,125, 74, 66, 20,125, 40, 72, 80, +/* 0x0580 */ 249, 94, 0, 8,249, 62, 0, 0, 72, 0, 0, 20,124,164, 43,120, +/* 0x0590 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 49,129, 1, 0,112, +/* 0x05a0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80, +/* 0x05b0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,168, 56, 33, 0,176, +/* 0x05c0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 6, 36, 0, 0, 0, 0, +/* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 44, 35, 0, 0, 77,130, 0, 32, +/* 0x05e0 */ 120,105, 7,225, 76,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0, +/* 0x05f0 */ 127,170, 32, 64, 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, +/* 0x0600 */ 78,128, 0, 32, 43,170, 0, 1, 64,158, 0, 8, 64,154,255,236, +/* 0x0610 */ 56, 99, 0, 16, 75,255,255,216, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0620 */ 0, 0, 0, 0,125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, +/* 0x0630 */ 72, 0, 5, 53,248, 33,254,225,125, 15, 67,120,161, 3, 0, 16, +/* 0x0640 */ 125, 50, 75,120,233, 35, 0, 32,125, 90, 83,120,124,125, 27,120, +/* 0x0650 */ 124,147, 35,120, 47,136, 0, 3,248,161, 1, 96,124,216, 51,120, +/* 0x0660 */ 124,240, 59,120,126, 35, 74, 20, 57, 64, 0, 16, 64,158, 0, 8, +/* 0x0670 */ 57, 64, 0, 0,161, 29, 0, 56,232,114, 0, 0, 57, 74, 0, 34, +/* 0x0680 */ 126, 39,139,120,121, 70, 0, 32, 56,128, 0, 0, 57, 8, 0, 1, +/* 0x0690 */ 59,224,255,255,125, 9, 3,166, 66, 64, 0, 60,129, 7, 0, 0, +/* 0x06a0 */ 47,136, 0, 1, 64,158, 0, 40,232,167, 0, 16,127,191, 40, 64, +/* 0x06b0 */ 64,157, 0, 8,124,191, 43,120,233, 7, 0, 40,125, 5, 66, 20, +/* 0x06c0 */ 127,164, 64, 64, 64,156, 0, 8,125, 4, 67,120, 56,231, 0, 56, +/* 0x06d0 */ 75,255,255,200,127, 85,208,248,127,255,208, 56,124,149, 34, 20, +/* 0x06e0 */ 121, 73,231,227,124,159, 32, 80,124,132,208, 56, 64,130, 0, 28, +/* 0x06f0 */ 47,191, 0, 0, 64,158, 0, 28, 47,163, 0, 0, 65,158, 0, 24, +/* 0x0700 */ 56,192, 0, 50, 72, 0, 0, 16,127,227,251,120, 72, 0, 0, 8, +/* 0x0710 */ 56, 96, 0, 0, 56,160, 0, 0,124,198, 7,180, 56,224,255,255, +/* 0x0720 */ 57, 0, 0, 0, 75,255,252, 69, 96, 0, 0, 0,127, 90,208,248, +/* 0x0730 */ 62,224, 0, 1,147, 65, 0,136,122,247,131,228,127,255, 24, 80, +/* 0x0740 */ 59, 32, 0, 0, 57, 63, 0,120, 46, 51, 0, 0,249, 33, 0,128, +/* 0x0750 */ 98,247, 0, 1,123, 14, 7,164,161, 93, 0, 56,127,138,200, 0, +/* 0x0760 */ 64,157, 2, 76,129, 81, 0, 0, 65,146, 0, 36, 47,138, 0, 6, +/* 0x0770 */ 64,158, 0, 28,232,177, 0, 16,127, 3,195,120, 56,128, 0, 3, +/* 0x0780 */ 124,191, 42, 20, 75,255,254, 85, 72, 0, 2, 20, 47,138, 0, 1, +/* 0x0790 */ 64,158, 2, 12, 65,146, 0, 76,233, 81, 0, 8, 47,170, 0, 0, +/* 0x07a0 */ 64,158, 0, 64,233, 93, 0, 32,232,177, 0, 16,127, 3,195,120, +/* 0x07b0 */ 56,128, 0, 3,125, 95, 82, 20,124,170, 42, 20, 75,255,254, 29, +/* 0x07c0 */ 160,189, 0, 56,127, 3,195,120, 56,128, 0, 5, 75,255,254, 13, +/* 0x07d0 */ 160,189, 0, 54,127, 3,195,120, 56,128, 0, 4, 75,255,253,253, +/* 0x07e0 */ 131,113, 0, 4,235,209, 0, 16, 61, 32,115, 81, 97, 41, 98, 64, +/* 0x07f0 */ 235,145, 0, 32,234,209, 0, 40, 87,123, 22,250,127,223,242, 20, +/* 0x0800 */ 251,129, 0,112,125, 59,220, 48,127,202,168, 56,251,193, 0,120, +/* 0x0810 */ 126,222,178, 20,127,138,226, 20,127,202,240, 80, 87,116, 7,126, +/* 0x0820 */ 64,146, 0, 12, 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2, +/* 0x0830 */ 124,165,163,120,124,165, 7,180, 64,146, 0, 16,232,225, 1, 96, +/* 0x0840 */ 56,192, 0, 18, 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255, +/* 0x0850 */ 233, 17, 0, 8,127,195,243,120,127,132,227,120,125, 10, 64, 80, +/* 0x0860 */ 75,255,251, 9, 96, 0, 0, 0,127,190, 24, 0, 65,254, 0, 16, +/* 0x0870 */ 56, 96, 0,127, 75,255,251, 13, 96, 0, 0, 0, 65,146, 0, 24, +/* 0x0880 */ 126, 99,155,120, 56,129, 0,112,126, 5,131,120,125,230,123,120, +/* 0x0890 */ 75,255,251,169,125, 92, 0,208,123,105,255,227,125, 90,168, 56, +/* 0x08a0 */ 64,130, 0, 12, 64,146, 0, 48, 72, 0, 0,188, 47,186, 0, 0, +/* 0x08b0 */ 65,158,255,244,127, 73, 3,166,124,254,226, 20, 57, 0, 0, 0, +/* 0x08c0 */ 57, 32, 0, 0,125, 39, 65,174, 57, 8, 0, 1, 66, 0,255,244, +/* 0x08d0 */ 75,255,255,212,233, 17, 0, 0,121, 8, 7,194,121, 8, 0, 2, +/* 0x08e0 */ 127,168,184, 0, 64,158, 0,100,232,177, 0, 40,233, 17, 0, 32, +/* 0x08f0 */ 232,241, 0, 16,127,165, 64, 0, 64,158, 0,208,124,165, 58, 20, +/* 0x0900 */ 129, 33, 0,136,124,165,250, 20,125, 5, 0,208,125, 8, 72, 56, +/* 0x0910 */ 43,136, 0, 11, 64,157, 0,180, 61, 32, 68, 0,125,195,115,120, +/* 0x0920 */ 97, 41, 0, 2, 56,128, 0, 0,145, 37, 0, 0, 61, 32,127,236, +/* 0x0930 */ 97, 41,251,120,145, 37, 0, 4, 61, 32, 78,128, 97, 41, 0, 32, +/* 0x0940 */ 145, 37, 0, 8, 75,255,252,149,127,195,243,120,127,132,227,120, +/* 0x0950 */ 126,133, 7,180, 75,255,250, 93, 96, 0, 0, 0, 47,163, 0, 0, +/* 0x0960 */ 64,222,255, 16,127,154,226, 20,127,222,226, 20,127,190,176, 64, +/* 0x0970 */ 64,156, 0, 44,127,195,243,120,124,158,176, 80,126,133, 7,180, +/* 0x0980 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,249,221, +/* 0x0990 */ 96, 0, 0, 0,127,190, 24, 0, 64,222,254,216, 59, 57, 0, 1, +/* 0x09a0 */ 58, 49, 0, 56,127, 57, 7,180, 75,255,253,176,251,242, 0, 0, +/* 0x09b0 */ 56, 33, 1, 32,129,129, 0, 8,125,144,129, 32,232,125, 0, 24, +/* 0x09c0 */ 124,127, 26, 20, 72, 0, 1,240,233, 33, 0,128,233, 17, 0, 8, +/* 0x09d0 */ 124,169, 58, 20, 47,168, 0, 0, 56,165, 0, 24, 65,158,255, 60, +/* 0x09e0 */ 75,255,255,104, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, +/* 0x09f0 */ 124, 8, 2,166, 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120, +/* 0x0a00 */ 129, 35, 0, 0,124,191, 43,120,124,218, 51,120, 56,192, 0, 0, +/* 0x0a10 */ 125, 88, 83,120,249, 33, 0,144,248,161, 0,152,124,229, 59,120, +/* 0x0a20 */ 59,159, 0, 64,129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0, +/* 0x0a30 */ 248, 97, 0,136,248,129, 0,128, 57, 41, 0, 12,248,225, 0,160, +/* 0x0a40 */ 249, 1, 0,168,249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144, +/* 0x0a50 */ 75,255,249,233,232,225, 0,160,233, 1, 0,168, 56,129, 0,128, +/* 0x0a60 */ 56,160, 0, 0,127, 70,211,120,127,169,235,120,127, 10,195,120, +/* 0x0a70 */ 127,227,251,120, 75,255,251,177, 56,128, 0, 9,124,123, 27,120, +/* 0x0a80 */ 127, 67,211,120,127,101,219,120, 75,255,251, 81,161, 63, 0, 56, +/* 0x0a90 */ 127,137,240, 64, 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3, +/* 0x0aa0 */ 64,158, 0,156,232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0, +/* 0x0ab0 */ 56,160, 0, 0,124, 99, 74, 20, 75,255,248,233, 96, 0, 0, 0, +/* 0x0ac0 */ 47,131, 0, 0,124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, +/* 0x0ad0 */ 75,255,248,177, 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, +/* 0x0ae0 */ 75,255,248,185, 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, +/* 0x0af0 */ 57, 32, 0, 0, 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120, +/* 0x0b00 */ 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120, +/* 0x0b10 */ 127, 10,195,120,127,227,251,120, 75,255,251, 13,232,189, 0, 0, +/* 0x0b20 */ 56,128, 0, 7,124,123, 27,120,127, 67,211,120, 75,255,250,173, +/* 0x0b30 */ 127, 35,203,120, 75,255,248,117, 96, 0, 0, 0, 59,222, 0, 1, +/* 0x0b40 */ 59,156, 0, 56,123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240, +/* 0x0b50 */ 127, 99,219,120, 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1, +/* 0x0b60 */ 128, 8, 0, 0,249,193,255,112,249,225,255,120,250, 1,255,128, +/* 0x0b70 */ 250, 33,255,136,250, 65,255,144,250, 97,255,152,250,129,255,160, +/* 0x0b80 */ 250,161,255,168,250,193,255,176,250,225,255,184,251, 1,255,192, +/* 0x0b90 */ 251, 33,255,200,251, 65,255,208,251, 97,255,216,251,129,255,224, +/* 0x0ba0 */ 251,161,255,232,251,193,255,240,251,225,255,248,248, 1, 0, 16, +/* 0x0bb0 */ 78,128, 0, 32,233,193,255,112,233,225,255,120,234, 1,255,128, +/* 0x0bc0 */ 234, 33,255,136,234, 65,255,144,234, 97,255,152,234,129,255,160, +/* 0x0bd0 */ 234,161,255,168,234,193,255,176,234,225,255,184,235, 1,255,192, +/* 0x0be0 */ 235, 33,255,200,235, 65,255,208,235, 97,255,216,235,129,255,224, +/* 0x0bf0 */ 232, 1, 0, 16,235,161,255,232,124, 8, 3,166,235,193,255,240, +/* 0x0c00 */ 235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, 0, 16, 3,200, +/* 0x0c10 */ 0, 0, 0, 0, 0, 16,140, 8, 0, 0, 0, 0, 0, 16, 4, 56, +/* 0x0c20 */ 0, 0, 0, 0, 0, 16,140, 8, 0, 0, 0, 0, 0, 16, 5,216, +/* 0x0c30 */ 0, 0, 0, 0, 0, 16,140, 8, 0, 0, 0, 0, 0, 16, 6, 36, +/* 0x0c40 */ 0, 0, 0, 0, 0, 16,140, 8, 0, 0, 0, 0, 0, 16, 9,240, +/* 0x0c50 */ 0, 0, 0, 0, 0, 16,140, 8 }; diff --git a/src/stub/powerpc64le-linux.elf-fold.h b/src/stub/powerpc64le-linux.elf-fold.h index e932860d..be21215a 100644 --- a/src/stub/powerpc64le-linux.elf-fold.h +++ b/src/stub/powerpc64le-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64le-linux.elf-fold.h - created from powerpc64le-linux.elf-fold.bin, 3131 (0xc3b) bytes + created from powerpc64le-linux.elf-fold.bin, 3155 (0xc53) bytes This file is part of the UPX executable compressor. @@ -31,21 +31,21 @@ */ -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3131 -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x8c934333 -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xc53affa6 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3155 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x8c494114 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0xfaf2fe1c -unsigned char stub_powerpc64le_linux_elf_fold[3131] = { +unsigned char stub_powerpc64le_linux_elf_fold[3155] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,240, 11, 16, 0, 0, 0, 0, 0, +/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0, 8, 12, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 240, 11, 0, 0, 0, 0, 0, 0,240, 11, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 4, 12, 0, 0, 0, 0, 0, 0, 4, 12, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, -/* 0x0080 */ 240, 11, 0, 0, 0, 0, 0, 0,240, 11, 16, 0, 0, 0, 0, 0, -/* 0x0090 */ 240, 11, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 8, 12, 0, 0, 0, 0, 0, 0, 8, 12, 16, 0, 0, 0, 0, 0, +/* 0x0090 */ 8, 12, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56, /* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72, @@ -63,173 +63,175 @@ unsigned char stub_powerpc64le_linux_elf_fold[3131] = { /* 0x0180 */ 17, 0, 4,232, 17, 0, 3,248,236,255,158, 64, 8, 0,163, 58, /* 0x0190 */ 80,168,154,126,100, 0, 22,128, 8, 0,100, 58, 8, 0, 3,148, /* 0x01a0 */ 4, 0, 67, 58,255, 15,160, 56,120,147, 68,126,104, 0,118, 56, -/* 0x01b0 */ 217, 1, 0, 72,252,255,178, 56, 0, 0, 35, 44, 12, 0,129, 65, +/* 0x01b0 */ 225, 1, 0, 72,252,255,178, 56, 0, 0, 35, 44, 12, 0,129, 65, /* 0x01c0 */ 100, 0,182, 56, 12, 0, 96, 56, 4, 0, 99, 56, 20, 26,133,124, /* 0x01d0 */ 166, 3,105,124,120,155, 99,126, 0, 0,160, 56,255,255,163,156, /* 0x01e0 */ 255,255, 4,140,255,255, 3,156,248,255, 0, 66,240,255,122,248, /* 0x01f0 */ 36, 7, 99,120,120, 34, 32,124,120, 26, 0,124, 32, 7, 0,120, -/* 0x0200 */ 80, 24, 96,124,120,171,164,126, 80, 24, 84,127,249,255, 4,232, -/* 0x0210 */ 64, 8,164,127,249,255, 3,248,244,255,253, 65,120, 27, 97,124, -/* 0x0220 */ 136, 1, 33, 57, 0, 0, 41,251,113,247, 33,248,120,195, 3,127, -/* 0x0230 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127, -/* 0x0240 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56, -/* 0x0250 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248, -/* 0x0260 */ 120,243,202,127,117, 7, 0, 72,144, 8, 33, 56, 7, 0, 96,112, -/* 0x0270 */ 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40, 24, 0,130, 64, -/* 0x0280 */ 136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124, 0, 0, 99,232, -/* 0x0290 */ 20, 2, 99,124,120, 27,127,124, 0, 0, 0, 57,120,219,103,127, -/* 0x02a0 */ 2, 0,192, 56, 1, 0,160, 56,208, 0,158,124, 0, 0, 96, 56, -/* 0x02b0 */ 177, 0, 0, 72,120,219, 99,127,233, 0, 0, 72,120,211, 67,127, -/* 0x02c0 */ 0, 0, 3,232, 8, 0,131,232, 16, 0, 99, 56, 0, 0,160, 43, -/* 0x02d0 */ 240,255,254, 64,166, 3,137,124,120,235,163,127,120,227,132,127, -/* 0x02e0 */ 91, 0, 0, 56,166, 3,232,127,176, 0,161,232,184, 0,193,232, -/* 0x02f0 */ 192, 0,225,232,200, 0, 1,233,208, 0, 33,233,216, 0, 65,233, -/* 0x0300 */ 224, 0, 97,233,232, 0,129,233,240, 0,161,233,248, 0,193,233, -/* 0x0310 */ 0, 1,225,233, 8, 1, 1,234, 16, 1, 33,234, 24, 1, 65,234, -/* 0x0320 */ 32, 1, 97,234, 40, 1,129,234, 48, 1,161,234, 56, 1,193,234, -/* 0x0330 */ 64, 1,225,234, 72, 1, 1,235, 80, 1, 33,235, 88, 1, 65,235, -/* 0x0340 */ 96, 1, 97,235,104, 1,129,235,112, 1,161,235,120, 1,193,235, -/* 0x0350 */ 128, 1,225,235,144, 1, 33, 56,166, 2,136,125, 32, 4,128, 78, -/* 0x0360 */ 32, 0,231,120, 90, 0, 0, 56, 2, 0, 0, 68, 8, 0,227, 64, -/* 0x0370 */ 255,255, 96, 56, 32, 0,128, 78, 1, 0, 0, 56, 8, 0, 0, 72, -/* 0x0380 */ 45, 0, 0, 56, 8, 0, 0, 72, 85, 0, 0, 56, 8, 0, 0, 72, -/* 0x0390 */ 3, 0, 0, 56, 8, 0, 0, 72, 5, 0, 0, 56, 8, 0, 0, 72, -/* 0x03a0 */ 6, 0, 0, 56, 8, 0, 0, 72,125, 0, 0, 56, 8, 0, 0, 72, -/* 0x03b0 */ 91, 0, 0, 56,180,255,255, 75, 8, 0,128,124, 32, 0,128, 78, -/* 0x03c0 */ 0, 0, 67,233, 8, 0, 3,233, 1, 0,229, 56, 0, 0, 32, 57, -/* 0x03d0 */ 166, 3,233,124, 64, 40,170,127, 28, 0,252, 64,166, 2, 8,124, -/* 0x03e0 */ 127, 0, 96, 56, 16, 0, 1,248,145,255, 33,248,141,255,255, 75, -/* 0x03f0 */ 0, 0, 0, 96, 20, 0, 64, 66,174, 72, 72,125,174, 73, 68,125, -/* 0x0400 */ 1, 0, 41, 57,240,255,255, 75, 8, 0, 67,233, 20, 74, 74,125, -/* 0x0410 */ 8, 0, 67,249, 0, 0, 67,233, 80, 80, 41,125, 0, 0, 35,249, -/* 0x0420 */ 32, 0,128, 78, 0, 0, 0, 0, 0, 0, 0, 1,128, 0, 0, 0, -/* 0x0430 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145, 73, 7, 0, 72, -/* 0x0440 */ 81,255, 33,248,120, 27,126,124,120, 35,159,124,120, 43,189,124, -/* 0x0450 */ 120, 51,220,124, 0, 0, 38, 46, 0, 0, 63,233, 0, 0,169, 47, -/* 0x0460 */ 84, 1,158, 65,120,243,195,127,112, 0,129, 56, 12, 0,160, 56, -/* 0x0470 */ 81,255,255, 75,112, 0, 65,129,116, 0, 33,129, 0, 0,170, 47, -/* 0x0480 */ 32, 0,158, 64, 88, 33, 37,109, 85, 80,133, 47, 28, 0,158, 64, -/* 0x0490 */ 0, 0, 62,233, 0, 0,169, 47, 28, 1,254, 65, 12, 0, 0, 72, -/* 0x04a0 */ 33, 0, 41,121, 16, 0,226, 64,127, 0, 96, 56,205,254,255, 75, -/* 0x04b0 */ 0, 0, 0, 96, 64, 80, 9,127,240,255,217, 65, 0, 0, 31,233, -/* 0x04c0 */ 64, 64,170,127,228,255,221, 65, 8, 0,191,232,184, 0,152, 64, -/* 0x04d0 */ 120, 75, 36,125, 0, 0, 61,233, 8, 0,126,232,128, 0,193, 56, -/* 0x04e0 */ 128, 0, 65,249, 40, 0, 65,248,120, 0,225,136, 16, 0,125,233, -/* 0x04f0 */ 166, 3, 41,125, 8, 0, 93,232, 33, 4,128, 78, 40, 0, 65,232, -/* 0x0500 */ 0, 0,163, 47,164,255,222, 64,128, 0,129,232,112, 0, 33,129, -/* 0x0510 */ 64, 72,164,127,148,255,222, 64,121, 0,193,136, 0, 0,166, 47, -/* 0x0520 */ 68, 0,158, 65, 64, 0,146, 65, 0, 2,164, 43, 16, 0,157, 65, -/* 0x0530 */ 0, 0, 63,233, 0, 32,169,127, 44, 0,158, 64, 8, 0,127,232, -/* 0x0540 */ 122, 0,161,136, 32, 0,132,120, 40, 0, 65,248, 0, 0, 60,233, -/* 0x0550 */ 16, 0,124,233,166, 3, 41,125, 8, 0, 92,232, 33, 4,128, 78, -/* 0x0560 */ 40, 0, 65,232,116, 0, 1,129, 8, 0, 94,233, 0, 0, 62,233, -/* 0x0570 */ 20, 66, 74,125, 80, 72, 40,125, 8, 0, 94,249, 0, 0, 62,249, -/* 0x0580 */ 20, 0, 0, 72,120, 43,164,124,120,243,195,127,120, 75, 37,125, -/* 0x0590 */ 49,254,255, 75,112, 0, 1,129, 8, 0, 95,233, 0, 0, 63,233, -/* 0x05a0 */ 20, 66, 74,125, 80, 72, 40,125, 8, 0, 95,249, 0, 0, 63,249, -/* 0x05b0 */ 168,254,255, 75,176, 0, 33, 56, 8, 0,129,129, 32,129,144,125, -/* 0x05c0 */ 20, 6, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,128, 4, 0, 0, -/* 0x05d0 */ 0, 0, 35, 44, 32, 0,130, 77,225, 7,105,120, 32, 0,130, 76, -/* 0x05e0 */ 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127, 16, 0,158, 64, -/* 0x05f0 */ 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78, 1, 0,170, 43, -/* 0x0600 */ 8, 0,158, 64,236,255,154, 64, 16, 0, 99, 56,216,255,255, 75, -/* 0x0610 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,128,125, -/* 0x0620 */ 166, 2, 8,124, 8, 0,129,145, 37, 5, 0, 72,225,254, 33,248, -/* 0x0630 */ 120, 67, 15,125, 16, 0, 3,161,120, 75, 50,125, 32, 0, 35,233, -/* 0x0640 */ 120, 83, 90,125,120, 27,125,124,120, 35,147,124, 3, 0,136, 47, -/* 0x0650 */ 96, 1,161,248,120, 51,216,124,120, 59,240,124, 20, 74, 35,126, -/* 0x0660 */ 16, 0, 64, 57, 8, 0,158, 64, 0, 0, 64, 57, 56, 0, 29,161, -/* 0x0670 */ 0, 0,114,232, 34, 0, 74, 57,120,139, 39,126, 32, 0, 70,121, -/* 0x0680 */ 0, 0,128, 56, 1, 0, 8, 57,255,255,224, 59,166, 3, 9,125, -/* 0x0690 */ 60, 0, 64, 66, 0, 0, 7,129, 1, 0,136, 47, 40, 0,158, 64, -/* 0x06a0 */ 16, 0,167,232, 64, 40,191,127, 8, 0,157, 64,120, 43,191,124, -/* 0x06b0 */ 40, 0, 7,233, 20, 66, 5,125, 64, 64,164,127, 8, 0,156, 64, -/* 0x06c0 */ 120, 67, 4,125, 56, 0,231, 56,200,255,255, 75,248,208, 85,127, -/* 0x06d0 */ 56,208,255,127, 20, 34,149,124,227,231, 73,121, 80, 32,159,124, -/* 0x06e0 */ 56,208,132,124, 28, 0,130, 64, 0, 0,191, 47, 28, 0,158, 64, -/* 0x06f0 */ 0, 0,163, 47, 24, 0,158, 65, 50, 0,192, 56, 16, 0, 0, 72, -/* 0x0700 */ 120,251,227,127, 8, 0, 0, 72, 0, 0, 96, 56, 0, 0,160, 56, -/* 0x0710 */ 180, 7,198,124,255,255,224, 56, 0, 0, 0, 57, 69,252,255, 75, -/* 0x0720 */ 0, 0, 0, 96,248,208, 90,127, 1, 0,224, 62,136, 0, 65,147, -/* 0x0730 */ 228,131,247,122, 80, 24,255,127, 0, 0, 32, 59,100, 54,233,123, -/* 0x0740 */ 128, 0, 33,249, 0, 0, 51, 46, 1, 0,247, 98,164, 7, 14,123, -/* 0x0750 */ 56, 0, 93,161, 0,200,138,127, 60, 2,157, 64, 0, 0, 81,129, -/* 0x0760 */ 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, 16, 0,177,232, -/* 0x0770 */ 120,195, 3,127, 3, 0,128, 56, 20, 42,191,124, 85,254,255, 75, -/* 0x0780 */ 4, 2, 0, 72, 1, 0,138, 47,252, 1,158, 64, 76, 0,146, 65, -/* 0x0790 */ 8, 0, 81,233, 0, 0,170, 47, 64, 0,158, 64, 32, 0, 93,233, -/* 0x07a0 */ 16, 0,177,232,120,195, 3,127, 3, 0,128, 56, 20, 82, 95,125, -/* 0x07b0 */ 20, 42,170,124, 29,254,255, 75, 56, 0,189,160,120,195, 3,127, -/* 0x07c0 */ 5, 0,128, 56, 13,254,255, 75, 54, 0,189,160,120,195, 3,127, -/* 0x07d0 */ 4, 0,128, 56,253,253,255, 75, 4, 0,113,131, 16, 0,209,235, -/* 0x07e0 */ 81,115, 32, 61, 64, 98, 41, 97, 32, 0,145,235, 40, 0,209,234, -/* 0x07f0 */ 250, 22,123, 87, 20,242,223,127,112, 0,129,251, 48,220, 59,125, -/* 0x0800 */ 56,168,202,127,120, 0,193,251, 20,178,222,126, 20,226,138,127, -/* 0x0810 */ 80,240,202,127,126, 7,116, 87, 12, 0,146, 64, 0, 0,160, 56, -/* 0x0820 */ 8, 0, 0, 72, 2, 0,160, 56,120,163,165,124,180, 7,165,124, -/* 0x0830 */ 16, 0,146, 64, 96, 1,225,232, 18, 0,192, 56, 12, 0, 0, 72, -/* 0x0840 */ 50, 0,192, 56,255,255,224, 56, 8, 0, 17,233,120,243,195,127, -/* 0x0850 */ 120,227,132,127, 80, 64, 10,125, 9,251,255, 75, 0, 0, 0, 96, -/* 0x0860 */ 0, 24,190,127, 16, 0,254, 65,127, 0, 96, 56, 13,251,255, 75, -/* 0x0870 */ 0, 0, 0, 96, 24, 0,146, 65,120,155, 99,126,112, 0,129, 56, -/* 0x0880 */ 120,131, 5,126,120,123,230,125,169,251,255, 75,208, 0, 92,125, -/* 0x0890 */ 227,255,105,123, 56,168, 90,125, 12, 0,130, 64, 48, 0,146, 64, -/* 0x08a0 */ 172, 0, 0, 72, 0, 0,186, 47,244,255,158, 65,166, 3, 73,127, -/* 0x08b0 */ 20,226,254,124, 0, 0, 0, 57, 0, 0, 32, 57,174, 65, 39,125, -/* 0x08c0 */ 1, 0, 8, 57,244,255, 0, 66,212,255,255, 75, 0, 0, 17,233, -/* 0x08d0 */ 192, 7, 8,121, 0,184,168,127, 88, 0,158, 64, 40, 0,177,232, -/* 0x08e0 */ 32, 0, 17,233, 16, 0,241,232, 0, 64,165,127,196, 0,158, 64, -/* 0x08f0 */ 20, 58,165,124,136, 0, 33,129, 20,250,165,124,208, 0, 5,125, -/* 0x0900 */ 56, 72, 8,125, 7, 0,136, 43,168, 0,157, 64, 0, 68, 32, 61, -/* 0x0910 */ 120,115,195,125, 2, 0, 41, 97, 0, 0,128, 56, 0, 0, 37,145, -/* 0x0920 */ 128, 78, 32, 61, 32, 0, 41, 97, 4, 0, 37,145,165,252,255, 75, -/* 0x0930 */ 120,243,195,127,120,227,132,127,180, 7,133,126,109,250,255, 75, -/* 0x0940 */ 0, 0, 0, 96, 0, 0,163, 47, 32,255,222, 64, 20,226,154,127, -/* 0x0950 */ 20,226,222,127, 64,176,190,127, 44, 0,156, 64,120,243,195,127, -/* 0x0960 */ 80,176,158,124,180, 7,133,126, 50, 0,192, 56,255,255,224, 56, -/* 0x0970 */ 0, 0, 0, 57,237,249,255, 75, 0, 0, 0, 96, 0, 24,190,127, -/* 0x0980 */ 232,254,222, 64, 1, 0, 57, 59, 56, 0, 49, 58,180, 7, 57,127, -/* 0x0990 */ 192,253,255, 75, 0, 0,242,251, 32, 1, 33, 56, 8, 0,129,129, -/* 0x09a0 */ 32,129,144,125, 24, 0,125,232, 20, 26,127,124,240, 1, 0, 72, -/* 0x09b0 */ 128, 0, 33,233, 8, 0, 17,233, 20, 74,167,124, 0, 0,168, 47, -/* 0x09c0 */ 8, 0,165, 56, 72,255,158, 65,104,255,255, 75, 0, 0, 0, 0, -/* 0x09d0 */ 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,153, 1, 0, 72, -/* 0x09e0 */ 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129,120, 43,191,124, -/* 0x09f0 */ 120, 51,218,124, 0, 0,192, 56,120, 83, 88,125,144, 0, 33,249, -/* 0x0a00 */ 152, 0,161,248,120, 59,229,124, 64, 0,159, 59, 4, 0, 35,129, -/* 0x0a10 */ 120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248,128, 0,129,248, -/* 0x0a20 */ 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249,112, 0, 33,249, -/* 0x0a30 */ 112, 0, 97, 56,144, 0,129, 56,249,249,255, 75,160, 0,225,232, -/* 0x0a40 */ 168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56,120,211, 70,127, -/* 0x0a50 */ 120,235,169,127,120,195, 10,127,120,251,227,127,193,251,255, 75, -/* 0x0a60 */ 9, 0,128, 56,120, 27,123,124,120,211, 67,127,120,219,101,127, -/* 0x0a70 */ 97,251,255, 75, 56, 0, 63,161, 64,240,137,127,184, 0,157, 64, -/* 0x0a80 */ 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64, 16, 0,124,232, -/* 0x0a90 */ 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124, -/* 0x0aa0 */ 249,248,255, 75, 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, -/* 0x0ab0 */ 16, 0,252, 64,127, 0, 96, 56,193,248,255, 75, 0, 0, 0, 96, -/* 0x0ac0 */ 120,251,228,127, 0, 4,160, 56,201,248,255, 75, 0, 0, 0, 96, -/* 0x0ad0 */ 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57, 0, 0,128, 56, -/* 0x0ae0 */ 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56, -/* 0x0af0 */ 0, 0, 0, 57,120,235,169,127,120,195, 10,127,120,251,227,127, -/* 0x0b00 */ 29,251,255, 75, 0, 0,189,232, 7, 0,128, 56,120, 27,123,124, -/* 0x0b10 */ 120,211, 67,127,189,250,255, 75,120,203, 35,127,133,248,255, 75, -/* 0x0b20 */ 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59, 32, 0,222,123, -/* 0x0b30 */ 68,255,255, 75,240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72, -/* 0x0b40 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249, -/* 0x0b50 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250, -/* 0x0b60 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250, -/* 0x0b70 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251, -/* 0x0b80 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251, -/* 0x0b90 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233, -/* 0x0ba0 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234, -/* 0x0bb0 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234, -/* 0x0bc0 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235, -/* 0x0bd0 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235, -/* 0x0be0 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78, -/* 0x0bf0 */ 192, 3, 16, 0, 0, 0, 0, 0,240,139, 16, 0, 0, 0, 0, 0, -/* 0x0c00 */ 48, 4, 16, 0, 0, 0, 0, 0,240,139, 16, 0, 0, 0, 0, 0, -/* 0x0c10 */ 208, 5, 16, 0, 0, 0, 0, 0,240,139, 16, 0, 0, 0, 0, 0, -/* 0x0c20 */ 28, 6, 16, 0, 0, 0, 0, 0,240,139, 16, 0, 0, 0, 0, 0, -/* 0x0c30 */ 216, 9, 16, 0, 0, 0, 0, 0,240,139, 16 +/* 0x0200 */ 80, 24, 96,124,120,171,164,126, 0, 0, 0, 56,249,255, 3,248, +/* 0x0210 */ 249,255, 3,248,120, 27,117,124, 80, 24, 84,127,249,255, 4,232, +/* 0x0220 */ 64, 8,164,127,249,255, 3,248,244,255,253, 65,120, 27, 97,124, +/* 0x0230 */ 136, 1, 33, 57, 0, 0, 41,251,113,247, 33,248,120,195, 3,127, +/* 0x0240 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127, +/* 0x0250 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56, +/* 0x0260 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248, +/* 0x0270 */ 120,243,202,127,121, 7, 0, 72,144, 8, 33, 56,120,171,162,126, +/* 0x0280 */ 7, 0, 96,112, 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40, +/* 0x0290 */ 24, 0,130, 64,136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124, +/* 0x02a0 */ 0, 0, 99,232, 20, 2, 99,124, 0, 0,117,248,120, 27,127,124, +/* 0x02b0 */ 0, 0, 0, 57,120,219,103,127, 2, 0,192, 56, 1, 0,160, 56, +/* 0x02c0 */ 208, 0,158,124, 0, 0, 96, 56,161, 0, 0, 72,120,219, 99,127, +/* 0x02d0 */ 217, 0, 0, 72,248,255, 21,232,166, 3, 9,124, 0, 0, 21,232, +/* 0x02e0 */ 128, 1, 1,248,120,235,163,127,120,227,132,127, 91, 0, 0, 56, +/* 0x02f0 */ 166, 3,232,127,176, 0,161,232,184, 0,193,232,192, 0,225,232, +/* 0x0300 */ 200, 0, 1,233,208, 0, 33,233,216, 0, 65,233,224, 0, 97,233, +/* 0x0310 */ 232, 0,129,233,240, 0,161,233,248, 0,193,233, 0, 1,225,233, +/* 0x0320 */ 8, 1, 1,234, 16, 1, 33,234, 24, 1, 65,234, 32, 1, 97,234, +/* 0x0330 */ 40, 1,129,234, 48, 1,161,234, 56, 1,193,234, 64, 1,225,234, +/* 0x0340 */ 72, 1, 1,235, 80, 1, 33,235, 88, 1, 65,235, 96, 1, 97,235, +/* 0x0350 */ 104, 1,129,235,112, 1,161,235,120, 1,193,235,128, 1,225,235, +/* 0x0360 */ 144, 1, 33, 56, 32, 4,128, 78, 32, 0,231,120, 90, 0, 0, 56, +/* 0x0370 */ 2, 0, 0, 68, 8, 0,227, 64,255,255, 96, 56, 32, 0,128, 78, +/* 0x0380 */ 1, 0, 0, 56, 8, 0, 0, 72, 45, 0, 0, 56, 8, 0, 0, 72, +/* 0x0390 */ 85, 0, 0, 56, 8, 0, 0, 72, 3, 0, 0, 56, 8, 0, 0, 72, +/* 0x03a0 */ 5, 0, 0, 56, 8, 0, 0, 72, 6, 0, 0, 56, 8, 0, 0, 72, +/* 0x03b0 */ 125, 0, 0, 56, 8, 0, 0, 72, 91, 0, 0, 56,180,255,255, 75, +/* 0x03c0 */ 8, 0,128,124, 32, 0,128, 78, 0, 0, 67,233, 8, 0, 3,233, +/* 0x03d0 */ 1, 0,229, 56, 0, 0, 32, 57,166, 3,233,124, 64, 40,170,127, +/* 0x03e0 */ 28, 0,252, 64,166, 2, 8,124,127, 0, 96, 56, 16, 0, 1,248, +/* 0x03f0 */ 145,255, 33,248,141,255,255, 75, 0, 0, 0, 96, 20, 0, 64, 66, +/* 0x0400 */ 174, 72, 72,125,174, 73, 68,125, 1, 0, 41, 57,240,255,255, 75, +/* 0x0410 */ 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233, +/* 0x0420 */ 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0, +/* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124, +/* 0x0440 */ 8, 0,129,145, 85, 7, 0, 72, 81,255, 33,248,120, 27,126,124, +/* 0x0450 */ 120, 35,159,124,120, 43,189,124,120, 51,220,124, 0, 0, 38, 46, +/* 0x0460 */ 0, 0, 63,233, 0, 0,169, 47, 84, 1,158, 65,120,243,195,127, +/* 0x0470 */ 112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129, +/* 0x0480 */ 116, 0, 33,129, 0, 0,170, 47, 32, 0,158, 64, 88, 33, 37,109, +/* 0x0490 */ 85, 80,133, 47, 28, 0,158, 64, 0, 0, 62,233, 0, 0,169, 47, +/* 0x04a0 */ 28, 1,254, 65, 12, 0, 0, 72, 33, 0, 41,121, 16, 0,226, 64, +/* 0x04b0 */ 127, 0, 96, 56,205,254,255, 75, 0, 0, 0, 96, 64, 80, 9,127, +/* 0x04c0 */ 240,255,217, 65, 0, 0, 31,233, 64, 64,170,127,228,255,221, 65, +/* 0x04d0 */ 8, 0,191,232,184, 0,152, 64,120, 75, 36,125, 0, 0, 61,233, +/* 0x04e0 */ 8, 0,126,232,128, 0,193, 56,128, 0, 65,249, 40, 0, 65,248, +/* 0x04f0 */ 120, 0,225,136, 16, 0,125,233,166, 3, 41,125, 8, 0, 93,232, +/* 0x0500 */ 33, 4,128, 78, 40, 0, 65,232, 0, 0,163, 47,164,255,222, 64, +/* 0x0510 */ 128, 0,129,232,112, 0, 33,129, 64, 72,164,127,148,255,222, 64, +/* 0x0520 */ 121, 0,193,136, 0, 0,166, 47, 68, 0,158, 65, 64, 0,146, 65, +/* 0x0530 */ 0, 2,164, 43, 16, 0,157, 65, 0, 0, 63,233, 0, 32,169,127, +/* 0x0540 */ 44, 0,158, 64, 8, 0,127,232,122, 0,161,136, 32, 0,132,120, +/* 0x0550 */ 40, 0, 65,248, 0, 0, 60,233, 16, 0,124,233,166, 3, 41,125, +/* 0x0560 */ 8, 0, 92,232, 33, 4,128, 78, 40, 0, 65,232,116, 0, 1,129, +/* 0x0570 */ 8, 0, 94,233, 0, 0, 62,233, 20, 66, 74,125, 80, 72, 40,125, +/* 0x0580 */ 8, 0, 94,249, 0, 0, 62,249, 20, 0, 0, 72,120, 43,164,124, +/* 0x0590 */ 120,243,195,127,120, 75, 37,125, 49,254,255, 75,112, 0, 1,129, +/* 0x05a0 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125, +/* 0x05b0 */ 8, 0, 95,249, 0, 0, 63,249,168,254,255, 75,176, 0, 33, 56, +/* 0x05c0 */ 8, 0,129,129, 32,129,144,125, 32, 6, 0, 72, 0, 0, 0, 0, +/* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 0, 0, 35, 44, 32, 0,130, 77, +/* 0x05e0 */ 225, 7,105,120, 32, 0,130, 76, 0, 0, 36, 47, 0, 0, 67,233, +/* 0x05f0 */ 64, 32,170,127, 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, +/* 0x0600 */ 32, 0,128, 78, 1, 0,170, 43, 8, 0,158, 64,236,255,154, 64, +/* 0x0610 */ 16, 0, 99, 56,216,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0620 */ 0, 0, 0, 0, 38, 0,128,125,166, 2, 8,124, 8, 0,129,145, +/* 0x0630 */ 49, 5, 0, 72,225,254, 33,248,120, 67, 15,125, 16, 0, 3,161, +/* 0x0640 */ 120, 75, 50,125, 32, 0, 35,233,120, 83, 90,125,120, 27,125,124, +/* 0x0650 */ 120, 35,147,124, 3, 0,136, 47, 96, 1,161,248,120, 51,216,124, +/* 0x0660 */ 120, 59,240,124, 20, 74, 35,126, 16, 0, 64, 57, 8, 0,158, 64, +/* 0x0670 */ 0, 0, 64, 57, 56, 0, 29,161, 0, 0,114,232, 34, 0, 74, 57, +/* 0x0680 */ 120,139, 39,126, 32, 0, 70,121, 0, 0,128, 56, 1, 0, 8, 57, +/* 0x0690 */ 255,255,224, 59,166, 3, 9,125, 60, 0, 64, 66, 0, 0, 7,129, +/* 0x06a0 */ 1, 0,136, 47, 40, 0,158, 64, 16, 0,167,232, 64, 40,191,127, +/* 0x06b0 */ 8, 0,157, 64,120, 43,191,124, 40, 0, 7,233, 20, 66, 5,125, +/* 0x06c0 */ 64, 64,164,127, 8, 0,156, 64,120, 67, 4,125, 56, 0,231, 56, +/* 0x06d0 */ 200,255,255, 75,248,208, 85,127, 56,208,255,127, 20, 34,149,124, +/* 0x06e0 */ 227,231, 73,121, 80, 32,159,124, 56,208,132,124, 28, 0,130, 64, +/* 0x06f0 */ 0, 0,191, 47, 28, 0,158, 64, 0, 0,163, 47, 24, 0,158, 65, +/* 0x0700 */ 50, 0,192, 56, 16, 0, 0, 72,120,251,227,127, 8, 0, 0, 72, +/* 0x0710 */ 0, 0, 96, 56, 0, 0,160, 56,180, 7,198,124,255,255,224, 56, +/* 0x0720 */ 0, 0, 0, 57, 69,252,255, 75, 0, 0, 0, 96,248,208, 90,127, +/* 0x0730 */ 1, 0,224, 62,136, 0, 65,147,228,131,247,122, 80, 24,255,127, +/* 0x0740 */ 0, 0, 32, 59,120, 0, 63, 57, 0, 0, 51, 46,128, 0, 33,249, +/* 0x0750 */ 1, 0,247, 98,164, 7, 14,123, 56, 0, 93,161, 0,200,138,127, +/* 0x0760 */ 72, 2,157, 64, 0, 0, 81,129, 36, 0,146, 65, 6, 0,138, 47, +/* 0x0770 */ 28, 0,158, 64, 16, 0,177,232,120,195, 3,127, 3, 0,128, 56, +/* 0x0780 */ 20, 42,191,124, 85,254,255, 75, 16, 2, 0, 72, 1, 0,138, 47, +/* 0x0790 */ 8, 2,158, 64, 76, 0,146, 65, 8, 0, 81,233, 0, 0,170, 47, +/* 0x07a0 */ 64, 0,158, 64, 32, 0, 93,233, 16, 0,177,232,120,195, 3,127, +/* 0x07b0 */ 3, 0,128, 56, 20, 82, 95,125, 20, 42,170,124, 29,254,255, 75, +/* 0x07c0 */ 56, 0,189,160,120,195, 3,127, 5, 0,128, 56, 13,254,255, 75, +/* 0x07d0 */ 54, 0,189,160,120,195, 3,127, 4, 0,128, 56,253,253,255, 75, +/* 0x07e0 */ 4, 0,113,131, 16, 0,209,235, 81,115, 32, 61, 64, 98, 41, 97, +/* 0x07f0 */ 32, 0,145,235, 40, 0,209,234,250, 22,123, 87, 20,242,223,127, +/* 0x0800 */ 112, 0,129,251, 48,220, 59,125, 56,168,202,127,120, 0,193,251, +/* 0x0810 */ 20,178,222,126, 20,226,138,127, 80,240,202,127,126, 7,116, 87, +/* 0x0820 */ 12, 0,146, 64, 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56, +/* 0x0830 */ 120,163,165,124,180, 7,165,124, 16, 0,146, 64, 96, 1,225,232, +/* 0x0840 */ 18, 0,192, 56, 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, +/* 0x0850 */ 8, 0, 17,233,120,243,195,127,120,227,132,127, 80, 64, 10,125, +/* 0x0860 */ 9,251,255, 75, 0, 0, 0, 96, 0, 24,190,127, 16, 0,254, 65, +/* 0x0870 */ 127, 0, 96, 56, 13,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65, +/* 0x0880 */ 120,155, 99,126,112, 0,129, 56,120,131, 5,126,120,123,230,125, +/* 0x0890 */ 169,251,255, 75,208, 0, 92,125,227,255,105,123, 56,168, 90,125, +/* 0x08a0 */ 12, 0,130, 64, 48, 0,146, 64,184, 0, 0, 72, 0, 0,186, 47, +/* 0x08b0 */ 244,255,158, 65,166, 3, 73,127, 20,226,254,124, 0, 0, 0, 57, +/* 0x08c0 */ 0, 0, 32, 57,174, 65, 39,125, 1, 0, 8, 57,244,255, 0, 66, +/* 0x08d0 */ 212,255,255, 75, 0, 0, 17,233,192, 7, 8,121, 0,184,168,127, +/* 0x08e0 */ 100, 0,158, 64, 40, 0,177,232, 32, 0, 17,233, 16, 0,241,232, +/* 0x08f0 */ 0, 64,165,127,208, 0,158, 64, 20, 58,165,124,136, 0, 33,129, +/* 0x0900 */ 20,250,165,124,208, 0, 5,125, 56, 72, 8,125, 11, 0,136, 43, +/* 0x0910 */ 180, 0,157, 64, 0, 68, 32, 61,120,115,195,125, 2, 0, 41, 97, +/* 0x0920 */ 0, 0,128, 56, 0, 0, 37,145,236,127, 32, 61,120,251, 41, 97, +/* 0x0930 */ 4, 0, 37,145,128, 78, 32, 61, 32, 0, 41, 97, 8, 0, 37,145, +/* 0x0940 */ 153,252,255, 75,120,243,195,127,120,227,132,127,180, 7,133,126, +/* 0x0950 */ 97,250,255, 75, 0, 0, 0, 96, 0, 0,163, 47, 20,255,222, 64, +/* 0x0960 */ 20,226,154,127, 20,226,222,127, 64,176,190,127, 44, 0,156, 64, +/* 0x0970 */ 120,243,195,127, 80,176,158,124,180, 7,133,126, 50, 0,192, 56, +/* 0x0980 */ 255,255,224, 56, 0, 0, 0, 57,225,249,255, 75, 0, 0, 0, 96, +/* 0x0990 */ 0, 24,190,127,220,254,222, 64, 1, 0, 57, 59, 56, 0, 49, 58, +/* 0x09a0 */ 180, 7, 57,127,180,253,255, 75, 0, 0,242,251, 32, 1, 33, 56, +/* 0x09b0 */ 8, 0,129,129, 32,129,144,125, 24, 0,125,232, 20, 26,127,124, +/* 0x09c0 */ 240, 1, 0, 72,128, 0, 33,233, 8, 0, 17,233, 20, 58,169,124, +/* 0x09d0 */ 0, 0,168, 47, 24, 0,165, 56, 60,255,158, 65,104,255,255, 75, +/* 0x09e0 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124, +/* 0x09f0 */ 153, 1, 0, 72, 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129, +/* 0x0a00 */ 120, 43,191,124,120, 51,218,124, 0, 0,192, 56,120, 83, 88,125, +/* 0x0a10 */ 144, 0, 33,249,152, 0,161,248,120, 59,229,124, 64, 0,159, 59, +/* 0x0a20 */ 4, 0, 35,129,120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248, +/* 0x0a30 */ 128, 0,129,248, 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249, +/* 0x0a40 */ 112, 0, 33,249,112, 0, 97, 56,144, 0,129, 56,237,249,255, 75, +/* 0x0a50 */ 160, 0,225,232,168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56, +/* 0x0a60 */ 120,211, 70,127,120,235,169,127,120,195, 10,127,120,251,227,127, +/* 0x0a70 */ 181,251,255, 75, 9, 0,128, 56,120, 27,123,124,120,211, 67,127, +/* 0x0a80 */ 120,219,101,127, 85,251,255, 75, 56, 0, 63,161, 64,240,137,127, +/* 0x0a90 */ 184, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64, +/* 0x0aa0 */ 16, 0,124,232, 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56, +/* 0x0ab0 */ 20, 74, 99,124,237,248,255, 75, 0, 0, 0, 96, 0, 0,131, 47, +/* 0x0ac0 */ 120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56,181,248,255, 75, +/* 0x0ad0 */ 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56,189,248,255, 75, +/* 0x0ae0 */ 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57, +/* 0x0af0 */ 0, 0,128, 56, 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56, +/* 0x0b00 */ 0, 0,224, 56, 0, 0, 0, 57,120,235,169,127,120,195, 10,127, +/* 0x0b10 */ 120,251,227,127, 17,251,255, 75, 0, 0,189,232, 7, 0,128, 56, +/* 0x0b20 */ 120, 27,123,124,120,211, 67,127,177,250,255, 75,120,203, 35,127, +/* 0x0b30 */ 121,248,255, 75, 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59, +/* 0x0b40 */ 32, 0,222,123, 68,255,255, 75,240, 0, 33, 56,120,219, 99,127, +/* 0x0b50 */ 136, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0, +/* 0x0b60 */ 112,255,193,249,120,255,225,249,128,255, 1,250,136,255, 33,250, +/* 0x0b70 */ 144,255, 65,250,152,255, 97,250,160,255,129,250,168,255,161,250, +/* 0x0b80 */ 176,255,193,250,184,255,225,250,192,255, 1,251,200,255, 33,251, +/* 0x0b90 */ 208,255, 65,251,216,255, 97,251,224,255,129,251,232,255,161,251, +/* 0x0ba0 */ 240,255,193,251,248,255,225,251, 16, 0, 1,248, 32, 0,128, 78, +/* 0x0bb0 */ 112,255,193,233,120,255,225,233,128,255, 1,234,136,255, 33,234, +/* 0x0bc0 */ 144,255, 65,234,152,255, 97,234,160,255,129,234,168,255,161,234, +/* 0x0bd0 */ 176,255,193,234,184,255,225,234,192,255, 1,235,200,255, 33,235, +/* 0x0be0 */ 208,255, 65,235,216,255, 97,235,224,255,129,235, 16, 0, 1,232, +/* 0x0bf0 */ 232,255,161,235,166, 3, 8,124,240,255,193,235,248,255,225,235, +/* 0x0c00 */ 32, 0,128, 78, 0, 0, 0, 0,200, 3, 16, 0, 0, 0, 0, 0, +/* 0x0c10 */ 8,140, 16, 0, 0, 0, 0, 0, 56, 4, 16, 0, 0, 0, 0, 0, +/* 0x0c20 */ 8,140, 16, 0, 0, 0, 0, 0,216, 5, 16, 0, 0, 0, 0, 0, +/* 0x0c30 */ 8,140, 16, 0, 0, 0, 0, 0, 36, 6, 16, 0, 0, 0, 0, 0, +/* 0x0c40 */ 8,140, 16, 0, 0, 0, 0, 0,236, 9, 16, 0, 0, 0, 0, 0, +/* 0x0c50 */ 8,140, 16 }; diff --git a/src/stub/src/amd64-linux.elf-main.c b/src/stub/src/amd64-linux.elf-main.c index 006ca4e7..20cd3584 100644 --- a/src/stub/src/amd64-linux.elf-main.c +++ b/src/stub/src/amd64-linux.elf-main.c @@ -234,7 +234,7 @@ make_hatch_x86_64( ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss && (1*4)<=(frag_mask & -(int)(size_t)hatch) ) ) // space left on page // Try Elf64_Ehdr.e_ident[12..15] . warning: 'const' cast away - || ( (hatch = (void *)(&((Elf64_Ehdr *)phdr->p_vaddr + reloc)->e_ident[12])), + || ( (hatch = (void *)(&((Elf64_Ehdr *)(phdr->p_vaddr + reloc))->e_ident[12])), (phdr->p_offset==0) ) ) { @@ -247,6 +247,12 @@ make_hatch_x86_64( return hatch; } #elif defined(__powerpc64__) //}{ +static unsigned +ORRX(unsigned ra, unsigned rs, unsigned rb) // or ra,rs,rb +{ + return (31<<26) | ((037&(rs))<<21) | ((037&(ra))<<16) | ((037&(rb))<<11) | (444<<1) | 0; +} + static void * make_hatch_ppc64( Elf64_Phdr const *const phdr, @@ -260,14 +266,16 @@ make_hatch_ppc64( // Try page fragmentation just beyond .text . if ( ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)), ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss - && (2*4)<=(frag_mask & -(int)(size_t)hatch) ) ) // space left on page - // Try Elf64_Ehdr.e_ident[8..15] . warning: 'const' cast away - || ( (hatch = (void *)(&((Elf64_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])), + && (3*4)<=(frag_mask & -(int)(size_t)hatch) ) ) // space left on page + // Try Elf64_Phdr[1].p_paddr (2 instr) and .p_filesz (1 instr) + || ( (hatch = (void *)(&((Elf64_Phdr *)(1+ // Ehdr and Phdr are contiguous + ((Elf64_Ehdr *)(phdr->p_vaddr + reloc))))[1].p_paddr)), (phdr->p_offset==0) ) ) { hatch[0]= 0x44000002; // sc - hatch[1]= 0x4e800020; // blr + hatch[1]= ORRX(12,31,31); // movr r12,r31 ==> or r12,r31,r31 + hatch[2]= 0x4e800020; // blr } else { hatch = 0; @@ -299,7 +307,7 @@ make_hatch_arm64( ( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss && (2*4)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page // Try Elf64_Ehdr.e_ident[8..15] . warning: 'const' cast away - || ( (hatch = (void *)(&((Elf64_Ehdr *)phdr->p_vaddr + reloc)->e_ident[8])), + || ( (hatch = (void *)(&((Elf64_Ehdr *)(phdr->p_vaddr + reloc))->e_ident[8])), (phdr->p_offset==0) ) ) { diff --git a/src/stub/src/powerpc64le-linux.elf-fold.S b/src/stub/src/powerpc64le-linux.elf-fold.S index 31b7108a..256256bd 100644 --- a/src/stub/src/powerpc64le-linux.elf-fold.S +++ b/src/stub/src/powerpc64le-linux.elf-fold.S @@ -165,8 +165,10 @@ L90: clrldi r0,r0,-4+ 8*NBPW // keep bottom 4 bits sub a0,a0,r0 -// slide the rest of the stack up +// slide the rest of the stack up; leave room for fake TOC of .e_entry movr a1,av_hi + li r0,0; stdu r0,-NBPW(a0); stdu r0,-NBPW(a0) + movr av_hi,a0 // remember location sub r_auxv,a0,av_len 0: ldu r0,-NBPW(a1); cmpld cr7,a1,sp @@ -202,6 +204,7 @@ r_reloc= 32 - 1 # used slot in register save area la sp,SZ_FRAME+OVERHEAD(sp) // FR_01 deallocate this frame #if USE_TOC //{ // Sometimes the "entry TOC" is not a TOC, particularly with musl. + movr r2,av_hi // default fake TOC andi. r0,a0,7; bne cr0,noTOC // align(TOC) < 8; [heuristic] lwz r0,0(a0); cmplwi r0,0; bne noTOC // 4GiB <= .func; an instruction? @@ -209,6 +212,7 @@ r_reloc= 32 - 1 # used slot in register save area ld r2,NBPW(r3); add r2,r2,r0 // toc ld r3, 0(r3); add r3,r3,r0 // .func NOTE: r3 === a0 noTOC: + std r3,0(av_hi) // .func for .e_entry #endif //} mr r_exp,a0 // save &entry (.entry when BIG_ENDIAN) @@ -229,12 +233,10 @@ a_type= 0 a_val= NBPW sz_auxv= 2*NBPW -// find the escape hatch in auxv[{AT_NULL}].a_val - mr a0,r_auxv -0: - ld r0,a_type(a0); ld a1,a_val(a0); addi a0,a0,sz_auxv - cmpldi cr7,r0,AT_NULL; bne+ cr7,0b - mtctr a1 // escape hatch + ld r0,-NBPW(av_hi) // &hatch + mtctr r0 + ld r0,0(av_hi) // entry address + std r0,SZ_FRAME + (-1+ 31)*NBPW(sp) // hatch: "movr r12,r31" for musl 1.1.16 mr a0,r_ADRU mr a1,r_LENU @@ -276,7 +278,6 @@ sz_auxv= 2*NBPW ld 31,SZ_FRAME + (-1+ 31)*NBPW(sp) la sp,SZ_FRAME + 32 *NBPW(sp) // FR_00 deallocate outer frame - mflr r12 // r12 must contain .e_entry (musl 1.1.6 convention 2017-04-25) bctr // goto escape hatch SYS_exit= 1 diff --git a/src/stub/tmp/amd64-linux.elf-fold.map b/src/stub/tmp/amd64-linux.elf-fold.map index 639ac136..dde28d9a 100644 --- a/src/stub/tmp/amd64-linux.elf-fold.map +++ b/src/stub/tmp/amd64-linux.elf-fold.map @@ -8,7 +8,7 @@ Linker script and memory map 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x7b0 +.text 0x00000000001000bc 0x7a8 *(.text) .text 0x00000000001000bc 0x186 tmp/amd64-linux.elf-fold.o 0x0000000000100232 munmap @@ -21,20 +21,19 @@ Linker script and memory map 0x0000000000100236 mprotect 0x000000000010022a close *fill* 0x0000000000100242 0x2 00 - .text 0x0000000000100244 0x627 tmp/amd64-linux.elf-main.o - 0x0000000000100723 upx_main + .text 0x0000000000100244 0x620 tmp/amd64-linux.elf-main.o + 0x000000000010071c upx_main *(.data) - *fill* 0x000000000010086b 0x1 00 - .data 0x000000000010086c 0x0 tmp/amd64-linux.elf-fold.o - .data 0x000000000010086c 0x0 tmp/amd64-linux.elf-main.o + .data 0x0000000000100864 0x0 tmp/amd64-linux.elf-fold.o + .data 0x0000000000100864 0x0 tmp/amd64-linux.elf-main.o .data -.bss 0x000000000010086c 0x0 - .bss 0x000000000010086c 0x0 tmp/amd64-linux.elf-fold.o - .bss 0x000000000010086c 0x0 tmp/amd64-linux.elf-main.o +.bss 0x0000000000100864 0x0 + .bss 0x0000000000100864 0x0 tmp/amd64-linux.elf-fold.o + .bss 0x0000000000100864 0x0 tmp/amd64-linux.elf-main.o -.rela.dyn 0x0000000000100870 0x0 +.rela.dyn 0x0000000000100868 0x0 .rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-main.o diff --git a/src/stub/tmp/arm64-linux.elf-fold.map b/src/stub/tmp/arm64-linux.elf-fold.map index ab03fb9f..cf7d2c50 100644 --- a/src/stub/tmp/arm64-linux.elf-fold.map +++ b/src/stub/tmp/arm64-linux.elf-fold.map @@ -8,7 +8,7 @@ Linker script and memory map 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x934 +.text 0x00000000001000bc 0x920 *(.text) .text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o 0x0000000000100228 my_bkpt @@ -26,26 +26,26 @@ Linker script and memory map 0x00000000001002bc readlink 0x00000000001002c4 open 0x00000000001002e0 __clear_cache - .text 0x00000000001002f4 0x6fc tmp/arm64-linux.elf-main.o - 0x0000000000100888 upx_main + .text 0x00000000001002f4 0x6e8 tmp/arm64-linux.elf-main.o + 0x0000000000100874 upx_main *(.data) - .data 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o - .data 0x00000000001009f0 0x0 tmp/arm64-linux.elf-main.o + .data 0x00000000001009dc 0x0 tmp/arm64-linux.elf-fold.o + .data 0x00000000001009dc 0x0 tmp/arm64-linux.elf-main.o -.iplt 0x00000000001009f0 0x0 - .iplt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o +.iplt 0x00000000001009dc 0x0 + .iplt 0x00000000001009dc 0x0 tmp/arm64-linux.elf-fold.o -.rela.dyn 0x00000000001009f0 0x0 - .rela.iplt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o +.rela.dyn 0x00000000001009e0 0x0 + .rela.iplt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o .data LOAD tmp/arm64-linux.elf-fold.o LOAD tmp/arm64-linux.elf-main.o OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) -.igot.plt 0x00000000001009f0 0x0 - .igot.plt 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o +.igot.plt 0x00000000001009e0 0x0 + .igot.plt 0x00000000001009e0 0x0 tmp/arm64-linux.elf-fold.o -.bss 0x00000000001009f0 0x0 - .bss 0x00000000001009f0 0x0 tmp/arm64-linux.elf-fold.o - .bss 0x00000000001009f0 0x0 tmp/arm64-linux.elf-main.o +.bss 0x00000000001009dc 0x0 + .bss 0x00000000001009dc 0x0 tmp/arm64-linux.elf-fold.o + .bss 0x00000000001009dc 0x0 tmp/arm64-linux.elf-main.o diff --git a/src/stub/tmp/powerpc64-linux.elf-fold.map b/src/stub/tmp/powerpc64-linux.elf-fold.map index b187d9c4..fc837b20 100644 --- a/src/stub/tmp/powerpc64-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64-linux.elf-fold.map @@ -9,61 +9,61 @@ Linker script and memory map TARGET(elf64-powerpc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0xa94 +.text 0x00000000001000bc 0xaa8 *(.text) - .text 0x00000000001000bc 0x304 tmp/powerpc64-linux.elf-fold.o + .text 0x00000000001000bc 0x30c tmp/powerpc64-linux.elf-fold.o 0x00000000001000bc get_page_mask - 0x0000000000100360 mmap - 0x0000000000100378 exit - 0x0000000000100380 brk - 0x0000000000100388 readlink - 0x0000000000100390 read - 0x0000000000100398 open - 0x00000000001003a0 close - 0x00000000001003a8 mprotect - 0x00000000001003b0 munmap - 0x00000000001003b8 my_bkpt - .text 0x00000000001003c0 0x790 tmp/powerpc64-linux.elf-main.o + 0x0000000000100368 mmap + 0x0000000000100380 exit + 0x0000000000100388 brk + 0x0000000000100390 readlink + 0x0000000000100398 read + 0x00000000001003a0 open + 0x00000000001003a8 close + 0x00000000001003b0 mprotect + 0x00000000001003b8 munmap + 0x00000000001003c0 my_bkpt + .text 0x00000000001003c8 0x79c tmp/powerpc64-linux.elf-main.o *(.data) - .data 0x0000000000100b50 0x0 tmp/powerpc64-linux.elf-fold.o - .data 0x0000000000100b50 0x0 tmp/powerpc64-linux.elf-main.o + .data 0x0000000000100b64 0x0 tmp/powerpc64-linux.elf-fold.o + .data 0x0000000000100b64 0x0 tmp/powerpc64-linux.elf-main.o -.sfpr 0x0000000000100b50 0xa4 - .sfpr 0x0000000000100b50 0xa4 linker stubs - 0x0000000000100b50 _savegpr0_14 - 0x0000000000100b78 _savegpr0_24 - 0x0000000000100b88 _savegpr0_28 - 0x0000000000100ba0 _restgpr0_14 - 0x0000000000100bc8 _restgpr0_24 - 0x0000000000100bd8 _restgpr0_28 +.sfpr 0x0000000000100b64 0xa4 + .sfpr 0x0000000000100b64 0xa4 linker stubs + 0x0000000000100b64 _savegpr0_14 + 0x0000000000100b8c _savegpr0_24 + 0x0000000000100b9c _savegpr0_28 + 0x0000000000100bb4 _restgpr0_14 + 0x0000000000100bdc _restgpr0_24 + 0x0000000000100bec _restgpr0_28 -.glink 0x0000000000100bf8 0x0 - .glink 0x0000000000100bf8 0x0 linker stubs +.glink 0x0000000000100c08 0x0 + .glink 0x0000000000100c08 0x0 linker stubs -.eh_frame 0x0000000000100bf4 0x0 - .eh_frame 0x0000000000100bf4 0x0 linker stubs +.eh_frame 0x0000000000100c08 0x0 + .eh_frame 0x0000000000100c08 0x0 linker stubs -.rela.dyn 0x0000000000100bf8 0x0 - .rela.iplt 0x0000000000100bf8 0x0 linker stubs +.rela.dyn 0x0000000000100c08 0x0 + .rela.iplt 0x0000000000100c08 0x0 linker stubs .data LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-main.o OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) -.branch_lt 0x0000000000100bf8 0x0 - .branch_lt 0x0000000000100bf8 0x0 linker stubs +.branch_lt 0x0000000000100c08 0x0 + .branch_lt 0x0000000000100c08 0x0 linker stubs -.toc 0x0000000000100bf8 0x0 - .toc 0x0000000000100bf8 0x0 tmp/powerpc64-linux.elf-main.o +.toc 0x0000000000100c08 0x0 + .toc 0x0000000000100c08 0x0 tmp/powerpc64-linux.elf-main.o -.opd 0x0000000000100bf8 0x58 - .opd 0x0000000000100bf8 0x58 tmp/powerpc64-linux.elf-main.o - 0x0000000000100c38 upx_main +.opd 0x0000000000100c08 0x58 + .opd 0x0000000000100c08 0x58 tmp/powerpc64-linux.elf-main.o + 0x0000000000100c48 upx_main -.iplt 0x0000000000100c50 0x0 - .iplt 0x0000000000100c50 0x0 linker stubs +.iplt 0x0000000000100c60 0x0 + .iplt 0x0000000000100c60 0x0 linker stubs -.bss 0x0000000000100c50 0x0 - .bss 0x0000000000100c50 0x0 tmp/powerpc64-linux.elf-fold.o - .bss 0x0000000000100c50 0x0 tmp/powerpc64-linux.elf-main.o +.bss 0x0000000000100c60 0x0 + .bss 0x0000000000100c60 0x0 tmp/powerpc64-linux.elf-fold.o + .bss 0x0000000000100c60 0x0 tmp/powerpc64-linux.elf-main.o diff --git a/src/stub/tmp/powerpc64le-linux.elf-fold.map b/src/stub/tmp/powerpc64le-linux.elf-fold.map index 9f71da0d..ee336d44 100644 --- a/src/stub/tmp/powerpc64le-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64le-linux.elf-fold.map @@ -9,61 +9,61 @@ Linker script and memory map TARGET(elf64-powerpcle) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0xa90 +.text 0x00000000001000bc 0xaa4 *(.text) - .text 0x00000000001000bc 0x304 tmp/powerpc64le-linux.elf-fold.o + .text 0x00000000001000bc 0x30c tmp/powerpc64le-linux.elf-fold.o 0x00000000001000bc get_page_mask - 0x0000000000100360 mmap - 0x0000000000100378 exit - 0x0000000000100380 brk - 0x0000000000100388 readlink - 0x0000000000100390 read - 0x0000000000100398 open - 0x00000000001003a0 close - 0x00000000001003a8 mprotect - 0x00000000001003b0 munmap - 0x00000000001003b8 my_bkpt - .text 0x00000000001003c0 0x78c tmp/powerpc64le-linux.elf-main.o + 0x0000000000100368 mmap + 0x0000000000100380 exit + 0x0000000000100388 brk + 0x0000000000100390 readlink + 0x0000000000100398 read + 0x00000000001003a0 open + 0x00000000001003a8 close + 0x00000000001003b0 mprotect + 0x00000000001003b8 munmap + 0x00000000001003c0 my_bkpt + .text 0x00000000001003c8 0x798 tmp/powerpc64le-linux.elf-main.o *(.data) - .data 0x0000000000100b4c 0x0 tmp/powerpc64le-linux.elf-fold.o - .data 0x0000000000100b4c 0x0 tmp/powerpc64le-linux.elf-main.o + .data 0x0000000000100b60 0x0 tmp/powerpc64le-linux.elf-fold.o + .data 0x0000000000100b60 0x0 tmp/powerpc64le-linux.elf-main.o -.sfpr 0x0000000000100b4c 0xa4 - .sfpr 0x0000000000100b4c 0xa4 linker stubs - 0x0000000000100b4c _savegpr0_14 - 0x0000000000100b74 _savegpr0_24 - 0x0000000000100b84 _savegpr0_28 - 0x0000000000100b9c _restgpr0_14 - 0x0000000000100bc4 _restgpr0_24 - 0x0000000000100bd4 _restgpr0_28 +.sfpr 0x0000000000100b60 0xa4 + .sfpr 0x0000000000100b60 0xa4 linker stubs + 0x0000000000100b60 _savegpr0_14 + 0x0000000000100b88 _savegpr0_24 + 0x0000000000100b98 _savegpr0_28 + 0x0000000000100bb0 _restgpr0_14 + 0x0000000000100bd8 _restgpr0_24 + 0x0000000000100be8 _restgpr0_28 -.glink 0x0000000000100bf0 0x0 - .glink 0x0000000000100bf0 0x0 linker stubs +.glink 0x0000000000100c08 0x0 + .glink 0x0000000000100c08 0x0 linker stubs -.eh_frame 0x0000000000100bf0 0x0 - .eh_frame 0x0000000000100bf0 0x0 linker stubs +.eh_frame 0x0000000000100c04 0x0 + .eh_frame 0x0000000000100c04 0x0 linker stubs -.rela.dyn 0x0000000000100bf0 0x0 - .rela.iplt 0x0000000000100bf0 0x0 linker stubs +.rela.dyn 0x0000000000100c08 0x0 + .rela.iplt 0x0000000000100c08 0x0 linker stubs .data LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-main.o OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) -.branch_lt 0x0000000000100bf0 0x0 - .branch_lt 0x0000000000100bf0 0x0 linker stubs +.branch_lt 0x0000000000100c08 0x0 + .branch_lt 0x0000000000100c08 0x0 linker stubs -.toc 0x0000000000100bf0 0x0 - .toc 0x0000000000100bf0 0x0 tmp/powerpc64le-linux.elf-main.o +.toc 0x0000000000100c08 0x0 + .toc 0x0000000000100c08 0x0 tmp/powerpc64le-linux.elf-main.o -.opd 0x0000000000100bf0 0x58 - .opd 0x0000000000100bf0 0x58 tmp/powerpc64le-linux.elf-main.o - 0x0000000000100c30 upx_main +.opd 0x0000000000100c08 0x58 + .opd 0x0000000000100c08 0x58 tmp/powerpc64le-linux.elf-main.o + 0x0000000000100c48 upx_main -.iplt 0x0000000000100c48 0x0 - .iplt 0x0000000000100c48 0x0 linker stubs +.iplt 0x0000000000100c60 0x0 + .iplt 0x0000000000100c60 0x0 linker stubs -.bss 0x0000000000100c48 0x0 - .bss 0x0000000000100c48 0x0 tmp/powerpc64le-linux.elf-fold.o - .bss 0x0000000000100c48 0x0 tmp/powerpc64le-linux.elf-main.o +.bss 0x0000000000100c60 0x0 + .bss 0x0000000000100c60 0x0 tmp/powerpc64le-linux.elf-fold.o + .bss 0x0000000000100c60 0x0 tmp/powerpc64le-linux.elf-main.o