From 36c0928483e4fc140f272bbc8d5dde4bec524bd1 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 7 Jun 2013 07:08:03 -0700 Subject: [PATCH] ARM __clear_cache() on escape hatch; http://sourceforge.net/p/upx/bugs/214/ --- src/stub/arm-linux.elf-fold.h | 269 ++++++++++++------------- src/stub/armeb-linux.elf-fold.h | 269 ++++++++++++------------- src/stub/armel-eabi-linux.elf-fold.h | 282 ++++++++++++++------------- src/stub/src/arm-linux.elf-entry.S | 5 +- src/stub/src/arm-linux.elf-fold.S | 77 +++++++- src/stub/src/i386-linux.elf-main.c | 8 +- 6 files changed, 492 insertions(+), 418 deletions(-) diff --git a/src/stub/arm-linux.elf-fold.h b/src/stub/arm-linux.elf-fold.h index bee49037..9fabde55 100644 --- a/src/stub/arm-linux.elf-fold.h +++ b/src/stub/arm-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm-linux.elf-fold.h - created from arm-linux.elf-fold.bin, 2216 (0x8a8) bytes + created from arm-linux.elf-fold.bin, 2236 (0x8bc) bytes This file is part of the UPX executable compressor. @@ -31,148 +31,149 @@ */ -#define STUB_ARM_LINUX_ELF_FOLD_SIZE 2216 -#define STUB_ARM_LINUX_ELF_FOLD_ADLER32 0xeba4963b -#define STUB_ARM_LINUX_ELF_FOLD_CRC32 0xaa23006f +#define STUB_ARM_LINUX_ELF_FOLD_SIZE 2236 +#define STUB_ARM_LINUX_ELF_FOLD_ADLER32 0x8f009e0a +#define STUB_ARM_LINUX_ELF_FOLD_CRC32 0x8f18d99e -unsigned char stub_arm_linux_elf_fold[2216] = { +unsigned char stub_arm_linux_elf_fold[2236] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, -/* 0x0040 */ 0,128, 0, 0,168, 8, 0, 0,168, 8, 0, 0, 5, 0, 0, 0, -/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,168, 8, 0, 0, 0, 0, 0, 0, +/* 0x0040 */ 0,128, 0, 0,188, 8, 0, 0,188, 8, 0, 0, 5, 0, 0, 0, +/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,188, 8, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 20, 48,157,229, 16,224,157,229, 3, 49,141,224, 28, 48,131,226, /* 0x0090 */ 4, 0,147,228, 0, 0, 80,227,252,255,255, 26, 3, 32,160,225, /* 0x00a0 */ 8, 0,146,228, 0, 0, 80,227,252,255,255, 26, 8, 32,141,229, /* 0x00b0 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225, -/* 0x00c0 */ 0,112,154,229, 88, 96,143,226, 12,144,137,226, 0,176,160,227, -/* 0x00d0 */ 196,192,159,229,248, 95, 45,233, 15, 0,189,232,145, 1, 0,235, -/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 31, 0,189,232, -/* 0x00f0 */ 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227, 0, 64,160,227, -/* 0x0100 */ 0, 80,160,227, 0, 96,160,227, 0,128,160,227, 0,144,160,227, -/* 0x0110 */ 0,160,160,227, 0,176,160,227, 0,112,160,227, 0,192,160,227, -/* 0x0120 */ 4,240, 18,229,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, -/* 0x0130 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, -/* 0x0140 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, -/* 0x0150 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, -/* 0x0160 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225, -/* 0x0170 */ 1, 0,144,239, 3, 0,144,239, 14,240,160,225, 4, 0,144,239, -/* 0x0180 */ 14,240,160,225, 5, 0,144,239, 14,240,160,225, 6, 0,144,239, -/* 0x0190 */ 14,240,160,225, 45, 0,144,239, 14,240,160,225, 91, 0,144,239, -/* 0x01a0 */ 14,240,160,225,125, 0,144,239, 14,240,160,225, 4, 80, 45,229, -/* 0x01b0 */ 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225, -/* 0x01c0 */ 192, 0,144,239, 4, 64,157,228, 4, 80,157,228, 14,240,160,225, -/* 0x01d0 */ 92,193, 31,229, 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229, -/* 0x01e0 */ 0, 64,224,227, 12, 48,131,225,244,255,255,234, 0, 0, 80,227, -/* 0x01f0 */ 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18, -/* 0x0200 */ 251,255,255, 26, 4, 32,128,229, 14,240,160,225, 0, 48,144,229, -/* 0x0210 */ 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229, 3,192,160, 33, -/* 0x0220 */ 2,224,160,225, 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227, -/* 0x0230 */ 206,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, -/* 0x0240 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,248,255,255, 26, -/* 0x0250 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, -/* 0x0260 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233, -/* 0x0270 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225, -/* 0x0280 */ 3, 96,160,225, 68, 0, 0,234, 4, 16,141,226, 5, 0,160,225, -/* 0x0290 */ 12, 32,160,227,220,255,255,235, 4,192,157,229, 0, 0, 92,227, -/* 0x02a0 */ 8, 16,157,229, 6, 0, 0, 26, 0, 49,159,229, 3, 0, 81,225, -/* 0x02b0 */ 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, -/* 0x02c0 */ 56, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227, -/* 0x02d0 */ 166,255,255,235, 12, 0, 81,225,251,255,255,138, 0, 48,148,229, -/* 0x02e0 */ 3, 0, 92,225,248,255,255,138, 12, 0, 81,225, 33, 0, 0, 42, -/* 0x02f0 */ 16,192,141,229, 12,192,157,229, 4, 0,149,229, 4, 32,148,229, -/* 0x0300 */ 16, 48,141,226, 0,192,141,229, 15,224,160,225, 7,240,160,225, -/* 0x0310 */ 0, 0, 80,227,236,255,255, 26, 16, 16,157,229, 4, 48,157,229, -/* 0x0320 */ 3, 0, 81,225,232,255,255, 26, 13, 32,221,229, 0, 0, 82,227, -/* 0x0330 */ 0, 0, 86, 19, 9, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138, -/* 0x0340 */ 0, 48,148,229, 1, 0, 83,225, 4, 0, 0, 26, 2, 48,160,225, -/* 0x0350 */ 4, 0,148,229, 14, 32,221,229, 15,224,160,225, 6,240,160,225, -/* 0x0360 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, -/* 0x0370 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, -/* 0x0380 */ 4, 16,148,229,160,255,255,235, 4, 48,157,229, 6, 0,148,232, -/* 0x0390 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, -/* 0x03a0 */ 0, 0, 83,227,183,255,255, 26, 20,208,141,226,240,128,189,232, -/* 0x03b0 */ 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225, 28, 16,145,229, -/* 0x03c0 */ 52,208, 77,226, 1, 96,138,224, 88, 16,157,229,176,193,218,225, -/* 0x03d0 */ 0, 16,145,229,188,226,218,225, 2, 0, 92,227, 24, 16,141,229, -/* 0x03e0 */ 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, 1,224, 78,226, -/* 0x03f0 */ 6, 16,160,225, 0, 0,224,227, 0,192,160,227, 12, 32,141,229, -/* 0x0400 */ 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, -/* 0x0410 */ 6, 0, 0, 26, 8, 32,145,229, 20, 48,145,229, 3, 48,130,224, -/* 0x0420 */ 3, 0, 92,225, 3,192,160, 49, 2, 0, 80,225, 2, 0,160, 33, -/* 0x0430 */ 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,241,255,255,170, -/* 0x0440 */ 255, 78,192,227, 15, 64,196,227, 12, 48,100,224,255, 62,131,226, -/* 0x0450 */ 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, 0, 0, 82,227, -/* 0x0460 */ 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21, 4, 0, 0, 26, -/* 0x0470 */ 5, 48,160,225, 4, 0,160,225, 40, 16,157,229, 83,255,255,235, -/* 0x0480 */ 32, 0,141,229, 32, 32,157,229, 52, 48,160,227, 2,176,100,224, -/* 0x0490 */ 155, 3, 3,224, 32, 80,134,226, 36, 48,141,229, 0, 48,160,227, -/* 0x04a0 */ 28, 48,141,229,129, 0, 0,234, 12,192,157,229, 0, 0, 92,227, -/* 0x04b0 */ 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, 5, 0, 0, 26, -/* 0x04c0 */ 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, 3, 16,160,227, -/* 0x04d0 */ 69,255,255,235,113, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227, -/* 0x04e0 */ 110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229, 7, 48, 3,226, -/* 0x04f0 */ 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, 3,144,139,224, -/* 0x0500 */ 9, 42,160,225, 16, 48, 21,229, 34, 42,160,225, 12, 16,157,229, -/* 0x0510 */ 44, 48,141,229, 2,112,131,224, 12, 48, 21,229, 0, 0, 81,227, -/* 0x0520 */ 48,144,141,229, 7,128, 4,226, 20, 48,141,229, 9, 96, 98,224, -/* 0x0530 */ 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225, 2, 32,136,227, -/* 0x0540 */ 16, 48,160,227, 33,255,255,235, 0, 0, 86,225, 68, 0, 0, 26, -/* 0x0550 */ 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229, -/* 0x0560 */ 44, 16,141,226, 16, 32,157,229, 63,255,255,235, 11, 0, 0,234, -/* 0x0570 */ 28,192, 21,229, 12,192, 98,224, 4,192,141,229, 16,192,157,229, -/* 0x0580 */ 6, 0,160,225, 7, 16,160,225, 8, 32,160,225, 18, 48,160,227, -/* 0x0590 */ 0,192,141,229, 4,255,255,235, 0, 0, 86,225, 48, 0, 0, 26, -/* 0x05a0 */ 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227, 36, 74,160,225, -/* 0x05b0 */ 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10, 7, 16,134,224, -/* 0x05c0 */ 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228, -/* 0x05d0 */ 251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, 34, 0, 0, 10, -/* 0x05e0 */ 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26, 8, 48, 21,229, -/* 0x05f0 */ 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229, -/* 0x0600 */ 3, 0, 82,225, 24, 16, 21,229, 55, 0, 0, 26, 1, 48,130,224, -/* 0x0610 */ 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, 0, 48, 98,226, -/* 0x0620 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 46, 0, 0,154, -/* 0x0630 */ 236, 48,159,229, 4, 48,130,229, 24, 48,157,229, 8, 0,157,229, -/* 0x0640 */ 0, 48,130,229, 0, 16,160,227,231,254,255,235, 6, 0,160,225, -/* 0x0650 */ 7, 16,160,225, 8, 32,160,225,209,254,255,235, 0, 0, 80,227, -/* 0x0660 */ 1, 0, 0, 10,127, 0,160,227,192,254,255,235, 20,192,157,229, -/* 0x0670 */ 4, 48,135,224, 12, 16,137,224, 3, 64,134,224, 1, 0, 84,225, -/* 0x0680 */ 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225, 4, 0,160,225, -/* 0x0690 */ 16, 48,160,227,205,254,255,235, 0, 0, 84,225,240,255,255, 26, -/* 0x06a0 */ 28, 16,157,229, 1, 16,129,226, 28, 16,141,229, 32, 80,133,226, -/* 0x06b0 */ 188, 50,218,225, 28, 32,157,229, 3, 0, 82,225,121,255,255,186, -/* 0x06c0 */ 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10,176, 49,218,225, -/* 0x06d0 */ 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229, 40, 16,157,229, -/* 0x06e0 */ 1, 0,140,224,170,254,255,235, 6, 0, 0,234, 28, 48, 21,229, -/* 0x06f0 */ 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0, 8, 32,131, 2, -/* 0x0700 */ 202,255,255, 10,208,255,255,234, 88, 48,157,229, 0,176,131,229, -/* 0x0710 */ 24, 0,154,229, 0, 0,139,224, 52,208,141,226,240,143,189,232, -/* 0x0720 */ 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, 12,208, 77,226, -/* 0x0730 */ 0,112,160,225, 1, 80,160,225, 48, 0,141,226, 40, 16,141,226, -/* 0x0740 */ 3,160,160,225, 0, 48,160,227, 44, 96,157,229, 2,128,160,225, -/* 0x0750 */ 48, 64,157,229,196,254,255,235, 52, 48,157,229, 5, 16,160,227, -/* 0x0760 */ 3, 48,100,224,188, 34,214,225, 7, 0,160,225, 52, 48,141,229, -/* 0x0770 */ 48, 80,141,229,156,254,255,235, 4, 16,160,227, 7, 0,160,225, -/* 0x0780 */ 186, 34,214,225,152,254,255,235, 52, 80,134,226, 6, 16,160,225, -/* 0x0790 */ 52, 48,145,229, 1, 0, 83,227, 32, 16,129,226,251,255,255, 26, -/* 0x07a0 */ 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, 3, 32,130,224, -/* 0x07b0 */ 7, 0,160,225, 3, 16,160,227,139,254,255,235, 60, 48,157,229, -/* 0x07c0 */ 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, 48, 32,141,226, -/* 0x07d0 */ 7, 48,160,225, 8, 0,160,225, 0,192,141,229, 4,160,141,229, -/* 0x07e0 */ 243,254,255,235, 0, 64,160,225, 9, 16,160,227, 4, 32,160,225, -/* 0x07f0 */ 7, 0,160,225,124,254,255,235,188, 18,214,225, 0, 32,160,227, -/* 0x0800 */ 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, 30, 0, 0, 26, -/* 0x0810 */ 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, -/* 0x0820 */ 1, 32,160,225, 86,254,255,235, 0, 80, 80,226, 4, 0, 0,186, -/* 0x0830 */ 6, 16,160,225, 2, 44,160,227, 77,254,255,235, 2, 12, 80,227, -/* 0x0840 */ 1, 0, 0, 10,127, 0,160,227, 72,254,255,235, 0,224,160,227, -/* 0x0850 */ 14, 32,160,225, 8,192,141,226, 6, 16,160,225, 7, 48,160,225, -/* 0x0860 */ 5, 0,160,225, 0, 80,141,232,209,254,255,235, 7, 16,160,227, -/* 0x0870 */ 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, 90,254,255,235, -/* 0x0880 */ 5, 0,160,225, 64,254,255,235, 3, 0, 0,234, 32, 80,133,226, -/* 0x0890 */ 1, 32,130,226, 1, 0, 82,225,217,255,255,186, 4, 0,160,225, -/* 0x08a0 */ 12,208,141,226,240,133,189,232 +/* 0x00c0 */ 0,112,154,229,108, 96,143,226, 12,144,137,226, 0,176,160,227, +/* 0x00d0 */ 216,192,159,229,248, 95, 45,233, 15, 0,189,232,150, 1, 0,235, +/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 8, 32,157,229, +/* 0x00f0 */ 4, 0, 18,229, 8, 16,128,226, 0, 32,160,227, 2, 0,159,239, +/* 0x0100 */ 31, 0,189,232, 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227, +/* 0x0110 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227, +/* 0x0120 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 0,112,160,227, +/* 0x0130 */ 0,192,160,227, 4,240, 18,229,255, 48, 3,226, 80, 0, 83,227, +/* 0x0140 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, +/* 0x0150 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, +/* 0x0160 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, +/* 0x0170 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, +/* 0x0180 */ 14,240,160,225, 1, 0,144,239, 3, 0,144,239, 14,240,160,225, +/* 0x0190 */ 4, 0,144,239, 14,240,160,225, 5, 0,144,239, 14,240,160,225, +/* 0x01a0 */ 6, 0,144,239, 14,240,160,225, 45, 0,144,239, 14,240,160,225, +/* 0x01b0 */ 91, 0,144,239, 14,240,160,225,125, 0,144,239, 14,240,160,225, +/* 0x01c0 */ 4, 80, 45,229, 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, +/* 0x01d0 */ 37, 86,160,225,192, 0,144,239, 4, 64,157,228, 4, 80,157,228, +/* 0x01e0 */ 14,240,160,225,112,193, 31,229, 4, 80, 45,229, 0, 80,160,227, +/* 0x01f0 */ 4, 64, 45,229, 0, 64,224,227, 12, 48,131,225,244,255,255,234, +/* 0x0200 */ 0, 0, 80,227, 14,240,160, 1, 0, 48,144,229, 1, 0, 83,225, +/* 0x0210 */ 8, 0,128, 18,251,255,255, 26, 4, 32,128,229, 14,240,160,225, +/* 0x0220 */ 0, 48,144,229, 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229, +/* 0x0230 */ 3,192,160, 33, 2,224,160,225, 2, 32,160, 33, 3, 0, 0, 42, +/* 0x0240 */ 127, 0,160,227,206,255,255,235, 1, 48, 92,229, 1, 48, 65,229, +/* 0x0250 */ 1, 32, 66,226, 1, 0,114,227, 1,192,140,226, 1, 16,129,226, +/* 0x0260 */ 248,255,255, 26, 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, +/* 0x0270 */ 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, 4,240,157,228, +/* 0x0280 */ 240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, +/* 0x0290 */ 2,112,160,225, 3, 96,160,225, 68, 0, 0,234, 4, 16,141,226, +/* 0x02a0 */ 5, 0,160,225, 12, 32,160,227,220,255,255,235, 4,192,157,229, +/* 0x02b0 */ 0, 0, 92,227, 8, 16,157,229, 6, 0, 0, 26, 0, 49,159,229, +/* 0x02c0 */ 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, +/* 0x02d0 */ 2, 0, 0, 26, 56, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26, +/* 0x02e0 */ 127, 0,160,227,166,255,255,235, 12, 0, 81,225,251,255,255,138, +/* 0x02f0 */ 0, 48,148,229, 3, 0, 92,225,248,255,255,138, 12, 0, 81,225, +/* 0x0300 */ 33, 0, 0, 42, 16,192,141,229, 12,192,157,229, 4, 0,149,229, +/* 0x0310 */ 4, 32,148,229, 16, 48,141,226, 0,192,141,229, 15,224,160,225, +/* 0x0320 */ 7,240,160,225, 0, 0, 80,227,236,255,255, 26, 16, 16,157,229, +/* 0x0330 */ 4, 48,157,229, 3, 0, 81,225,232,255,255, 26, 13, 32,221,229, +/* 0x0340 */ 0, 0, 82,227, 0, 0, 86, 19, 9, 0, 0, 10, 2, 12, 81,227, +/* 0x0350 */ 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225, 4, 0, 0, 26, +/* 0x0360 */ 2, 48,160,225, 4, 0,148,229, 14, 32,221,229, 15,224,160,225, +/* 0x0370 */ 6,240,160,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, +/* 0x0380 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, +/* 0x0390 */ 5, 0,160,225, 4, 16,148,229,160,255,255,235, 4, 48,157,229, +/* 0x03a0 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, +/* 0x03b0 */ 0, 48,148,229, 0, 0, 83,227,183,255,255, 26, 20,208,141,226, +/* 0x03c0 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225, +/* 0x03d0 */ 28, 16,145,229, 52,208, 77,226, 1, 96,138,224, 88, 16,157,229, +/* 0x03e0 */ 176,193,218,225, 0, 16,145,229,188,226,218,225, 2, 0, 92,227, +/* 0x03f0 */ 24, 16,141,229, 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, +/* 0x0400 */ 1,224, 78,226, 6, 16,160,225, 0, 0,224,227, 0,192,160,227, +/* 0x0410 */ 12, 32,141,229, 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, +/* 0x0420 */ 1, 0, 83,227, 6, 0, 0, 26, 8, 32,145,229, 20, 48,145,229, +/* 0x0430 */ 3, 48,130,224, 3, 0, 92,225, 3,192,160, 49, 2, 0, 80,225, +/* 0x0440 */ 2, 0,160, 33, 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227, +/* 0x0450 */ 241,255,255,170,255, 78,192,227, 15, 64,196,227, 12, 48,100,224, +/* 0x0460 */ 255, 62,131,226, 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, +/* 0x0470 */ 0, 0, 82,227, 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21, +/* 0x0480 */ 4, 0, 0, 26, 5, 48,160,225, 4, 0,160,225, 40, 16,157,229, +/* 0x0490 */ 83,255,255,235, 32, 0,141,229, 32, 32,157,229, 52, 48,160,227, +/* 0x04a0 */ 2,176,100,224,155, 3, 3,224, 32, 80,134,226, 36, 48,141,229, +/* 0x04b0 */ 0, 48,160,227, 28, 48,141,229,129, 0, 0,234, 12,192,157,229, +/* 0x04c0 */ 0, 0, 92,227, 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, +/* 0x04d0 */ 5, 0, 0, 26, 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, +/* 0x04e0 */ 3, 16,160,227, 69,255,255,235,113, 0, 0,234, 32, 48, 21,229, +/* 0x04f0 */ 1, 0, 83,227,110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229, +/* 0x0500 */ 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, +/* 0x0510 */ 3,144,139,224, 9, 42,160,225, 16, 48, 21,229, 34, 42,160,225, +/* 0x0520 */ 12, 16,157,229, 44, 48,141,229, 2,112,131,224, 12, 48, 21,229, +/* 0x0530 */ 0, 0, 81,227, 48,144,141,229, 7,128, 4,226, 20, 48,141,229, +/* 0x0540 */ 9, 96, 98,224, 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225, +/* 0x0550 */ 2, 32,136,227, 16, 48,160,227, 33,255,255,235, 0, 0, 86,225, +/* 0x0560 */ 68, 0, 0, 26, 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17, +/* 0x0570 */ 12, 0,157,229, 44, 16,141,226, 16, 32,157,229, 63,255,255,235, +/* 0x0580 */ 11, 0, 0,234, 28,192, 21,229, 12,192, 98,224, 4,192,141,229, +/* 0x0590 */ 16,192,157,229, 6, 0,160,225, 7, 16,160,225, 8, 32,160,225, +/* 0x05a0 */ 18, 48,160,227, 0,192,141,229, 4,255,255,235, 0, 0, 86,225, +/* 0x05b0 */ 48, 0, 0, 26, 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227, +/* 0x05c0 */ 36, 74,160,225, 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10, +/* 0x05d0 */ 7, 16,134,224, 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, +/* 0x05e0 */ 1, 48,193,228,251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, +/* 0x05f0 */ 34, 0, 0, 10, 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26, +/* 0x0600 */ 8, 48, 21,229, 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229, +/* 0x0610 */ 16, 48, 21,229, 3, 0, 82,225, 24, 16, 21,229, 55, 0, 0, 26, +/* 0x0620 */ 1, 48,130,224, 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, +/* 0x0630 */ 0, 48, 98,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, +/* 0x0640 */ 46, 0, 0,154,236, 48,159,229, 4, 48,130,229, 24, 48,157,229, +/* 0x0650 */ 8, 0,157,229, 0, 48,130,229, 0, 16,160,227,231,254,255,235, +/* 0x0660 */ 6, 0,160,225, 7, 16,160,225, 8, 32,160,225,209,254,255,235, +/* 0x0670 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,192,254,255,235, +/* 0x0680 */ 20,192,157,229, 4, 48,135,224, 12, 16,137,224, 3, 64,134,224, +/* 0x0690 */ 1, 0, 84,225, 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225, +/* 0x06a0 */ 4, 0,160,225, 16, 48,160,227,205,254,255,235, 0, 0, 84,225, +/* 0x06b0 */ 240,255,255, 26, 28, 16,157,229, 1, 16,129,226, 28, 16,141,229, +/* 0x06c0 */ 32, 80,133,226,188, 50,218,225, 28, 32,157,229, 3, 0, 82,225, +/* 0x06d0 */ 121,255,255,186, 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10, +/* 0x06e0 */ 176, 49,218,225, 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229, +/* 0x06f0 */ 40, 16,157,229, 1, 0,140,224,170,254,255,235, 6, 0, 0,234, +/* 0x0700 */ 28, 48, 21,229, 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0, +/* 0x0710 */ 8, 32,131, 2,202,255,255, 10,208,255,255,234, 88, 48,157,229, +/* 0x0720 */ 0,176,131,229, 24, 0,154,229, 0, 0,139,224, 52,208,141,226, +/* 0x0730 */ 240,143,189,232, 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, +/* 0x0740 */ 12,208, 77,226, 0,112,160,225, 1, 80,160,225, 48, 0,141,226, +/* 0x0750 */ 40, 16,141,226, 3,160,160,225, 0, 48,160,227, 44, 96,157,229, +/* 0x0760 */ 2,128,160,225, 48, 64,157,229,196,254,255,235, 52, 48,157,229, +/* 0x0770 */ 5, 16,160,227, 3, 48,100,224,188, 34,214,225, 7, 0,160,225, +/* 0x0780 */ 52, 48,141,229, 48, 80,141,229,156,254,255,235, 4, 16,160,227, +/* 0x0790 */ 7, 0,160,225,186, 34,214,225,152,254,255,235, 52, 80,134,226, +/* 0x07a0 */ 6, 16,160,225, 52, 48,145,229, 1, 0, 83,227, 32, 16,129,226, +/* 0x07b0 */ 251,255,255, 26, 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, +/* 0x07c0 */ 3, 32,130,224, 7, 0,160,225, 3, 16,160,227,139,254,255,235, +/* 0x07d0 */ 60, 48,157,229, 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, +/* 0x07e0 */ 48, 32,141,226, 7, 48,160,225, 8, 0,160,225, 0,192,141,229, +/* 0x07f0 */ 4,160,141,229,243,254,255,235, 0, 64,160,225, 9, 16,160,227, +/* 0x0800 */ 4, 32,160,225, 7, 0,160,225,124,254,255,235,188, 18,214,225, +/* 0x0810 */ 0, 32,160,227, 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, +/* 0x0820 */ 30, 0, 0, 26, 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, +/* 0x0830 */ 0, 0,131,224, 1, 32,160,225, 86,254,255,235, 0, 80, 80,226, +/* 0x0840 */ 4, 0, 0,186, 6, 16,160,225, 2, 44,160,227, 77,254,255,235, +/* 0x0850 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227, 72,254,255,235, +/* 0x0860 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 6, 16,160,225, +/* 0x0870 */ 7, 48,160,225, 5, 0,160,225, 0, 80,141,232,209,254,255,235, +/* 0x0880 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, +/* 0x0890 */ 90,254,255,235, 5, 0,160,225, 64,254,255,235, 3, 0, 0,234, +/* 0x08a0 */ 32, 80,133,226, 1, 32,130,226, 1, 0, 82,225,217,255,255,186, +/* 0x08b0 */ 4, 0,160,225, 12,208,141,226,240,133,189,232 }; diff --git a/src/stub/armeb-linux.elf-fold.h b/src/stub/armeb-linux.elf-fold.h index be674d5d..226c6d24 100644 --- a/src/stub/armeb-linux.elf-fold.h +++ b/src/stub/armeb-linux.elf-fold.h @@ -1,5 +1,5 @@ /* armeb-linux.elf-fold.h - created from armeb-linux.elf-fold.bin, 2216 (0x8a8) bytes + created from armeb-linux.elf-fold.bin, 2236 (0x8bc) bytes This file is part of the UPX executable compressor. @@ -31,148 +31,149 @@ */ -#define STUB_ARMEB_LINUX_ELF_FOLD_SIZE 2216 -#define STUB_ARMEB_LINUX_ELF_FOLD_ADLER32 0x569a963d -#define STUB_ARMEB_LINUX_ELF_FOLD_CRC32 0xd8f67761 +#define STUB_ARMEB_LINUX_ELF_FOLD_SIZE 2236 +#define STUB_ARMEB_LINUX_ELF_FOLD_ADLER32 0x07e99e0c +#define STUB_ARMEB_LINUX_ELF_FOLD_CRC32 0x5dda6647 -unsigned char stub_armeb_linux_elf_fold[2216] = { +unsigned char stub_armeb_linux_elf_fold[2236] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0, -/* 0x0040 */ 0, 0,128, 0, 0, 0, 8,168, 0, 0, 8,168, 0, 0, 0, 5, -/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 8,168, 0, 0, 0, 0, +/* 0x0040 */ 0, 0,128, 0, 0, 0, 8,188, 0, 0, 8,188, 0, 0, 0, 5, +/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 8,188, 0, 0, 0, 0, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 229,157, 48, 20,229,157,224, 16,224,141, 49, 3,226,131, 48, 28, /* 0x0090 */ 228,147, 0, 4,227, 80, 0, 0, 26,255,255,252,225,160, 32, 3, /* 0x00a0 */ 228,146, 0, 8,227, 80, 0, 0, 26,255,255,252,229,141, 32, 8, /* 0x00b0 */ 226, 77,220, 10,225,160, 64, 9,229,154,144, 4,225,160,128, 13, -/* 0x00c0 */ 229,154,112, 0,226,143, 96, 88,226,137,144, 12,227,160,176, 0, -/* 0x00d0 */ 229,159,192,196,233, 45, 95,248,232,189, 0, 15,235, 0, 1,145, -/* 0x00e0 */ 225,160,224, 0,226,141,208, 28,226,141,220, 10,232,189, 0, 31, -/* 0x00f0 */ 224,128, 0, 3,224, 65, 16, 3,227,160, 48, 0,227,160, 64, 0, -/* 0x0100 */ 227,160, 80, 0,227,160, 96, 0,227,160,128, 0,227,160,144, 0, -/* 0x0110 */ 227,160,160, 0,227,160,176, 0,227,160,112, 0,227,160,192, 0, -/* 0x0120 */ 229, 18,240, 4,226, 3, 48,255,227, 83, 0, 81, 17,160,240, 14, -/* 0x0130 */ 225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,226, 65, 16, 1, -/* 0x0140 */ 231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, 26, 0, 0, 4, -/* 0x0150 */ 226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,225,130, 32, 3, -/* 0x0160 */ 231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,225,160,240, 14, -/* 0x0170 */ 239,144, 0, 1,239,144, 0, 3,225,160,240, 14,239,144, 0, 4, -/* 0x0180 */ 225,160,240, 14,239,144, 0, 5,225,160,240, 14,239,144, 0, 6, -/* 0x0190 */ 225,160,240, 14,239,144, 0, 45,225,160,240, 14,239,144, 0, 91, -/* 0x01a0 */ 225,160,240, 14,239,144, 0,125,225,160,240, 14,229, 45, 80, 4, -/* 0x01b0 */ 229,157, 80, 8,229, 45, 64, 4,229,157, 64, 8,225,160, 86, 37, -/* 0x01c0 */ 239,144, 0,192,228,157, 64, 4,228,157, 80, 4,225,160,240, 14, -/* 0x01d0 */ 229, 31,193, 92,229, 45, 80, 4,227,160, 80, 0,229, 45, 64, 4, -/* 0x01e0 */ 227,224, 64, 0,225,131, 48, 12,234,255,255,244,227, 80, 0, 0, -/* 0x01f0 */ 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, 18,128, 0, 8, -/* 0x0200 */ 26,255,255,251,229,128, 32, 4,225,160,240, 14,229,144, 48, 0, -/* 0x0210 */ 225, 83, 0, 2,229,144, 48, 4,229, 45,224, 4, 33,160,192, 3, -/* 0x0220 */ 225,160,224, 2, 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127, -/* 0x0230 */ 235,255,255,206,229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1, -/* 0x0240 */ 227,114, 0, 1,226,140,192, 1,226,129, 16, 1, 26,255,255,248, -/* 0x0250 */ 229,144, 32, 4,229,144, 48, 0,224,130, 32, 14,224,110, 48, 3, -/* 0x0260 */ 229,128, 48, 0,229,128, 32, 4,228,157,240, 4,233, 45, 64,240, -/* 0x0270 */ 225,160, 80, 0,226, 77,208, 20,225,160, 64, 1,225,160,112, 2, -/* 0x0280 */ 225,160, 96, 3,234, 0, 0, 68,226,141, 16, 4,225,160, 0, 5, -/* 0x0290 */ 227,160, 32, 12,235,255,255,220,229,157,192, 4,227, 92, 0, 0, -/* 0x02a0 */ 229,157, 16, 8, 26, 0, 0, 6,229,159, 49, 0,225, 81, 0, 3, -/* 0x02b0 */ 26, 0, 0, 5,229,149, 48, 0,227, 83, 0, 0, 26, 0, 0, 2, -/* 0x02c0 */ 234, 0, 0, 56,227, 81, 0, 0, 26, 0, 0, 1,227,160, 0,127, -/* 0x02d0 */ 235,255,255,166,225, 81, 0, 12,138,255,255,251,229,148, 48, 0, -/* 0x02e0 */ 225, 92, 0, 3,138,255,255,248,225, 81, 0, 12, 42, 0, 0, 33, -/* 0x02f0 */ 229,141,192, 16,229,157,192, 12,229,149, 0, 4,229,148, 32, 4, -/* 0x0300 */ 226,141, 48, 16,229,141,192, 0,225,160,224, 15,225,160,240, 7, -/* 0x0310 */ 227, 80, 0, 0, 26,255,255,236,229,157, 16, 16,229,157, 48, 4, -/* 0x0320 */ 225, 81, 0, 3, 26,255,255,232,229,221, 32, 13,227, 82, 0, 0, -/* 0x0330 */ 19, 86, 0, 0, 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2, -/* 0x0340 */ 229,148, 48, 0,225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2, -/* 0x0350 */ 229,148, 0, 4,229,221, 32, 14,225,160,224, 15,225,160,240, 6, -/* 0x0360 */ 229,157, 48, 8,232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1, -/* 0x0370 */ 232,133, 0, 6,234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5, -/* 0x0380 */ 229,148, 16, 4,235,255,255,160,229,157, 48, 4,232,148, 0, 6, -/* 0x0390 */ 224,130, 32, 3,224, 99, 16, 1,232,132, 0, 6,229,148, 48, 0, -/* 0x03a0 */ 227, 83, 0, 0, 26,255,255,183,226,141,208, 20,232,189,128,240, -/* 0x03b0 */ 33, 88, 80, 85,233, 45, 79,240,225,160,160, 1,229,145, 16, 28, -/* 0x03c0 */ 226, 77,208, 52,224,138, 96, 1,229,157, 16, 88,225,218,193,176, -/* 0x03d0 */ 229,145, 16, 0,225,218,226,188,227, 92, 0, 2,229,141, 16, 24, -/* 0x03e0 */ 229,141, 0, 16, 3,160, 80, 16, 19,160, 80, 0,226, 78,224, 1, -/* 0x03f0 */ 225,160, 16, 6,227,224, 0, 0,227,160,192, 0,229,141, 32, 12, -/* 0x0400 */ 229,141, 48, 8,234, 0, 0, 11,229,145, 48, 0,227, 83, 0, 1, -/* 0x0410 */ 26, 0, 0, 6,229,145, 32, 8,229,145, 48, 20,224,130, 48, 3, -/* 0x0420 */ 225, 92, 0, 3, 49,160,192, 3,225, 80, 0, 2, 33,160, 0, 2, -/* 0x0430 */ 226,129, 16, 32,226, 78,224, 1,227, 94, 0, 0,170,255,255,241, -/* 0x0440 */ 227,192, 78,255,227,196, 64, 15,224,100, 48, 12,226,131, 62,255, -/* 0x0450 */ 226,131, 48, 15,226, 5, 32, 16,227,195, 62,255,227, 82, 0, 0, -/* 0x0460 */ 227,195, 48, 15,229,141, 48, 40, 21,141, 64, 32, 26, 0, 0, 4, -/* 0x0470 */ 225,160, 48, 5,225,160, 0, 4,229,157, 16, 40,235,255,255, 83, -/* 0x0480 */ 229,141, 0, 32,229,157, 32, 32,227,160, 48, 52,224,100,176, 2, -/* 0x0490 */ 224, 3, 3,155,226,134, 80, 32,229,141, 48, 36,227,160, 48, 0, -/* 0x04a0 */ 229,141, 48, 28,234, 0, 0,129,229,157,192, 12,227, 92, 0, 0, -/* 0x04b0 */ 10, 0, 0, 8,229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 5, -/* 0x04c0 */ 229, 21, 32, 24,229,157, 0, 8,224,139, 32, 2,227,160, 16, 3, -/* 0x04d0 */ 235,255,255, 69,234, 0, 0,113,229, 21, 48, 32,227, 83, 0, 1, -/* 0x04e0 */ 26, 0, 0,110,229, 21, 48, 8,229,159, 34, 48,226, 3, 48, 7, -/* 0x04f0 */ 225,160, 49, 3,225,160, 67, 50,229, 21, 48, 24,224,139,144, 3, -/* 0x0500 */ 225,160, 42, 9,229, 21, 48, 16,225,160, 42, 34,229,157, 16, 12, -/* 0x0510 */ 229,141, 48, 44,224,131,112, 2,229, 21, 48, 12,227, 81, 0, 0, -/* 0x0520 */ 229,141,144, 48,226, 4,128, 7,229,141, 48, 20,224, 98, 96, 9, -/* 0x0530 */ 10, 0, 0, 14,225,160, 0, 6,225,160, 16, 7,227,136, 32, 2, -/* 0x0540 */ 227,160, 48, 16,235,255,255, 33,225, 86, 0, 0, 26, 0, 0, 68, -/* 0x0550 */ 229,157,192, 92,226, 20, 48, 4, 17,160, 48, 12,229,157, 0, 12, -/* 0x0560 */ 226,141, 16, 44,229,157, 32, 16,235,255,255, 63,234, 0, 0, 11, -/* 0x0570 */ 229, 21,192, 28,224, 98,192, 12,229,141,192, 4,229,157,192, 16, -/* 0x0580 */ 225,160, 0, 6,225,160, 16, 7,225,160, 32, 8,227,160, 48, 18, -/* 0x0590 */ 229,141,192, 0,235,255,255, 4,225, 86, 0, 0, 26, 0, 0, 48, -/* 0x05a0 */ 226,103, 48, 0,225,160, 74, 3,227, 24, 0, 2,225,160, 74, 36, -/* 0x05b0 */ 10, 0, 0, 7,227, 84, 0, 0, 10, 0, 0, 5,224,134, 16, 7, -/* 0x05c0 */ 225,160, 32, 4,227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1, -/* 0x05d0 */ 26,255,255,251,229,157, 16, 12,227, 81, 0, 0, 10, 0, 0, 34, -/* 0x05e0 */ 229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0, 23,229, 21, 48, 8, -/* 0x05f0 */ 227, 19, 0, 1, 10, 0, 0, 20,229, 21, 32, 12,229, 21, 48, 16, -/* 0x0600 */ 225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 55,224,130, 48, 1, -/* 0x0610 */ 226,131, 48, 3,224,139, 48, 3,227,195, 32, 3,226, 98, 48, 0, -/* 0x0620 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,154, 0, 0, 46, -/* 0x0630 */ 229,159, 48,236,229,130, 48, 4,229,157, 48, 24,229,157, 0, 8, -/* 0x0640 */ 229,130, 48, 0,227,160, 16, 0,235,255,254,231,225,160, 0, 6, -/* 0x0650 */ 225,160, 16, 7,225,160, 32, 8,235,255,254,209,227, 80, 0, 0, -/* 0x0660 */ 10, 0, 0, 1,227,160, 0,127,235,255,254,192,229,157,192, 20, -/* 0x0670 */ 224,135, 48, 4,224,137, 16, 12,224,134, 64, 3,225, 84, 0, 1, -/* 0x0680 */ 42, 0, 0, 6,224,100, 16, 1,225,160, 32, 8,225,160, 0, 4, -/* 0x0690 */ 227,160, 48, 16,235,255,254,205,225, 84, 0, 0, 26,255,255,240, -/* 0x06a0 */ 229,157, 16, 28,226,129, 16, 1,229,141, 16, 28,226,133, 80, 32, -/* 0x06b0 */ 225,218, 50,188,229,157, 32, 28,225, 82, 0, 3,186,255,255,121, -/* 0x06c0 */ 229,157, 48, 12,227, 83, 0, 0, 10, 0, 0, 14,225,218, 49,176, -/* 0x06d0 */ 227, 83, 0, 3, 10, 0, 0, 11,229,157,192, 32,229,157, 16, 40, -/* 0x06e0 */ 224,140, 0, 1,235,255,254,170,234, 0, 0, 6,229, 21, 48, 28, -/* 0x06f0 */ 227, 83, 0, 0, 5,157, 32, 36, 0,129, 48, 2, 2,131, 32, 8, -/* 0x0700 */ 10,255,255,202,234,255,255,208,229,157, 48, 88,229,131,176, 0, -/* 0x0710 */ 229,154, 0, 24,224,139, 0, 0,226,141,208, 52,232,189,143,240, -/* 0x0720 */ 115, 81, 98, 64,225,160,240, 14,233, 45, 69,240,226, 77,208, 12, -/* 0x0730 */ 225,160,112, 0,225,160, 80, 1,226,141, 0, 48,226,141, 16, 40, -/* 0x0740 */ 225,160,160, 3,227,160, 48, 0,229,157, 96, 44,225,160,128, 2, -/* 0x0750 */ 229,157, 64, 48,235,255,254,196,229,157, 48, 52,227,160, 16, 5, -/* 0x0760 */ 224,100, 48, 3,225,214, 34,188,225,160, 0, 7,229,141, 48, 52, -/* 0x0770 */ 229,141, 80, 48,235,255,254,156,227,160, 16, 4,225,160, 0, 7, -/* 0x0780 */ 225,214, 34,186,235,255,254,152,226,134, 80, 52,225,160, 16, 6, -/* 0x0790 */ 229,145, 48, 52,227, 83, 0, 1,226,129, 16, 32, 26,255,255,251, -/* 0x07a0 */ 229,157, 32, 56,229,145, 48, 28,226,130, 32, 52,224,130, 32, 3, -/* 0x07b0 */ 225,160, 0, 7,227,160, 16, 3,235,255,254,139,229,157, 48, 60, -/* 0x07c0 */ 226,141,192, 12,229, 44, 48, 4,225,160, 16, 6,226,141, 32, 48, -/* 0x07d0 */ 225,160, 48, 7,225,160, 0, 8,229,141,192, 0,229,141,160, 4, -/* 0x07e0 */ 235,255,254,243,225,160, 64, 0,227,160, 16, 9,225,160, 32, 4, -/* 0x07f0 */ 225,160, 0, 7,235,255,254,124,225,214, 18,188,227,160, 32, 0, -/* 0x0800 */ 234, 0, 0, 35,229,149, 48, 0,227, 83, 0, 3, 26, 0, 0, 30, -/* 0x0810 */ 229,149, 48, 8,229,157, 0, 8,227,160, 16, 0,224,131, 0, 0, -/* 0x0820 */ 225,160, 32, 1,235,255,254, 86,226, 80, 80, 0,186, 0, 0, 4, -/* 0x0830 */ 225,160, 16, 6,227,160, 44, 2,235,255,254, 77,227, 80, 12, 2, -/* 0x0840 */ 10, 0, 0, 1,227,160, 0,127,235,255,254, 72,227,160,224, 0, -/* 0x0850 */ 225,160, 32, 14,226,141,192, 8,225,160, 16, 6,225,160, 48, 7, -/* 0x0860 */ 225,160, 0, 5,232,141, 80, 0,235,255,254,209,227,160, 16, 7, -/* 0x0870 */ 225,160, 64, 0,229,157, 32, 8,225,160, 0, 7,235,255,254, 90, -/* 0x0880 */ 225,160, 0, 5,235,255,254, 64,234, 0, 0, 3,226,133, 80, 32, -/* 0x0890 */ 226,130, 32, 1,225, 82, 0, 1,186,255,255,217,225,160, 0, 4, -/* 0x08a0 */ 226,141,208, 12,232,189,133,240 +/* 0x00c0 */ 229,154,112, 0,226,143, 96,108,226,137,144, 12,227,160,176, 0, +/* 0x00d0 */ 229,159,192,216,233, 45, 95,248,232,189, 0, 15,235, 0, 1,150, +/* 0x00e0 */ 225,160,224, 0,226,141,208, 28,226,141,220, 10,229,157, 32, 8, +/* 0x00f0 */ 229, 18, 0, 4,226,128, 16, 8,227,160, 32, 0,239,159, 0, 2, +/* 0x0100 */ 232,189, 0, 31,224,128, 0, 3,224, 65, 16, 3,227,160, 48, 0, +/* 0x0110 */ 227,160, 64, 0,227,160, 80, 0,227,160, 96, 0,227,160,128, 0, +/* 0x0120 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,227,160,112, 0, +/* 0x0130 */ 227,160,192, 0,229, 18,240, 4,226, 3, 48,255,227, 83, 0, 81, +/* 0x0140 */ 17,160,240, 14,225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14, +/* 0x0150 */ 226, 65, 16, 1,231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, +/* 0x0160 */ 26, 0, 0, 4,226, 2, 52,255,224, 66, 32, 1,227,194, 36,255, +/* 0x0170 */ 225,130, 32, 3,231,128, 33, 1,227, 81, 0, 0, 26,255,255,243, +/* 0x0180 */ 225,160,240, 14,239,144, 0, 1,239,144, 0, 3,225,160,240, 14, +/* 0x0190 */ 239,144, 0, 4,225,160,240, 14,239,144, 0, 5,225,160,240, 14, +/* 0x01a0 */ 239,144, 0, 6,225,160,240, 14,239,144, 0, 45,225,160,240, 14, +/* 0x01b0 */ 239,144, 0, 91,225,160,240, 14,239,144, 0,125,225,160,240, 14, +/* 0x01c0 */ 229, 45, 80, 4,229,157, 80, 8,229, 45, 64, 4,229,157, 64, 8, +/* 0x01d0 */ 225,160, 86, 37,239,144, 0,192,228,157, 64, 4,228,157, 80, 4, +/* 0x01e0 */ 225,160,240, 14,229, 31,193,112,229, 45, 80, 4,227,160, 80, 0, +/* 0x01f0 */ 229, 45, 64, 4,227,224, 64, 0,225,131, 48, 12,234,255,255,244, +/* 0x0200 */ 227, 80, 0, 0, 1,160,240, 14,229,144, 48, 0,225, 83, 0, 1, +/* 0x0210 */ 18,128, 0, 8, 26,255,255,251,229,128, 32, 4,225,160,240, 14, +/* 0x0220 */ 229,144, 48, 0,225, 83, 0, 2,229,144, 48, 4,229, 45,224, 4, +/* 0x0230 */ 33,160,192, 3,225,160,224, 2, 33,160, 32, 2, 42, 0, 0, 3, +/* 0x0240 */ 227,160, 0,127,235,255,255,206,229, 92, 48, 1,229, 65, 48, 1, +/* 0x0250 */ 226, 66, 32, 1,227,114, 0, 1,226,140,192, 1,226,129, 16, 1, +/* 0x0260 */ 26,255,255,248,229,144, 32, 4,229,144, 48, 0,224,130, 32, 14, +/* 0x0270 */ 224,110, 48, 3,229,128, 48, 0,229,128, 32, 4,228,157,240, 4, +/* 0x0280 */ 233, 45, 64,240,225,160, 80, 0,226, 77,208, 20,225,160, 64, 1, +/* 0x0290 */ 225,160,112, 2,225,160, 96, 3,234, 0, 0, 68,226,141, 16, 4, +/* 0x02a0 */ 225,160, 0, 5,227,160, 32, 12,235,255,255,220,229,157,192, 4, +/* 0x02b0 */ 227, 92, 0, 0,229,157, 16, 8, 26, 0, 0, 6,229,159, 49, 0, +/* 0x02c0 */ 225, 81, 0, 3, 26, 0, 0, 5,229,149, 48, 0,227, 83, 0, 0, +/* 0x02d0 */ 26, 0, 0, 2,234, 0, 0, 56,227, 81, 0, 0, 26, 0, 0, 1, +/* 0x02e0 */ 227,160, 0,127,235,255,255,166,225, 81, 0, 12,138,255,255,251, +/* 0x02f0 */ 229,148, 48, 0,225, 92, 0, 3,138,255,255,248,225, 81, 0, 12, +/* 0x0300 */ 42, 0, 0, 33,229,141,192, 16,229,157,192, 12,229,149, 0, 4, +/* 0x0310 */ 229,148, 32, 4,226,141, 48, 16,229,141,192, 0,225,160,224, 15, +/* 0x0320 */ 225,160,240, 7,227, 80, 0, 0, 26,255,255,236,229,157, 16, 16, +/* 0x0330 */ 229,157, 48, 4,225, 81, 0, 3, 26,255,255,232,229,221, 32, 13, +/* 0x0340 */ 227, 82, 0, 0, 19, 86, 0, 0, 10, 0, 0, 9,227, 81, 12, 2, +/* 0x0350 */ 138, 0, 0, 2,229,148, 48, 0,225, 83, 0, 1, 26, 0, 0, 4, +/* 0x0360 */ 225,160, 48, 2,229,148, 0, 4,229,221, 32, 14,225,160,224, 15, +/* 0x0370 */ 225,160,240, 6,229,157, 48, 8,232,149, 0, 6,224,130, 32, 3, +/* 0x0380 */ 224, 99, 16, 1,232,133, 0, 6,234, 0, 0, 3,225,160, 32, 1, +/* 0x0390 */ 225,160, 0, 5,229,148, 16, 4,235,255,255,160,229,157, 48, 4, +/* 0x03a0 */ 232,148, 0, 6,224,130, 32, 3,224, 99, 16, 1,232,132, 0, 6, +/* 0x03b0 */ 229,148, 48, 0,227, 83, 0, 0, 26,255,255,183,226,141,208, 20, +/* 0x03c0 */ 232,189,128,240, 33, 88, 80, 85,233, 45, 79,240,225,160,160, 1, +/* 0x03d0 */ 229,145, 16, 28,226, 77,208, 52,224,138, 96, 1,229,157, 16, 88, +/* 0x03e0 */ 225,218,193,176,229,145, 16, 0,225,218,226,188,227, 92, 0, 2, +/* 0x03f0 */ 229,141, 16, 24,229,141, 0, 16, 3,160, 80, 16, 19,160, 80, 0, +/* 0x0400 */ 226, 78,224, 1,225,160, 16, 6,227,224, 0, 0,227,160,192, 0, +/* 0x0410 */ 229,141, 32, 12,229,141, 48, 8,234, 0, 0, 11,229,145, 48, 0, +/* 0x0420 */ 227, 83, 0, 1, 26, 0, 0, 6,229,145, 32, 8,229,145, 48, 20, +/* 0x0430 */ 224,130, 48, 3,225, 92, 0, 3, 49,160,192, 3,225, 80, 0, 2, +/* 0x0440 */ 33,160, 0, 2,226,129, 16, 32,226, 78,224, 1,227, 94, 0, 0, +/* 0x0450 */ 170,255,255,241,227,192, 78,255,227,196, 64, 15,224,100, 48, 12, +/* 0x0460 */ 226,131, 62,255,226,131, 48, 15,226, 5, 32, 16,227,195, 62,255, +/* 0x0470 */ 227, 82, 0, 0,227,195, 48, 15,229,141, 48, 40, 21,141, 64, 32, +/* 0x0480 */ 26, 0, 0, 4,225,160, 48, 5,225,160, 0, 4,229,157, 16, 40, +/* 0x0490 */ 235,255,255, 83,229,141, 0, 32,229,157, 32, 32,227,160, 48, 52, +/* 0x04a0 */ 224,100,176, 2,224, 3, 3,155,226,134, 80, 32,229,141, 48, 36, +/* 0x04b0 */ 227,160, 48, 0,229,141, 48, 28,234, 0, 0,129,229,157,192, 12, +/* 0x04c0 */ 227, 92, 0, 0, 10, 0, 0, 8,229, 21, 48, 32,227, 83, 0, 6, +/* 0x04d0 */ 26, 0, 0, 5,229, 21, 32, 24,229,157, 0, 8,224,139, 32, 2, +/* 0x04e0 */ 227,160, 16, 3,235,255,255, 69,234, 0, 0,113,229, 21, 48, 32, +/* 0x04f0 */ 227, 83, 0, 1, 26, 0, 0,110,229, 21, 48, 8,229,159, 34, 48, +/* 0x0500 */ 226, 3, 48, 7,225,160, 49, 3,225,160, 67, 50,229, 21, 48, 24, +/* 0x0510 */ 224,139,144, 3,225,160, 42, 9,229, 21, 48, 16,225,160, 42, 34, +/* 0x0520 */ 229,157, 16, 12,229,141, 48, 44,224,131,112, 2,229, 21, 48, 12, +/* 0x0530 */ 227, 81, 0, 0,229,141,144, 48,226, 4,128, 7,229,141, 48, 20, +/* 0x0540 */ 224, 98, 96, 9, 10, 0, 0, 14,225,160, 0, 6,225,160, 16, 7, +/* 0x0550 */ 227,136, 32, 2,227,160, 48, 16,235,255,255, 33,225, 86, 0, 0, +/* 0x0560 */ 26, 0, 0, 68,229,157,192, 92,226, 20, 48, 4, 17,160, 48, 12, +/* 0x0570 */ 229,157, 0, 12,226,141, 16, 44,229,157, 32, 16,235,255,255, 63, +/* 0x0580 */ 234, 0, 0, 11,229, 21,192, 28,224, 98,192, 12,229,141,192, 4, +/* 0x0590 */ 229,157,192, 16,225,160, 0, 6,225,160, 16, 7,225,160, 32, 8, +/* 0x05a0 */ 227,160, 48, 18,229,141,192, 0,235,255,255, 4,225, 86, 0, 0, +/* 0x05b0 */ 26, 0, 0, 48,226,103, 48, 0,225,160, 74, 3,227, 24, 0, 2, +/* 0x05c0 */ 225,160, 74, 36, 10, 0, 0, 7,227, 84, 0, 0, 10, 0, 0, 5, +/* 0x05d0 */ 224,134, 16, 7,225,160, 32, 4,227,160, 48, 0,226, 82, 32, 1, +/* 0x05e0 */ 228,193, 48, 1, 26,255,255,251,229,157, 16, 12,227, 81, 0, 0, +/* 0x05f0 */ 10, 0, 0, 34,229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0, 23, +/* 0x0600 */ 229, 21, 48, 8,227, 19, 0, 1, 10, 0, 0, 20,229, 21, 32, 12, +/* 0x0610 */ 229, 21, 48, 16,225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 55, +/* 0x0620 */ 224,130, 48, 1,226,131, 48, 3,224,139, 48, 3,227,195, 32, 3, +/* 0x0630 */ 226, 98, 48, 0,225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7, +/* 0x0640 */ 154, 0, 0, 46,229,159, 48,236,229,130, 48, 4,229,157, 48, 24, +/* 0x0650 */ 229,157, 0, 8,229,130, 48, 0,227,160, 16, 0,235,255,254,231, +/* 0x0660 */ 225,160, 0, 6,225,160, 16, 7,225,160, 32, 8,235,255,254,209, +/* 0x0670 */ 227, 80, 0, 0, 10, 0, 0, 1,227,160, 0,127,235,255,254,192, +/* 0x0680 */ 229,157,192, 20,224,135, 48, 4,224,137, 16, 12,224,134, 64, 3, +/* 0x0690 */ 225, 84, 0, 1, 42, 0, 0, 6,224,100, 16, 1,225,160, 32, 8, +/* 0x06a0 */ 225,160, 0, 4,227,160, 48, 16,235,255,254,205,225, 84, 0, 0, +/* 0x06b0 */ 26,255,255,240,229,157, 16, 28,226,129, 16, 1,229,141, 16, 28, +/* 0x06c0 */ 226,133, 80, 32,225,218, 50,188,229,157, 32, 28,225, 82, 0, 3, +/* 0x06d0 */ 186,255,255,121,229,157, 48, 12,227, 83, 0, 0, 10, 0, 0, 14, +/* 0x06e0 */ 225,218, 49,176,227, 83, 0, 3, 10, 0, 0, 11,229,157,192, 32, +/* 0x06f0 */ 229,157, 16, 40,224,140, 0, 1,235,255,254,170,234, 0, 0, 6, +/* 0x0700 */ 229, 21, 48, 28,227, 83, 0, 0, 5,157, 32, 36, 0,129, 48, 2, +/* 0x0710 */ 2,131, 32, 8, 10,255,255,202,234,255,255,208,229,157, 48, 88, +/* 0x0720 */ 229,131,176, 0,229,154, 0, 24,224,139, 0, 0,226,141,208, 52, +/* 0x0730 */ 232,189,143,240,115, 81, 98, 64,225,160,240, 14,233, 45, 69,240, +/* 0x0740 */ 226, 77,208, 12,225,160,112, 0,225,160, 80, 1,226,141, 0, 48, +/* 0x0750 */ 226,141, 16, 40,225,160,160, 3,227,160, 48, 0,229,157, 96, 44, +/* 0x0760 */ 225,160,128, 2,229,157, 64, 48,235,255,254,196,229,157, 48, 52, +/* 0x0770 */ 227,160, 16, 5,224,100, 48, 3,225,214, 34,188,225,160, 0, 7, +/* 0x0780 */ 229,141, 48, 52,229,141, 80, 48,235,255,254,156,227,160, 16, 4, +/* 0x0790 */ 225,160, 0, 7,225,214, 34,186,235,255,254,152,226,134, 80, 52, +/* 0x07a0 */ 225,160, 16, 6,229,145, 48, 52,227, 83, 0, 1,226,129, 16, 32, +/* 0x07b0 */ 26,255,255,251,229,157, 32, 56,229,145, 48, 28,226,130, 32, 52, +/* 0x07c0 */ 224,130, 32, 3,225,160, 0, 7,227,160, 16, 3,235,255,254,139, +/* 0x07d0 */ 229,157, 48, 60,226,141,192, 12,229, 44, 48, 4,225,160, 16, 6, +/* 0x07e0 */ 226,141, 32, 48,225,160, 48, 7,225,160, 0, 8,229,141,192, 0, +/* 0x07f0 */ 229,141,160, 4,235,255,254,243,225,160, 64, 0,227,160, 16, 9, +/* 0x0800 */ 225,160, 32, 4,225,160, 0, 7,235,255,254,124,225,214, 18,188, +/* 0x0810 */ 227,160, 32, 0,234, 0, 0, 35,229,149, 48, 0,227, 83, 0, 3, +/* 0x0820 */ 26, 0, 0, 30,229,149, 48, 8,229,157, 0, 8,227,160, 16, 0, +/* 0x0830 */ 224,131, 0, 0,225,160, 32, 1,235,255,254, 86,226, 80, 80, 0, +/* 0x0840 */ 186, 0, 0, 4,225,160, 16, 6,227,160, 44, 2,235,255,254, 77, +/* 0x0850 */ 227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,235,255,254, 72, +/* 0x0860 */ 227,160,224, 0,225,160, 32, 14,226,141,192, 8,225,160, 16, 6, +/* 0x0870 */ 225,160, 48, 7,225,160, 0, 5,232,141, 80, 0,235,255,254,209, +/* 0x0880 */ 227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,225,160, 0, 7, +/* 0x0890 */ 235,255,254, 90,225,160, 0, 5,235,255,254, 64,234, 0, 0, 3, +/* 0x08a0 */ 226,133, 80, 32,226,130, 32, 1,225, 82, 0, 1,186,255,255,217, +/* 0x08b0 */ 225,160, 0, 4,226,141,208, 12,232,189,133,240 }; diff --git a/src/stub/armel-eabi-linux.elf-fold.h b/src/stub/armel-eabi-linux.elf-fold.h index a6e02b81..20255eab 100644 --- a/src/stub/armel-eabi-linux.elf-fold.h +++ b/src/stub/armel-eabi-linux.elf-fold.h @@ -1,5 +1,5 @@ /* armel-eabi-linux.elf-fold.h - created from armel-eabi-linux.elf-fold.bin, 2316 (0x90c) bytes + created from armel-eabi-linux.elf-fold.bin, 2344 (0x928) bytes This file is part of the UPX executable compressor. @@ -31,154 +31,156 @@ */ -#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_SIZE 2316 -#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_ADLER32 0x82e7c1d4 -#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_CRC32 0x3d72476c +#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_SIZE 2344 +#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_ADLER32 0x5928cd1a +#define STUB_ARMEL_EABI_LINUX_ELF_FOLD_CRC32 0x1bafcb22 -unsigned char stub_armel_eabi_linux_elf_fold[2316] = { +unsigned char stub_armel_eabi_linux_elf_fold[2344] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, -/* 0x0040 */ 0,128, 0, 0, 12, 9, 0, 0, 12, 9, 0, 0, 5, 0, 0, 0, -/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 12, 9, 0, 0, 0, 0, 0, 0, +/* 0x0040 */ 0,128, 0, 0, 40, 9, 0, 0, 40, 9, 0, 0, 5, 0, 0, 0, +/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 40, 9, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 20, 48,157,229, 16,224,157,229, 3, 49,141,224, 28, 48,131,226, /* 0x0090 */ 4, 0,147,228, 0, 0, 80,227,252,255,255, 26, 3, 32,160,225, /* 0x00a0 */ 8, 0,146,228, 0, 0, 80,227,252,255,255, 26, 8, 32,141,229, /* 0x00b0 */ 10,220, 77,226, 9, 64,160,225, 4,144,154,229, 13,128,160,225, -/* 0x00c0 */ 0,112,154,229, 88, 96,143,226, 12,144,137,226, 0,176,160,227, -/* 0x00d0 */ 20,193,159,229,248, 95, 45,233, 15, 0,189,232,170, 1, 0,235, -/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 31, 0,189,232, -/* 0x00f0 */ 3, 0,128,224, 3, 16, 65,224, 0, 48,160,227, 0, 64,160,227, -/* 0x0100 */ 0, 80,160,227, 0, 96,160,227, 0,128,160,227, 0,144,160,227, -/* 0x0110 */ 0,160,160,227, 0,176,160,227, 0,192,160,227, 91,112,160,227, -/* 0x0120 */ 4,240, 18,229,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, -/* 0x0130 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, -/* 0x0140 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, -/* 0x0150 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, -/* 0x0160 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225, -/* 0x0170 */ 7,192,160,225, 1,112,160,227, 0, 0, 0,239, 12,112,160,225, -/* 0x0180 */ 7,192,160,225, 3,112,160,227, 0, 0, 0,239, 12,112,160,225, -/* 0x0190 */ 14,240,160,225, 7,192,160,225, 4,112,160,227, 0, 0, 0,239, -/* 0x01a0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 5,112,160,227, -/* 0x01b0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225, -/* 0x01c0 */ 6,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225, -/* 0x01d0 */ 7,192,160,225, 45,112,160,227, 0, 0, 0,239, 12,112,160,225, -/* 0x01e0 */ 14,240,160,225, 7,192,160,225, 91,112,160,227, 0, 0, 0,239, -/* 0x01f0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225,125,112,160,227, -/* 0x0200 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 4, 80, 45,229, -/* 0x0210 */ 8, 80,157,229, 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225, -/* 0x0220 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225, -/* 0x0230 */ 4, 64,157,228, 4, 80,157,228, 14,240,160,225,200,193, 31,229, -/* 0x0240 */ 4, 80, 45,229, 0, 80,160,227, 4, 64, 45,229, 0, 64,224,227, -/* 0x0250 */ 12, 48,131,225,241,255,255,234, 0, 0, 80,227, 30,255, 47, 1, -/* 0x0260 */ 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26, -/* 0x0270 */ 4, 32,128,229, 30,255, 47,225, 0, 48,144,229, 4,224, 45,229, -/* 0x0280 */ 2, 0, 83,225, 4, 48,144,229, 2,224,160,225, 3,192,160, 33, -/* 0x0290 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,179,255,255,235, -/* 0x02a0 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227, -/* 0x02b0 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229, -/* 0x02c0 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, -/* 0x02d0 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225, -/* 0x02e0 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225, -/* 0x02f0 */ 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227, -/* 0x0300 */ 220,255,255,235, 4,192,157,229, 8, 16,157,229, 0, 0, 92,227, -/* 0x0310 */ 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, -/* 0x0320 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234, -/* 0x0330 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,139,255,255,235, -/* 0x0340 */ 12, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 92,225, -/* 0x0350 */ 248,255,255,138, 12, 0, 81,225, 31, 0, 0, 42, 16,192,141,229, -/* 0x0360 */ 12,192,157,229, 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, -/* 0x0370 */ 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,237,255,255, 26, -/* 0x0380 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,233,255,255, 26, -/* 0x0390 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10, -/* 0x03a0 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225, -/* 0x03b0 */ 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229, -/* 0x03c0 */ 54,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, -/* 0x03d0 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, -/* 0x03e0 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229, -/* 0x03f0 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, -/* 0x0400 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226, -/* 0x0410 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225, -/* 0x0420 */ 28, 16,145,229, 52,208, 77,226, 1, 96,138,224, 88, 16,157,229, -/* 0x0430 */ 176,193,218,225, 0, 16,145,229,188,226,218,225, 2, 0, 92,227, -/* 0x0440 */ 24, 16,141,229, 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, -/* 0x0450 */ 1,224, 78,226, 6, 16,160,225, 0, 0,224,227, 0,192,160,227, -/* 0x0460 */ 12, 32,141,229, 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, -/* 0x0470 */ 1, 0, 83,227, 6, 0, 0, 26, 8, 48,145,229, 20, 32,145,229, -/* 0x0480 */ 3, 0, 80,225, 3, 0,160, 33, 2, 48,131,224, 3, 0, 92,225, -/* 0x0490 */ 3,192,160, 49, 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227, -/* 0x04a0 */ 241,255,255,170,255, 78,192,227, 15, 64,196,227, 12, 48,100,224, -/* 0x04b0 */ 255, 62,131,226, 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, -/* 0x04c0 */ 0, 0, 82,227, 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21, -/* 0x04d0 */ 4, 0, 0, 26, 5, 48,160,225, 4, 0,160,225, 40, 16,157,229, -/* 0x04e0 */ 85,255,255,235, 32, 0,141,229, 32, 32,157,229, 52, 48,160,227, -/* 0x04f0 */ 2,176,100,224,155, 3, 3,224, 32, 80,134,226, 36, 48,141,229, -/* 0x0500 */ 0, 48,160,227, 28, 48,141,229,129, 0, 0,234, 12,192,157,229, -/* 0x0510 */ 0, 0, 92,227, 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, -/* 0x0520 */ 5, 0, 0, 26, 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, -/* 0x0530 */ 3, 16,160,227, 71,255,255,235,113, 0, 0,234, 32, 48, 21,229, -/* 0x0540 */ 1, 0, 83,227,110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229, -/* 0x0550 */ 7, 48, 3,226, 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, -/* 0x0560 */ 16, 32, 21,229, 3,144,139,224, 9, 58,160,225, 35, 58,160,225, -/* 0x0570 */ 12, 16,157,229, 44, 32,141,229, 3,112,130,224, 12, 32, 21,229, -/* 0x0580 */ 0, 0, 81,227, 48,144,141,229, 7,128, 4,226, 20, 32,141,229, -/* 0x0590 */ 9, 96, 99,224, 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225, -/* 0x05a0 */ 2, 32,136,227, 16, 48,160,227, 35,255,255,235, 0, 0, 86,225, -/* 0x05b0 */ 68, 0, 0, 26, 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17, -/* 0x05c0 */ 12, 0,157,229, 44, 16,141,226, 16, 32,157,229, 65,255,255,235, -/* 0x05d0 */ 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, -/* 0x05e0 */ 4,192,141,229, 16,192,157,229, 7, 16,160,225, 8, 32,160,225, -/* 0x05f0 */ 18, 48,160,227, 0,192,141,229, 3,255,255,235, 0, 0, 86,225, -/* 0x0600 */ 48, 0, 0, 26, 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227, -/* 0x0610 */ 36, 74,160,225, 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10, -/* 0x0620 */ 7, 16,134,224, 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, -/* 0x0630 */ 1, 48,193,228,251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, -/* 0x0640 */ 34, 0, 0, 10, 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26, -/* 0x0650 */ 8, 48, 21,229, 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229, -/* 0x0660 */ 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225, 55, 0, 0, 26, -/* 0x0670 */ 1, 48,130,224, 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, -/* 0x0680 */ 0, 48, 98,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, -/* 0x0690 */ 46, 0, 0,154, 24, 48,157,229, 8, 0,157,229, 0, 48,130,229, -/* 0x06a0 */ 224, 48,159,229, 0, 16,160,227, 4, 48,130,229,233,254,255,235, -/* 0x06b0 */ 6, 0,160,225, 7, 16,160,225, 8, 32,160,225,205,254,255,235, -/* 0x06c0 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,167,254,255,235, -/* 0x06d0 */ 20,192,157,229, 4, 48,135,224, 12, 16,137,224, 3, 64,134,224, -/* 0x06e0 */ 1, 0, 84,225, 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225, -/* 0x06f0 */ 4, 0,160,225, 16, 48,160,227,207,254,255,235, 0, 0, 84,225, -/* 0x0700 */ 240,255,255, 26, 28, 16,157,229, 32, 80,133,226, 1, 16,129,226, -/* 0x0710 */ 28, 16,141,229,188, 50,218,225, 28, 32,157,229, 3, 0, 82,225, -/* 0x0720 */ 121,255,255,186, 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10, -/* 0x0730 */ 176, 49,218,225, 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229, -/* 0x0740 */ 40, 16,157,229, 1, 0,140,224,160,254,255,235, 6, 0, 0,234, -/* 0x0750 */ 28, 48, 21,229, 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0, -/* 0x0760 */ 8, 32,131, 2,202,255,255, 10,208,255,255,234, 88, 48,157,229, -/* 0x0770 */ 0,176,131,229, 24, 0,154,229, 0, 0,139,224, 52,208,141,226, -/* 0x0780 */ 240,143,189,232, 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, -/* 0x0790 */ 12,208, 77,226, 0,112,160,225, 1, 80,160,225, 48, 0,141,226, -/* 0x07a0 */ 40, 16,141,226, 3,160,160,225, 0, 48,160,227, 44, 96,157,229, -/* 0x07b0 */ 2,128,160,225, 48, 64,157,229,198,254,255,235, 52, 48,157,229, -/* 0x07c0 */ 5, 16,160,227, 3, 48,100,224,188, 34,214,225, 7, 0,160,225, -/* 0x07d0 */ 52, 48,141,229, 48, 80,141,229,158,254,255,235, 4, 16,160,227, -/* 0x07e0 */ 7, 0,160,225,186, 34,214,225,154,254,255,235, 52, 80,134,226, -/* 0x07f0 */ 6, 16,160,225, 52, 48,145,229, 32, 16,129,226, 1, 0, 83,227, -/* 0x0800 */ 251,255,255, 26, 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, -/* 0x0810 */ 3, 32,130,224, 7, 0,160,225, 3, 16,160,227,141,254,255,235, -/* 0x0820 */ 60, 48,157,229, 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, -/* 0x0830 */ 48, 32,141,226, 7, 48,160,225, 8, 0,160,225, 0,192,141,229, -/* 0x0840 */ 4,160,141,229,243,254,255,235, 0, 64,160,225, 9, 16,160,227, -/* 0x0850 */ 4, 32,160,225, 7, 0,160,225,126,254,255,235,188, 18,214,225, -/* 0x0860 */ 0, 32,160,227, 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, -/* 0x0870 */ 30, 0, 0, 26, 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, -/* 0x0880 */ 0, 0,131,224, 1, 32,160,225, 70,254,255,235, 0, 80, 80,226, -/* 0x0890 */ 4, 0, 0,186, 6, 16,160,225, 2, 44,160,227, 55,254,255,235, -/* 0x08a0 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227, 47,254,255,235, -/* 0x08b0 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 6, 16,160,225, -/* 0x08c0 */ 7, 48,160,225, 5, 0,160,225, 0, 80,141,232,209,254,255,235, -/* 0x08d0 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, -/* 0x08e0 */ 92,254,255,235, 5, 0,160,225, 51,254,255,235, 3, 0, 0,234, -/* 0x08f0 */ 32, 80,133,226, 1, 32,130,226, 1, 0, 82,225,217,255,255,186, -/* 0x0900 */ 4, 0,160,225, 12,208,141,226,240,133,189,232 +/* 0x00c0 */ 0,112,154,229,116, 96,143,226, 12,144,137,226, 0,176,160,227, +/* 0x00d0 */ 48,193,159,229,248, 95, 45,233, 15, 0,189,232,177, 1, 0,235, +/* 0x00e0 */ 0,224,160,225, 28,208,141,226, 10,220,141,226, 8, 32,157,229, +/* 0x00f0 */ 4, 0, 18,229, 8, 16,128,226, 0, 32,160,227, 2,112,160,227, +/* 0x0100 */ 15,120,135,227, 0, 0, 0,239, 31, 0,189,232, 3, 0,128,224, +/* 0x0110 */ 3, 16, 65,224, 0, 48,160,227, 0, 64,160,227, 0, 80,160,227, +/* 0x0120 */ 0, 96,160,227, 0,128,160,227, 0,144,160,227, 0,160,160,227, +/* 0x0130 */ 0,176,160,227, 0,192,160,227, 91,112,160,227, 4,240, 18,229, +/* 0x0140 */ 255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225, +/* 0x0150 */ 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231, +/* 0x0160 */ 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,255, 52, 2,226, +/* 0x0170 */ 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, 1, 33,128,231, +/* 0x0180 */ 0, 0, 81,227,243,255,255, 26, 14,240,160,225, 7,192,160,225, +/* 0x0190 */ 1,112,160,227, 0, 0, 0,239, 12,112,160,225, 7,192,160,225, +/* 0x01a0 */ 3,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225, +/* 0x01b0 */ 7,192,160,225, 4,112,160,227, 0, 0, 0,239, 12,112,160,225, +/* 0x01c0 */ 14,240,160,225, 7,192,160,225, 5,112,160,227, 0, 0, 0,239, +/* 0x01d0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 6,112,160,227, +/* 0x01e0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225, +/* 0x01f0 */ 45,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225, +/* 0x0200 */ 7,192,160,225, 91,112,160,227, 0, 0, 0,239, 12,112,160,225, +/* 0x0210 */ 14,240,160,225, 7,192,160,225,125,112,160,227, 0, 0, 0,239, +/* 0x0220 */ 12,112,160,225, 14,240,160,225, 4, 80, 45,229, 8, 80,157,229, +/* 0x0230 */ 4, 64, 45,229, 8, 64,157,229, 37, 86,160,225, 7,192,160,225, +/* 0x0240 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 4, 64,157,228, +/* 0x0250 */ 4, 80,157,228, 14,240,160,225,228,193, 31,229, 4, 80, 45,229, +/* 0x0260 */ 0, 80,160,227, 4, 64, 45,229, 0, 64,224,227, 12, 48,131,225, +/* 0x0270 */ 241,255,255,234, 0, 0, 80,227, 30,255, 47, 1, 0, 48,144,229, +/* 0x0280 */ 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26, 4, 32,128,229, +/* 0x0290 */ 30,255, 47,225, 0, 48,144,229, 4,224, 45,229, 2, 0, 83,225, +/* 0x02a0 */ 4, 48,144,229, 2,224,160,225, 3,192,160, 33, 2, 32,160, 33, +/* 0x02b0 */ 3, 0, 0, 42,127, 0,160,227,179,255,255,235, 1, 48, 92,229, +/* 0x02c0 */ 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227, 1,192,140,226, +/* 0x02d0 */ 1, 16,129,226,248,255,255, 26, 4, 32,144,229, 0, 48,144,229, +/* 0x02e0 */ 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, +/* 0x02f0 */ 4,240,157,228,240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, +/* 0x0300 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 66, 0, 0,234, +/* 0x0310 */ 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,220,255,255,235, +/* 0x0320 */ 4,192,157,229, 8, 16,157,229, 0, 0, 92,227, 6, 0, 0, 26, +/* 0x0330 */ 248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229, +/* 0x0340 */ 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234, 0, 0, 81,227, +/* 0x0350 */ 1, 0, 0, 26,127, 0,160,227,139,255,255,235, 12, 0, 81,225, +/* 0x0360 */ 251,255,255,138, 0, 48,148,229, 3, 0, 92,225,248,255,255,138, +/* 0x0370 */ 12, 0, 81,225, 31, 0, 0, 42, 16,192,141,229, 12,192,157,229, +/* 0x0380 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 0,192,141,229, +/* 0x0390 */ 55,255, 47,225, 0, 0, 80,227,237,255,255, 26, 16, 16,157,229, +/* 0x03a0 */ 4, 48,157,229, 3, 0, 81,225,233,255,255, 26, 13, 32,221,229, +/* 0x03b0 */ 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10, 2, 12, 81,227, +/* 0x03c0 */ 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225, 3, 0, 0, 26, +/* 0x03d0 */ 2, 48,160,225, 4, 0,148,229, 14, 32,221,229, 54,255, 47,225, +/* 0x03e0 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, +/* 0x03f0 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, +/* 0x0400 */ 4, 16,148,229,162,255,255,235, 4, 48,157,229, 6, 0,148,232, +/* 0x0410 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, +/* 0x0420 */ 0, 0, 83,227,185,255,255, 26, 20,208,141,226,240,128,189,232, +/* 0x0430 */ 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225, 28, 16,145,229, +/* 0x0440 */ 52,208, 77,226, 1, 96,138,224, 88, 16,157,229,176,193,218,225, +/* 0x0450 */ 0, 16,145,229,188,226,218,225, 2, 0, 92,227, 24, 16,141,229, +/* 0x0460 */ 16, 0,141,229, 16, 80,160, 3, 0, 80,160, 19, 1,224, 78,226, +/* 0x0470 */ 6, 16,160,225, 0, 0,224,227, 0,192,160,227, 12, 32,141,229, +/* 0x0480 */ 8, 48,141,229, 11, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, +/* 0x0490 */ 6, 0, 0, 26, 8, 48,145,229, 20, 32,145,229, 3, 0, 80,225, +/* 0x04a0 */ 3, 0,160, 33, 2, 48,131,224, 3, 0, 92,225, 3,192,160, 49, +/* 0x04b0 */ 32, 16,129,226, 1,224, 78,226, 0, 0, 94,227,241,255,255,170, +/* 0x04c0 */ 255, 78,192,227, 15, 64,196,227, 12, 48,100,224,255, 62,131,226, +/* 0x04d0 */ 15, 48,131,226, 16, 32, 5,226,255, 62,195,227, 0, 0, 82,227, +/* 0x04e0 */ 15, 48,195,227, 40, 48,141,229, 32, 64,141, 21, 4, 0, 0, 26, +/* 0x04f0 */ 5, 48,160,225, 4, 0,160,225, 40, 16,157,229, 85,255,255,235, +/* 0x0500 */ 32, 0,141,229, 32, 32,157,229, 52, 48,160,227, 2,176,100,224, +/* 0x0510 */ 155, 3, 3,224, 32, 80,134,226, 36, 48,141,229, 0, 48,160,227, +/* 0x0520 */ 28, 48,141,229,129, 0, 0,234, 12,192,157,229, 0, 0, 92,227, +/* 0x0530 */ 8, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227, 5, 0, 0, 26, +/* 0x0540 */ 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, 3, 16,160,227, +/* 0x0550 */ 71,255,255,235,113, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227, +/* 0x0560 */ 110, 0, 0, 26, 8, 48, 21,229, 48, 34,159,229, 7, 48, 3,226, +/* 0x0570 */ 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, 16, 32, 21,229, +/* 0x0580 */ 3,144,139,224, 9, 58,160,225, 35, 58,160,225, 12, 16,157,229, +/* 0x0590 */ 44, 32,141,229, 3,112,130,224, 12, 32, 21,229, 0, 0, 81,227, +/* 0x05a0 */ 48,144,141,229, 7,128, 4,226, 20, 32,141,229, 9, 96, 99,224, +/* 0x05b0 */ 14, 0, 0, 10, 6, 0,160,225, 7, 16,160,225, 2, 32,136,227, +/* 0x05c0 */ 16, 48,160,227, 35,255,255,235, 0, 0, 86,225, 68, 0, 0, 26, +/* 0x05d0 */ 92,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229, +/* 0x05e0 */ 44, 16,141,226, 16, 32,157,229, 65,255,255,235, 11, 0, 0,234, +/* 0x05f0 */ 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, 4,192,141,229, +/* 0x0600 */ 16,192,157,229, 7, 16,160,225, 8, 32,160,225, 18, 48,160,227, +/* 0x0610 */ 0,192,141,229, 3,255,255,235, 0, 0, 86,225, 48, 0, 0, 26, +/* 0x0620 */ 0, 48,103,226, 3, 74,160,225, 2, 0, 24,227, 36, 74,160,225, +/* 0x0630 */ 7, 0, 0, 10, 0, 0, 84,227, 5, 0, 0, 10, 7, 16,134,224, +/* 0x0640 */ 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228, +/* 0x0650 */ 251,255,255, 26, 12, 16,157,229, 0, 0, 81,227, 34, 0, 0, 10, +/* 0x0660 */ 32, 48, 21,229, 1, 0, 83,227, 23, 0, 0, 26, 8, 48, 21,229, +/* 0x0670 */ 1, 0, 19,227, 20, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229, +/* 0x0680 */ 24, 16, 21,229, 3, 0, 82,225, 55, 0, 0, 26, 1, 48,130,224, +/* 0x0690 */ 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, 0, 48, 98,226, +/* 0x06a0 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 46, 0, 0,154, +/* 0x06b0 */ 24, 48,157,229, 8, 0,157,229, 0, 48,130,229,224, 48,159,229, +/* 0x06c0 */ 0, 16,160,227, 4, 48,130,229,233,254,255,235, 6, 0,160,225, +/* 0x06d0 */ 7, 16,160,225, 8, 32,160,225,205,254,255,235, 0, 0, 80,227, +/* 0x06e0 */ 1, 0, 0, 10,127, 0,160,227,167,254,255,235, 20,192,157,229, +/* 0x06f0 */ 4, 48,135,224, 12, 16,137,224, 3, 64,134,224, 1, 0, 84,225, +/* 0x0700 */ 6, 0, 0, 42, 1, 16,100,224, 8, 32,160,225, 4, 0,160,225, +/* 0x0710 */ 16, 48,160,227,207,254,255,235, 0, 0, 84,225,240,255,255, 26, +/* 0x0720 */ 28, 16,157,229, 32, 80,133,226, 1, 16,129,226, 28, 16,141,229, +/* 0x0730 */ 188, 50,218,225, 28, 32,157,229, 3, 0, 82,225,121,255,255,186, +/* 0x0740 */ 12, 48,157,229, 0, 0, 83,227, 14, 0, 0, 10,176, 49,218,225, +/* 0x0750 */ 3, 0, 83,227, 11, 0, 0, 10, 32,192,157,229, 40, 16,157,229, +/* 0x0760 */ 1, 0,140,224,160,254,255,235, 6, 0, 0,234, 28, 48, 21,229, +/* 0x0770 */ 0, 0, 83,227, 36, 32,157, 5, 2, 48,129, 0, 8, 32,131, 2, +/* 0x0780 */ 202,255,255, 10,208,255,255,234, 88, 48,157,229, 0,176,131,229, +/* 0x0790 */ 24, 0,154,229, 0, 0,139,224, 52,208,141,226,240,143,189,232, +/* 0x07a0 */ 64, 98, 81,115, 14,240,160,225,240, 69, 45,233, 12,208, 77,226, +/* 0x07b0 */ 0,112,160,225, 1, 80,160,225, 48, 0,141,226, 40, 16,141,226, +/* 0x07c0 */ 3,160,160,225, 0, 48,160,227, 44, 96,157,229, 2,128,160,225, +/* 0x07d0 */ 48, 64,157,229,198,254,255,235, 52, 48,157,229, 5, 16,160,227, +/* 0x07e0 */ 3, 48,100,224,188, 34,214,225, 7, 0,160,225, 52, 48,141,229, +/* 0x07f0 */ 48, 80,141,229,158,254,255,235, 4, 16,160,227, 7, 0,160,225, +/* 0x0800 */ 186, 34,214,225,154,254,255,235, 52, 80,134,226, 6, 16,160,225, +/* 0x0810 */ 52, 48,145,229, 32, 16,129,226, 1, 0, 83,227,251,255,255, 26, +/* 0x0820 */ 56, 32,157,229, 28, 48,145,229, 52, 32,130,226, 3, 32,130,224, +/* 0x0830 */ 7, 0,160,225, 3, 16,160,227,141,254,255,235, 60, 48,157,229, +/* 0x0840 */ 12,192,141,226, 4, 48, 44,229, 6, 16,160,225, 48, 32,141,226, +/* 0x0850 */ 7, 48,160,225, 8, 0,160,225, 0,192,141,229, 4,160,141,229, +/* 0x0860 */ 243,254,255,235, 0, 64,160,225, 9, 16,160,227, 4, 32,160,225, +/* 0x0870 */ 7, 0,160,225,126,254,255,235,188, 18,214,225, 0, 32,160,227, +/* 0x0880 */ 35, 0, 0,234, 0, 48,149,229, 3, 0, 83,227, 30, 0, 0, 26, +/* 0x0890 */ 8, 48,149,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, +/* 0x08a0 */ 1, 32,160,225, 70,254,255,235, 0, 80, 80,226, 4, 0, 0,186, +/* 0x08b0 */ 6, 16,160,225, 2, 44,160,227, 55,254,255,235, 2, 12, 80,227, +/* 0x08c0 */ 1, 0, 0, 10,127, 0,160,227, 47,254,255,235, 0,224,160,227, +/* 0x08d0 */ 14, 32,160,225, 8,192,141,226, 6, 16,160,225, 7, 48,160,225, +/* 0x08e0 */ 5, 0,160,225, 0, 80,141,232,209,254,255,235, 7, 16,160,227, +/* 0x08f0 */ 0, 64,160,225, 8, 32,157,229, 7, 0,160,225, 92,254,255,235, +/* 0x0900 */ 5, 0,160,225, 51,254,255,235, 3, 0, 0,234, 32, 80,133,226, +/* 0x0910 */ 1, 32,130,226, 1, 0, 82,225,217,255,255,186, 4, 0,160,225, +/* 0x0920 */ 12,208,141,226,240,133,189,232 }; diff --git a/src/stub/src/arm-linux.elf-entry.S b/src/stub/src/arm-linux.elf-entry.S index 08d64dd5..86b2ff92 100644 --- a/src/stub/src/arm-linux.elf-entry.S +++ b/src/stub/src/arm-linux.elf-entry.S @@ -102,6 +102,7 @@ _start: .globl _start mov r3,#1<<12 // 1-page crumb section ELFMAINXu stmdb sp!,{r0,r1,r2,r3,lr} // ADRU,LENU,space for sz_unc,crumb,MFLG +SP_MFLG= 4*4 D_sz_unc=2*4 // stack displacement to sz_unc mov r2,#PROT_READ | PROT_WRITE | PROT_EXEC ldr r3,[r12, #mflg - (start_params -4)] // MAP_{PRIVATE|ANON} @@ -124,9 +125,9 @@ copy: stmia r0!,{r1,r2,r3,r4,r5,r6,r7,r8}; blo copy sub r4,r0,r9 // relocation amount - ldr r1,[sp,#4*4] // MFLG + ldr r1,[sp,#SP_MFLG] adr r5,f_decompress - str r1,[r0],#4 // MFLG + str r1,[r0],#4 // MFLG at -4+ fold_begin mov lr,r0 // dst for unfolded code add r5,r5,r4 // relocated f_decompress diff --git a/src/stub/src/arm-linux.elf-fold.S b/src/stub/src/arm-linux.elf-fold.S index 75277030..c128ea22 100644 --- a/src/stub/src/arm-linux.elf-fold.S +++ b/src/stub/src/arm-linux.elf-fold.S @@ -40,6 +40,10 @@ sz_b_info = 12 sz_cpr= 4 b_method= 8 +#ifndef DEBUG /*{*/ +#define DEBUG 0 +#endif /*}*/ + @@ control just falls through, after this part and compiled C code @@ are uncompressed. @@ -95,10 +99,25 @@ SP_argc= 5*4 mov lr,r0 @ entry address add sp,sp,#(11-4)*4 add sp,sp,#MAX_ELF_HDR + OVERHEAD @ un-alloca + + @ __clear_cache(hatch, &hatch[2]); + ldr r2,[sp,#2*4] @ 1+ &Elf32_auxv_t[AT_NULL@.a_type] + ldr r0,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val + add r1,r0,#2*4 @ len= 2 instructions the "escape hatch" + mov r2,#0 + do_sys7t2 __ARM_NR_cacheflush @ scribble r7 + ldmia sp!,{r0,r1,r2,r3,r4} @ ADRU,LENU,1+ &Elf32_auxv_t[AT_NULL@.a_type],crumb,MFLG add r0,r0,r3 @ ADRU+=crumb sub r1,r1,r3 @ LENU-=crumb +#if DEBUG /*{*/ + ldr r3,[r2,#4 -2*4] @ Elf32_auxv_t[AT_NULL@.a_type].a_val + ldr r4,[r3,#0] @ 1st instr + ldr r5,[r3,#4] @ 2nd instr +#define TRACE_REGS r0-r12,r14,r15 + stmdb sp!,{TRACE_REGS}; mov r0,#4; bl trace +#endif /*}*/ mov r3,#0 @ clear registers: paranoia mov r4,#0 mov r5,#0 @@ -155,6 +174,57 @@ tst_unf: bne top_unf ret +#if DEBUG /*{*/ +TRACE_BUFLEN=512 +trace: + str lr,[sp,#(-1+ 15)*4] @ return pc; [remember: sp is not stored] + mov r4,sp @ &saved_r0 + sub sp,sp,#TRACE_BUFLEN + mov r2,sp @ output string + + mov r1,#'\n'; bl trace_hex @ In: r0 as label + mov r1,#'>'; strb r1,[r2],#1 + + mov r5,#3 @ rows to print +L600: @ each row + sub r0,r4,#TRACE_BUFLEN + sub r0,r0,sp + mov r0,r0,lsr #2; mov r1,#'\n'; bl trace_hex @ which block of 8 + + mov r6,#8 @ words per row +L610: @ each word + ldr r0,[r4],#4; mov r1,#' '; bl trace_hex @ next word + subs r6,r6,#1; bgt L610 + + subs r5,r5,#1; bgt L600 + + mov r0,#'\n'; strb r0,[r2],#1 + sub r2,r2,sp @ count + mov r1,sp @ buf + mov r0,#2 @ FD_STDERR +#if defined(ARMEL_EABI4) /*{*/ + mov r7,#__NR_write + swi 0 +#else /*}{*/ + swi __NR_write +#endif /*}*/ + add sp,sp,#TRACE_BUFLEN + ldmia sp!,{TRACE_REGS} + +trace_hex: // In: r0=val, r1=punctuation before, r2=ptr; Uses: r3, ip + strb r1,[r2],#1 @ punctuation + mov r3,#4*(8 -1) @ shift count + adr ip,hex +L620: + mov r1,r0,lsr r3 + and r1,r1,#0xf + ldrb r1,[ip, r1] + strb r1,[r2],#1 + subs r3,r3,#4; bge L620 + ret +hex: + .ascii "0123456789abcdef" +#endif /*}*/ .unreq ptr .unreq len .unreq cto @@ -171,6 +241,9 @@ __NR_mmap2 = 192 + __NR_SYSCALL_BASE __NR_mprotect = 125 + __NR_SYSCALL_BASE __NR_munmap = 91 + __NR_SYSCALL_BASE +__ARM_NR_BASE = 0x0f0000 + __NR_SYSCALL_BASE +__ARM_NR_cacheflush = 2 + __ARM_NR_BASE + .globl exit exit: do_sys __NR_exit @@ -224,10 +297,6 @@ mmap_privanon: .globl mmap_privanon b mmap_do -#ifndef DEBUG /*{*/ -#define DEBUG 0 -#endif /*}*/ - #if DEBUG /*{*/ div10: .globl div10 diff --git a/src/stub/src/i386-linux.elf-main.c b/src/stub/src/i386-linux.elf-main.c index 8af4c4de..4d59d17b 100644 --- a/src/stub/src/i386-linux.elf-main.c +++ b/src/stub/src/i386-linux.elf-main.c @@ -321,7 +321,7 @@ ERR_LAB } } -DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x\\n"); +DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x %%x\\n"); #if defined(__i386__) /*{*/ // Create (or find) an escape hatch to use when munmapping ourselves the stub. @@ -330,7 +330,7 @@ static void * make_hatch_x86(Elf32_Phdr const *const phdr, unsigned const reloc) { unsigned *hatch = 0; - DPRINTF((STR_make_hatch(),phdr,reloc)); + DPRINTF((STR_make_hatch(),phdr,reloc,0)); if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { // The format of the 'if' is // if ( ( (hatch = loc1), test_loc1 ) @@ -369,7 +369,7 @@ make_hatch_arm( ) { unsigned *hatch = 0; - DPRINTF((STR_make_hatch(),phdr,reloc)); + DPRINTF((STR_make_hatch(),phdr,reloc,sys_munmap)); if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { // The format of the 'if' is // if ( ( (hatch = loc1), test_loc1 ) @@ -404,7 +404,7 @@ make_hatch_mips( unsigned const frag_mask) { unsigned *hatch = 0; - DPRINTF((STR_make_hatch(),phdr,reloc)); + DPRINTF((STR_make_hatch(),phdr,reloc,frag_mask)); if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) { // Try page fragmentation just beyond .text . if ( ( (hatch = (void *)(phdr->p_memsz + phdr->p_vaddr + reloc)),