--android-shlib for arm32 and i386

... including work-around if no memfd_create() on early Android 32-bit
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_elf_enum.h
	modified:   p_lx_elf.cpp
	modified:   stub/src/arm.v4a-linux.elf-so_entry.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.dump *.map
This commit is contained in:
John Reiser
2024-08-25 14:55:55 -07:00
parent 7f062c7ca5
commit 8065eebca3
29 changed files with 15751 additions and 16253 deletions
+1
View File
@@ -138,6 +138,7 @@ class Dummy {
SHT_PREINIT_ARRAY = 16, /* Array of pre-constructors */
SHT_GROUP = 17, /* Section group */
SHT_SYMTAB_SHNDX = 18, /* Extended section indices */
SHT_RELR = 19, /* RELR relative relocations */
SHT_GNU_HASH = 0x6ffffff6, /* GNU-style hash table. */
SHT_GNU_LIBLIST = 0x6ffffff7, /* Prelink library list */
SHT_GNU_verdef = 0x6ffffffd, /* Version definition section. */
+71 -16
View File
@@ -5790,16 +5790,16 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
// Keep _Shdr for SHF_WRITE.
// Discard _Shdr with (0==sh_addr), except _Shdr[0]
// Keep ARM_ATTRIBUTES
unsigned const want_types_mask =
1u<<SHT_SYMTAB
| 1u<<SHT_RELA
| 1u<<SHT_PROGBITS // see comment above
unsigned const want_types_mask = 0
| 1u<<SHT_PROGBITS // see comment above, and special code below
| 1u<<SHT_HASH
| 1u<<SHT_DYNAMIC
| 1u<<SHT_NOTE
| 1u<<SHT_REL
| 1u<<SHT_DYNSYM
| 1u<<SHT_STRTAB // .shstrtab and .dynstr
| 1u<<SHT_RELA
| 1u<<SHT_RELR
| 1u<<SHT_DYNSYM // but not SHT_SYMTAB because compression confuses gdb
| 1u<<SHT_STRTAB // .shstrtab and DYNSYM.sh_link; not SYMTAB.sh_link
| 1u<<SHT_INIT_ARRAY
| 1u<<SHT_FINI_ARRAY
| 1u<<SHT_PREINIT_ARRAY
@@ -5809,7 +5809,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
| 1u<<(0x1f & SHT_GNU_HASH);
u32_t xct_off_hi = 0;
Elf32_Phdr const *ptr = phdri, *ptr_end = &phdri[e_phnum];
Elf32_Phdr *ptr = phdri, *ptr_end = &phdri[e_phnum];
for (; ptr < ptr_end; ++ptr) {
if (PT_LOAD32 == get_te32(&ptr->p_type)) {
u32_t hi = get_te32(&ptr->p_filesz)
@@ -5829,6 +5829,13 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
Elf32_Shdr *sh_out0 = (Elf32_Shdr *)mb_shdro.getVoidPtr();
Elf32_Shdr *sh_out = sh_out0;
Elf32_Shdr *sh_in = shdri;
Elf32_Shdr *n_shstrsec = nullptr;
// Some binutils does tail merging on section names; we don't.
// ".plt" == (4+ ".rel.plt"); ".hash" == (4+ ".gnu.hash")
MemBuffer mb_shstrings(100 + 2*get_te32(&sh_in[e_shstrndx].sh_size));
char *ptr_shstrings = (char *)&mb_shstrings[0];
*ptr_shstrings++ = '\0';
memset(sh_out, 0, sizeof(*sh_out)); // blank sh_out[0]
++sh_in; ++sh_out; unsigned n_sh_out = 1;
@@ -5840,6 +5847,8 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
unsigned sh_addr = get_te32(&sh_in->sh_addr);
unsigned sh_offset = get_te32(&sh_in->sh_offset);
unsigned sh_size = get_te32(&sh_in->sh_size);
unsigned sh_name = get_te32(&sh_in->sh_name);
char const *name = &shstrtab[sh_name];
if (ask_for[j]) { // Some previous _Shdr requested me
// Tell them my new index
set_te32(&sh_out0[ask_for[j]].sh_info, n_sh_out); // sh_info vs st_shndx
@@ -5853,7 +5862,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
|| (sec_arm_attr == sh_in)
|| (want_types_mask & (1<<(0x1f & sh_type)))
) {
*sh_out = *sh_in;
*sh_out = *sh_in; // *sh_in is a candidate for fowarding
if (sh_offset > xct_off) { // may slide down: earlier compression
if (sh_offset >= xct_off_hi) { // easy: so_slide down
if (sh_out->sh_addr) // change only if non-zero
@@ -5861,6 +5870,8 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
set_te32(&sh_out->sh_offset, so_slide + sh_offset);
}
else { // somewhere in compressed; try proportional (aligned)
// But note that PROGBITS without SHF_ALLOC
// will be dropped below.
u32_t const slice = xct_off + (~0xFu & (unsigned)(
(sh_offset - xct_off) *
((sh_offset - xct_off) / (float)(xct_off_hi - xct_off))));
@@ -5876,8 +5887,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
set_te16(&eho->e_shstrndx, sh_out -
(Elf32_Shdr *)mb_shdro.getVoidPtr());
}
if (j == e_shstrndx
|| sec_arm_attr == sh_in
if (sec_arm_attr == sh_in
|| (SHT_NOTE == sh_type && xct_off < sh_offset)
) { // append a copy
set_te32(&sh_out->sh_offset, total_out);
@@ -5887,26 +5897,70 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
total_out += sh_size;
} else
if (SHT_PROGBITS == sh_type) {
if (!(Elf32_Shdr::SHF_ALLOC & sh_flags)) {
// .debug_*, .gnu_debuglink etc. Typically compressed
// but not in RAM, and gdb (BFD) gets confused.
continue; // OMIT the commit: do not forward
} else
if (sh_offset <= xct_off
&& 0 == strcmp(".text", shstrtab + get_te32(&sh_in->sh_name)) ) {
&& 0 == strcmp(".text", name) ) {
// .text was compressed (but perhaps omitting some leading
// portion, if less than 4 PT_LOAD)
set_te32(&sh_out->sh_size, so_slide + sh_size);
// FIXME: so_slide is negative; avoid negative result
}
} else
if (SHT_STRTAB == sh_type) {
if (j == e_shstrndx) {
n_shstrsec = sh_out;
} else
if (0 == sh_in->sh_addr) { // .gnu_debuglink etc
set_te32(&sh_out->sh_offset, so_slide + sh_offset);
if (strcmp(".dynstr", name)) {
continue; // OMIT the commit of non-global symbol names
}
}
++sh_out; ++n_sh_out;
set_te32(&sh_out->sh_name, ptr_shstrings - (char *)mb_shstrings.getVoidPtr());
ptr_shstrings = 1+ stpcpy(ptr_shstrings, name); // past terminating '\0'
++sh_out; ++n_sh_out; // actually commit the fowarding
}
}
total_out = fpad4(fo, total_out);
unsigned len = ptr_shstrings - (char *)mb_shstrings.getVoidPtr();
set_te32(&n_shstrsec->sh_offset, total_out);
set_te32(&n_shstrsec->sh_size, len);
fo->write(mb_shstrings, len);
total_out += len;
total_out = fpad4(fo, total_out); // align _Shdr[]
set_te32(&eho->e_shoff, total_out);
unsigned len = (char *)sh_out - (char *)mb_shdro.getVoidPtr();
len = (char *)sh_out - (char *)mb_shdro.getVoidPtr();
set_te16(&eho->e_shnum, len / sizeof(*sh_out));
set_te16(&eho->e_shentsize, sizeof(Elf32_Shdr));
fo->write(mb_shdro, len);
total_out += len;
// Try to pacify gdb (before DT_INIT) by making it look like
// the compressed PT_LOAD extends all the way to the next PT_LOAD,
// with no gap in address space. Thus gdb should not complain about
// "Loadable section "..." [Shdr] outside of ELF segments [PT_LOAD]".
// gdb still "warning: section ... not found in .gnu_debugdata"
// because .gdb_debugdata is not present (or gets removed),
// but that is separate and "just" a warning.
ptr = (Elf32_Phdr *)(1+ eho);
for (ptr_end = &ptr[e_phnum]; ptr < ptr_end; ++ptr) {
if (PT_LOAD32 == get_te32(&ptr->p_type)) {
Elf32_Phdr *ptr2 = 1+ ptr;
for (; ptr2 < ptr_end; ++ptr2) {
if (PT_LOAD32 == get_te32(&ptr2->p_type)) {
unsigned pmask = 0u - get_te32(&ptr2->p_align);
set_te32(&ptr->p_memsz,
(pmask & get_te32(&ptr2->p_vaddr)) -
(pmask & get_te32(&ptr ->p_vaddr)) );
ptr = ptr_end; // force end of outer loop
ptr2 = ptr_end; // force end of inner loop
}
}
}
}
fo->seek(0, SEEK_SET);
fo->rewrite(eho, sizeof(*eho));
fo->seek(0, SEEK_END);
@@ -5971,6 +6025,7 @@ unsigned PackLinuxElf64::forward_Shdrs(OutputFile *fo, Elf64_Ehdr *const eho)
| 1u<<SHT_DYNAMIC
| 1u<<SHT_NOTE
| 1u<<SHT_REL
| 1u<<SHT_RELR
| 1u<<SHT_DYNSYM
| 1u<<SHT_STRTAB // .shstrtab and .dynstr
| 1u<<SHT_INIT_ARRAY
+572 -550
View File
File diff suppressed because it is too large Load Diff
+2022 -2001
View File
File diff suppressed because it is too large Load Diff
+623 -589
View File
File diff suppressed because it is too large Load Diff
+1891 -2257
View File
File diff suppressed because it is too large Load Diff
+578 -551
View File
File diff suppressed because it is too large Load Diff
+2035 -2009
View File
File diff suppressed because it is too large Load Diff
+629 -590
View File
File diff suppressed because it is too large Load Diff
+1922 -2283
View File
File diff suppressed because it is too large Load Diff
+572 -550
View File
File diff suppressed because it is too large Load Diff
+2024 -2003
View File
File diff suppressed because it is too large Load Diff
+216 -201
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-entry.h
created from i386-linux.elf-entry.bin, 3702 (0xe76) bytes
created from i386-linux.elf-entry.bin, 3947 (0xf6b) bytes
This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_ENTRY_SIZE 3702
#define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0x4fa4709a
#define STUB_I386_LINUX_ELF_ENTRY_CRC32 0xff4cbb95
#define STUB_I386_LINUX_ELF_ENTRY_SIZE 3947
#define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0xf459be98
#define STUB_I386_LINUX_ELF_ENTRY_CRC32 0xbb08e4d7
unsigned char stub_i386_linux_elf_entry[3702] = {
unsigned char stub_i386_linux_elf_entry[3947] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 220, 6, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 80, 7, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0,243, 15, 30,251,232,252,255,255,255, 1,219,116,
/* 0x0040 */ 2,243,195,139, 30,131,238,252, 17,219,195, 94,131,236, 28,141,
/* 0x0050 */ 124, 36, 32,232,198, 1, 0, 0,232,193, 1, 0, 0,139, 7,139,
@@ -74,199 +74,214 @@ unsigned char stub_i386_linux_elf_entry[3702] = {
/* 0x0220 */ 131,199, 4,133,192,117,247,195,204,195, 0, 0, 85,137,229, 86,
/* 0x0230 */ 83,131,236, 72,106, 64,104,255, 0, 0, 0,141,117,184, 86,232,
/* 0x0240 */ 252,255,255,255,131,196, 12,139, 93, 8,137,241,106,106, 88,205,
/* 0x0250 */ 128,137,194,133,192,120, 21, 15,183, 69,192, 37, 0,240, 0, 0,
/* 0x0260 */ 185, 0, 0, 0, 0, 61, 0, 64, 0, 0,116, 39,131,250,254,117,
/* 0x0270 */ 32,185,192, 1, 0, 0,139, 93, 8,106, 39, 88,205,128,137,194,
/* 0x0280 */ 131,248,254,117, 12,187,255,255,255,255,106, 1, 88,205,128,235,
/* 0x0290 */ 254,137,209,137,200,141,101,248, 91, 94,201,195,139, 68, 36, 4,
/* 0x02a0 */ 137,194,131,226, 31,131,224, 63,131,250, 26,118, 12,168, 32,116,
/* 0x02b0 */ 5,131,232, 70,235, 3,131,232, 43,131,192, 64,195, 85,137,229,
/* 0x02c0 */ 87, 86, 83,131,236, 20,232, 12, 0, 0, 0, 47,100, 97,116, 97,
/* 0x02d0 */ 47,100, 97,116, 97, 47, 0, 90,139, 2,139, 77, 8,137, 1,139,
/* 0x02e0 */ 66, 4,137, 65, 4,102,139, 66, 8,102,137, 65, 8,138, 66, 10,
/* 0x02f0 */ 136, 65, 10,198, 65, 11, 0, 81,232, 47,255,255,255,131,196, 4,
/* 0x0300 */ 232, 19, 0, 0, 0, 47,112,114,111, 99, 47,115,101,108,102, 47,
/* 0x0310 */ 99,109,100,108,105,110,101, 0, 94,185, 0, 0, 0, 0,137,243,
/* 0x0320 */ 137,202,106, 5, 88,205,128,137, 69,232,139,117, 12,186,255, 15,
/* 0x0330 */ 0, 0,137,195,137,241,106, 3, 88,205,128,137,199,139, 93,232,
/* 0x0340 */ 106, 6, 88,205,128,137,248,133,255, 15,136,178, 0, 0, 0,198,
/* 0x0350 */ 4, 62, 0,128, 62, 0,116, 6, 70,128, 62, 0,117,250,137,240,
/* 0x0360 */ 128, 62, 47,116, 6, 78,128, 62, 47,117,250, 41,240, 80, 86,139,
/* 0x0370 */ 69, 8,131,192, 10, 80,232,252,255,255,255,137,195,198, 0, 0,
/* 0x0380 */ 255,117, 8,232,164,254,255,255,131,196, 16,232, 7, 0, 0, 0,
/* 0x0390 */ 47, 99, 97, 99,104,101, 0, 90,139, 2,137, 3,102,139, 66, 4,
/* 0x03a0 */ 102,137, 67, 4,131,195, 6,198, 3, 0,255,117, 8,232,122,254,
/* 0x03b0 */ 255,255,232, 5, 0, 0, 0, 47,117,112,120, 0, 88,139, 0,137,
/* 0x03c0 */ 3,141,115, 4,106, 20, 88,205,128,137,195,137, 4, 36,232,201,
/* 0x03d0 */ 254,255,255,136, 6,137,216,193,232, 6,137, 4, 36,232,186,254,
/* 0x03e0 */ 255,255,136, 70, 1,137,216,193,232, 12,137, 4, 36,232,170,254,
/* 0x03f0 */ 255,255,131,196, 4,136, 70, 2,198, 70, 3, 0,184, 0, 0, 0,
/* 0x0400 */ 0,141,101,244, 91, 94, 95,201,195, 86, 83,139,116, 36, 12,139,
/* 0x0410 */ 92, 36, 16,139, 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,
/* 0x0420 */ 202, 32, 15,190,210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,
/* 0x0430 */ 194,137,208,117, 11, 73,131,249,255,117,226,184, 0, 0, 0, 0,
/* 0x0440 */ 91, 94,195, 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186,
/* 0x0450 */ 0, 0, 0, 0,232, 4, 0, 0, 0,117,112,120, 0, 94,185, 16,
/* 0x0460 */ 0, 0, 0,184,100, 1, 0, 0,137,243,205,128,137,199,131,248,
/* 0x0470 */ 234,117, 13,184,100, 1, 0, 0,137,243,137,209,205,128,137,199,
/* 0x0480 */ 133,255,121, 68,232, 9, 0, 0, 0, 47,100,101,118, 47,115,104,
/* 0x0490 */ 109, 0, 95,185, 2, 0, 65, 0,190,192, 1, 0, 0,137,251,137,
/* 0x04a0 */ 242,106, 5, 88,205,128,137,199,133,192,121, 28,232, 13, 0, 0,
/* 0x04b0 */ 0,109,101,109,102,100, 95, 99,114,101, 97,116,101, 0, 88, 80,
/* 0x04c0 */ 232,252,255,255,255,131,196, 4,141,181,244,239,255,255,137,243,
/* 0x04d0 */ 106,122, 88,205,128,199,133,220,239,255,255, 0, 0, 0, 0,232,
/* 0x04e0 */ 4, 0, 0, 0, 97,110,100, 0, 88,106, 3, 86, 80,232, 23,255,
/* 0x04f0 */ 255,255,131,196, 12,133,192,116, 45,232, 4, 0, 0, 0, 76,105,
/* 0x0500 */ 110, 0, 88,106, 3, 86, 80,232,253,254,255,255,131,196, 12,133,
/* 0x0510 */ 192,117, 19,128,189,118,240,255,255, 52,126, 10,199,133,220,239,
/* 0x0520 */ 255,255, 1, 0, 0, 0,131,189,220,239,255,255, 0, 15,133,128,
/* 0x0530 */ 0, 0, 0,131,125, 16, 0,117, 28,232,252,255,255,255,137, 69,
/* 0x0540 */ 16,133,192,117, 16,141,133,244,239,255,255,137, 69, 16,198,133,
/* 0x0550 */ 244,239,255,255, 0,131,189,220,239,255,255, 0,117, 85,131,255,
/* 0x0560 */ 218,117, 80,131,125, 16, 0,116, 74,139, 85, 16,128, 58, 0,117,
/* 0x0570 */ 26,141,133,244,239,255,255, 80, 82,232, 63,253,255,255,131,196,
/* 0x0580 */ 8,137,193,133,192, 15,136, 6, 1, 0, 0,185,194, 0, 0, 0,
/* 0x0590 */ 190,192, 1, 0, 0,139, 93, 16,137,242,106, 5, 88,205,128,137,
/* 0x05a0 */ 199,137,193,133,192, 15,136,230, 0, 0, 0,139, 93, 16,106, 10,
/* 0x05b0 */ 88,205,128,131,125, 12, 0, 15,132,153, 0, 0, 0,131,189,220,
/* 0x05c0 */ 239,255,255, 0,116, 22,137,251,139, 77, 12,106, 93, 88,205,128,
/* 0x05d0 */ 137,193,133,192, 15,136,183, 0, 0, 0,235,122,141,133,244,239,
/* 0x05e0 */ 255,255,104, 0, 16, 0, 0,106, 0, 80,232,252,255,255,255,139,
/* 0x05f0 */ 69, 12,137,133,200,239,255,255,131,196, 12,133,192,116, 73,141,
/* 0x0600 */ 181,244,239,255,255,139,149,200,239,255,255,137,149,176,239,255,
/* 0x0610 */ 255,129,250, 0, 16, 0, 0,118, 10,199,133,176,239,255,255, 0,
/* 0x0620 */ 16, 0, 0,137,251,137,241,139,149,176,239,255,255,106, 4, 88,
/* 0x0630 */ 205,128, 59,133,176,239,255,255,117, 73,139,133,176,239,255,255,
/* 0x0640 */ 41,133,200,239,255,255,117,189,185, 0, 0, 0, 0,137,251,137,
/* 0x0650 */ 202,106, 19, 88,205,128,106, 0, 87,131,125, 8, 1, 25,192,131,
/* 0x0660 */ 224,240,131,192, 17, 80,106, 3,255,117, 12,255,117, 8,232,252,
/* 0x0670 */ 255,255,255,137,194,131,196, 24,137,193, 61, 0,240,255,255,119,
/* 0x0680 */ 16,235, 7,185,228,255,255,255,235, 7,141, 71, 1,137,193, 9,
/* 0x0690 */ 209,137,200,141,101,244, 91, 94, 95,201,195, 90,232, 19, 0, 0,
/* 0x06a0 */ 0, 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,
/* 0x06b0 */ 116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0,
/* 0x06c0 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,
/* 0x06d0 */ 108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0,
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0700 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0710 */ 0, 0, 0, 0, 52, 0, 0, 0,103, 6, 0, 0, 0, 0, 0, 0,
/* 0x0720 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0730 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 9, 0, 0,
/* 0x0740 */ 72, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x0750 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0,155, 6, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x0780 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 9, 0, 0,
/* 0x0790 */ 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x07a0 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x07b0 */ 0, 0, 0, 0,165, 6, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x07d0 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 8, 0, 0,
/* 0x07e0 */ 224, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x07f0 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0800 */ 0, 0, 0, 0,252, 8, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x0840 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x0850 */ 15, 4, 0, 0, 88, 2, 0, 0, 18, 0, 1, 0, 17, 0, 0, 0,
/* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 25, 0, 0, 0,
/* 0x0870 */ 212, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 33, 0, 0, 0,
/* 0x0880 */ 122, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 38, 0, 0, 0,
/* 0x0890 */ 157, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 44, 0, 0, 0,
/* 0x08a0 */ 136, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 59, 0, 0, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 66, 0, 0, 0,
/* 0x08c0 */ 194, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 73, 0, 0, 0,
/* 0x08d0 */ 244, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 81, 0, 0, 0,
/* 0x08e0 */ 139, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 86, 0, 0, 0,
/* 0x08f0 */ 172, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 0,117,112,120,
/* 0x0900 */ 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 0, 79, 95, 66,
/* 0x0910 */ 73, 78, 70, 79, 0,109,101,109,112, 99,112,121, 0,109,109, 97,
/* 0x0920 */ 112, 0,117,110, 97,109,101, 0,103,101,116, 95,117,112,120,102,
/* 0x0930 */ 110, 95,112, 97,116,104, 0, 95,115,116, 97,114,116, 0,109,101,
/* 0x0940 */ 109,115,101,116, 0,109,121, 95, 98,107,112,116, 0,115,116, 97,
/* 0x0950 */ 116, 0,109,107,100,105,114, 0, 5, 0, 0, 0, 2, 2, 0, 0,
/* 0x0960 */ 165, 0, 0, 0, 2, 3, 0, 0, 82, 1, 0, 0, 2, 6, 0, 0,
/* 0x0970 */ 12, 2, 0, 0, 2, 10, 0, 0, 67, 3, 0, 0, 2, 5, 0, 0,
/* 0x0980 */ 141, 4, 0, 0, 2, 11, 0, 0, 6, 5, 0, 0, 2, 8, 0, 0,
/* 0x0990 */ 183, 5, 0, 0, 2, 10, 0, 0, 59, 6, 0, 0, 2, 6, 0, 0,
/* 0x09a0 */ 2, 0, 0, 0, 2, 1, 0, 0, 6, 0, 0, 0, 1, 4, 0, 0,
/* 0x09b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x09c0 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115,
/* 0x09d0 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32,
/* 0x09e0 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77,
/* 0x09f0 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32,
/* 0x0a00 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110,
/* 0x0a10 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77,
/* 0x0a20 */ 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 54, 54, 55, 32, 32,
/* 0x0a30 */ 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32,
/* 0x0a40 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76,
/* 0x0a50 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32,
/* 0x0a60 */ 48, 32, 32, 48, 32, 32, 48, 54, 57, 98, 32, 32, 50, 42, 42, 48,
/* 0x0a70 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79,
/* 0x0a80 */ 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x0a90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0aa0 */ 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48,
/* 0x0ab0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
/* 0x0ac0 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x0ad0 */ 78, 90, 10, 48, 48, 48, 48, 48, 52, 48,102, 32,103, 32, 32, 32,
/* 0x0ae0 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53,
/* 0x0af0 */ 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0b00 */ 100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32,
/* 0x0b10 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78,
/* 0x0b20 */ 70, 79, 10, 48, 48, 48, 48, 48, 49,100, 52, 32,103, 32, 32, 32,
/* 0x0b30 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,
/* 0x0b40 */ 101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 49, 55, 97, 32,
/* 0x0b50 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0b60 */ 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 49, 57,100,
/* 0x0b70 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0b80 */ 88, 32, 48, 32,117,110, 97,109,101, 10, 48, 48, 48, 48, 48, 49,
/* 0x0b90 */ 56, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0ba0 */ 73, 78, 88, 32, 48, 32,103,101,116, 95,117,112,120,102,110, 95,
/* 0x0bb0 */ 112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x0bc0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0bd0 */ 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 49, 99, 50,
/* 0x0be0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0bf0 */ 88, 32, 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48,
/* 0x0c00 */ 49,102, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0c10 */ 65, 73, 78, 88, 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48,
/* 0x0c20 */ 48, 48, 48, 48, 49, 56, 98, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x0c30 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,115,116, 97,116, 10,
/* 0x0c40 */ 48, 48, 48, 48, 48, 49, 97, 99, 32,103, 32, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,107,100,105,
/* 0x0c60 */ 114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x0c70 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
/* 0x0c80 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84,
/* 0x0c90 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0ca0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, 32,
/* 0x0cb0 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0cc0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48,
/* 0x0cd0 */ 48, 97, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0ce0 */ 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,
/* 0x0cf0 */ 110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 49, 53, 50, 32, 82,
/* 0x0d00 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d10 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 48, 99, 32, 82,
/* 0x0d20 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d30 */ 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 51, 52, 51,
/* 0x0d40 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d50 */ 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48,
/* 0x0d60 */ 52, 56,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0d70 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48,
/* 0x0d80 */ 48, 48, 48, 53, 48, 54, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0d90 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,
/* 0x0da0 */ 102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 53, 98, 55,
/* 0x0db0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0dc0 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 54,
/* 0x0dd0 */ 51, 98, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0de0 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67,
/* 0x0df0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x0e00 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x0e10 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x0e20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x0e30 */ 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0e40 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0e50 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 51, 56,
/* 0x0e60 */ 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95,
/* 0x0e70 */ 66, 73, 78, 70, 79, 10
/* 0x0250 */ 128,137,198,133,192,120, 21, 15,183, 69,192, 37, 0,240, 0, 0,
/* 0x0260 */ 186, 0, 0, 0, 0, 61, 0, 64, 0, 0,116, 44,131,254,254,117,
/* 0x0270 */ 15,185,192, 1, 0, 0,139, 93, 8,106, 39, 88,205,128,137,198,
/* 0x0280 */ 133,246,121, 18,131,125, 12, 0,116, 12, 86,255,117, 8,232,252,
/* 0x0290 */ 255,255,255,131,196, 8,137,242,137,208,141,101,248, 91, 94,201,
/* 0x02a0 */ 195,139, 68, 36, 4,137,194,131,226, 31,131,224, 63,131,250, 26,
/* 0x02b0 */ 118, 12,168, 32,116, 5,131,232, 70,235, 3,131,232, 43,131,192,
/* 0x02c0 */ 64,195, 85,137,229, 87, 86, 83,131,236, 32,232, 12, 0, 0, 0,
/* 0x02d0 */ 47,100, 97,116, 97, 47,100, 97,116, 97, 47, 0, 90,139, 2,139,
/* 0x02e0 */ 77, 8,137, 1,139, 66, 4,137, 65, 4,102,139, 66, 8,102,137,
/* 0x02f0 */ 65, 8,138, 66, 10,136, 65, 10,198, 65, 11, 0,106, 1, 81,232,
/* 0x0300 */ 40,255,255,255,131,196, 8,232, 19, 0, 0, 0, 47,112,114,111,
/* 0x0310 */ 99, 47,115,101,108,102, 47, 99,109,100,108,105,110,101, 0, 91,
/* 0x0320 */ 137, 93,220,185, 0, 0, 0, 0,137,202,106, 5, 88,205,128,137,
/* 0x0330 */ 69,240,139,117, 12,186,255, 15, 0, 0,137,195,137,241,106, 3,
/* 0x0340 */ 88,205,128,137,199,139, 93,240,106, 6, 88,205,128,133,255,121,
/* 0x0350 */ 11,255,117,220,232,252,255,255,255,131,196, 4,198, 4, 62, 0,
/* 0x0360 */ 128, 62, 0,116, 6, 70,128, 62, 0,117,250,137,247,128, 62, 47,
/* 0x0370 */ 116, 6, 78,128, 62, 47,117,250,137,117,224,137,248, 41,240, 80,
/* 0x0380 */ 86,139, 69, 8,131,192, 10, 80,232,252,255,255,255,137,195,198,
/* 0x0390 */ 0, 0,106, 0,255,117, 8,232,144,254,255,255,131,196, 20,131,
/* 0x03a0 */ 248,243,117, 87,232, 17, 0, 0, 0, 99,111,109, 46,116,101,114,
/* 0x03b0 */ 109,117,120, 47,102,105,108,101,115, 0, 90,139, 2,139, 77, 8,
/* 0x03c0 */ 137, 65, 11,139, 66, 4,137, 65, 15,139, 66, 8,137, 65, 19,139,
/* 0x03d0 */ 66, 12,137, 65, 23,137,202,131,194, 27,137,248, 43, 69,224, 80,
/* 0x03e0 */ 255,117,224, 82,232,252,255,255,255,137,195,198, 0, 0,106, 1,
/* 0x03f0 */ 255,117, 8,232, 52,254,255,255,131,196, 20,232, 7, 0, 0, 0,
/* 0x0400 */ 47, 99, 97, 99,104,101, 0, 90,139, 2,137, 3,102,139, 66, 4,
/* 0x0410 */ 102,137, 67, 4,141,115, 6,198, 6, 0,106, 1,255,117, 8,232,
/* 0x0420 */ 8,254,255,255,131,196, 8,232, 5, 0, 0, 0, 47,117,112,120,
/* 0x0430 */ 0, 88,139, 0,137, 6,141,126, 4,106, 20, 88,205,128,137,198,
/* 0x0440 */ 80,232, 91,254,255,255,136, 7,137,240,193,232, 6,137, 4, 36,
/* 0x0450 */ 232, 76,254,255,255,136, 71, 1,137,240,193,232, 12,137, 4, 36,
/* 0x0460 */ 232, 60,254,255,255,131,196, 4,136, 71, 2,198, 71, 3, 0,184,
/* 0x0470 */ 0, 0, 0, 0,141,101,244, 91, 94, 95,201,195, 86, 83,139,116,
/* 0x0480 */ 36, 12,139, 92, 36, 16,139, 76, 36, 20, 73,131,249,255,116, 30,
/* 0x0490 */ 138, 22,131,202, 32, 15,190,210,138, 3,131,200, 32, 15,190,192,
/* 0x04a0 */ 67, 70, 41,194,137,208,117, 11, 73,131,249,255,117,226,184, 0,
/* 0x04b0 */ 0, 0, 0, 91, 94,195, 85,137,229, 87, 86, 83,129,236, 68, 16,
/* 0x04c0 */ 0, 0,186, 0, 0, 0, 0,232, 4, 0, 0, 0,117,112,120, 0,
/* 0x04d0 */ 94,185, 16, 0, 0, 0,184,100, 1, 0, 0,137,243,205,128,137,
/* 0x04e0 */ 199,131,248,234,117, 13,184,100, 1, 0, 0,137,243,137,209,205,
/* 0x04f0 */ 128,137,199,133,255,121, 68,232, 9, 0, 0, 0, 47,100,101,118,
/* 0x0500 */ 47,115,104,109, 0, 95,185, 2, 0, 65, 0,190,192, 1, 0, 0,
/* 0x0510 */ 137,251,137,242,106, 5, 88,205,128,137,199,133,192,121, 28,232,
/* 0x0520 */ 13, 0, 0, 0,109,101,109,102,100, 95, 99,114,101, 97,116,101,
/* 0x0530 */ 0, 88, 80,232,252,255,255,255,131,196, 4,141,181,244,239,255,
/* 0x0540 */ 255,137,243,106,122, 88,205,128,199,133,220,239,255,255, 0, 0,
/* 0x0550 */ 0, 0,232, 4, 0, 0, 0, 97,110,100, 0, 88,106, 3, 86, 80,
/* 0x0560 */ 232, 23,255,255,255,131,196, 12,133,192,116, 45,232, 4, 0, 0,
/* 0x0570 */ 0, 76,105,110, 0, 88,106, 3, 86, 80,232,253,254,255,255,131,
/* 0x0580 */ 196, 12,133,192,117, 19,128,189,118,240,255,255, 52,126, 10,199,
/* 0x0590 */ 133,220,239,255,255, 1, 0, 0, 0,131,189,220,239,255,255, 0,
/* 0x05a0 */ 15,133,128, 0, 0, 0,131,125, 16, 0,117, 28,232,252,255,255,
/* 0x05b0 */ 255,137, 69, 16,133,192,117, 16,141,133,244,239,255,255,137, 69,
/* 0x05c0 */ 16,198,133,244,239,255,255, 0,131,189,220,239,255,255, 0,117,
/* 0x05d0 */ 85,131,255,218,117, 80,131,125, 16, 0,116, 74,139, 85, 16,128,
/* 0x05e0 */ 58, 0,117, 26,141,133,244,247,255,255, 80, 82,232,209,252,255,
/* 0x05f0 */ 255,131,196, 8,137,193,133,192, 15,136, 6, 1, 0, 0,185,194,
/* 0x0600 */ 0, 0, 0,190,192, 1, 0, 0,139, 93, 16,137,242,106, 5, 88,
/* 0x0610 */ 205,128,137,199,137,193,133,192, 15,136,230, 0, 0, 0,139, 93,
/* 0x0620 */ 16,106, 10, 88,205,128,131,125, 12, 0, 15,132,153, 0, 0, 0,
/* 0x0630 */ 131,189,220,239,255,255, 0,116, 22,137,251,139, 77, 12,106, 93,
/* 0x0640 */ 88,205,128,137,193,133,192, 15,136,183, 0, 0, 0,235,122,141,
/* 0x0650 */ 133,244,239,255,255,104, 0, 16, 0, 0,106, 0, 80,232,252,255,
/* 0x0660 */ 255,255,139, 69, 12,137,133,200,239,255,255,131,196, 12,133,192,
/* 0x0670 */ 116, 73,141,181,244,239,255,255,139,149,200,239,255,255,137,149,
/* 0x0680 */ 176,239,255,255,129,250, 0, 16, 0, 0,118, 10,199,133,176,239,
/* 0x0690 */ 255,255, 0, 16, 0, 0,137,251,137,241,139,149,176,239,255,255,
/* 0x06a0 */ 106, 4, 88,205,128, 59,133,176,239,255,255,117, 73,139,133,176,
/* 0x06b0 */ 239,255,255, 41,133,200,239,255,255,117,189,185, 0, 0, 0, 0,
/* 0x06c0 */ 137,251,137,202,106, 19, 88,205,128,106, 0, 87,131,125, 8, 1,
/* 0x06d0 */ 25,192,131,224,240,131,192, 17, 80,106, 3,255,117, 12,255,117,
/* 0x06e0 */ 8,232,252,255,255,255,137,194,131,196, 24,137,193, 61, 0,240,
/* 0x06f0 */ 255,255,119, 16,235, 7,185,228,255,255,255,235, 7,141, 71, 1,
/* 0x0700 */ 137,193, 9,209,137,200,141,101,244, 91, 94, 95,201,195, 90,232,
/* 0x0710 */ 19, 0, 0, 0, 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98,
/* 0x0720 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116,
/* 0x0730 */ 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0,
/* 0x0740 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0,
/* 0x0750 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x0780 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,218, 6, 0, 0,
/* 0x0790 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x07a0 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07b0 */ 204, 9, 0, 0, 96, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0,
/* 0x07c0 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0,
/* 0x07d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 14, 7, 0, 0, 10, 0, 0, 0,
/* 0x07e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x07f0 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0800 */ 44, 10, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
/* 0x0810 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
/* 0x0820 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 7, 0, 0, 53, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0840 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0850 */ 144, 8, 0, 0,224, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0,
/* 0x0860 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
/* 0x0870 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 9, 0, 0, 92, 0, 0, 0,
/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x08c0 */ 1, 0, 0, 0,130, 4, 0, 0, 88, 2, 0, 0, 18, 0, 1, 0,
/* 0x08d0 */ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x08e0 */ 25, 0, 0, 0,212, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x08f0 */ 33, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0900 */ 38, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0910 */ 44, 0, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0920 */ 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0930 */ 66, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0940 */ 73, 0, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0950 */ 81, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0960 */ 86, 0, 0, 0,172, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0970 */ 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x0980 */ 0, 79, 95, 66, 73, 78, 70, 79, 0,109,101,109,112, 99,112,121,
/* 0x0990 */ 0,109,109, 97,112, 0,117,110, 97,109,101, 0,103,101,116, 95,
/* 0x09a0 */ 117,112,120,102,110, 95,112, 97,116,104, 0, 95,115,116, 97,114,
/* 0x09b0 */ 116, 0,109,101,109,115,101,116, 0,109,121, 95, 98,107,112,116,
/* 0x09c0 */ 0,115,116, 97,116, 0,109,107,100,105,114, 0, 5, 0, 0, 0,
/* 0x09d0 */ 2, 2, 0, 0,165, 0, 0, 0, 2, 3, 0, 0, 82, 1, 0, 0,
/* 0x09e0 */ 2, 6, 0, 0, 12, 2, 0, 0, 2, 10, 0, 0, 91, 2, 0, 0,
/* 0x09f0 */ 2, 11, 0, 0, 33, 3, 0, 0, 2, 11, 0, 0, 85, 3, 0, 0,
/* 0x0a00 */ 2, 5, 0, 0,177, 3, 0, 0, 2, 5, 0, 0, 0, 5, 0, 0,
/* 0x0a10 */ 2, 11, 0, 0,121, 5, 0, 0, 2, 8, 0, 0, 42, 6, 0, 0,
/* 0x0a20 */ 2, 10, 0, 0,174, 6, 0, 0, 2, 6, 0, 0, 2, 0, 0, 0,
/* 0x0a30 */ 2, 1, 0, 0, 6, 0, 0, 0, 1, 4, 0, 0,102,105,108,101,
/* 0x0a40 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,105, 51,
/* 0x0a50 */ 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,
/* 0x0a60 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0a70 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32,
/* 0x0a80 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,
/* 0x0a90 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108,
/* 0x0aa0 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0ab0 */ 32, 32, 32, 32, 32, 32, 48, 54,100, 97, 32, 32, 48, 32, 32, 48,
/* 0x0ac0 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
/* 0x0ad0 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73,
/* 0x0ae0 */ 78, 90, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32, 48, 32, 32, 48,
/* 0x0af0 */ 32, 32, 48, 55, 48,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x0b00 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
/* 0x0b10 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x0b20 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0b30 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,
/* 0x0b40 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0b50 */ 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
/* 0x0b60 */ 48, 48, 48, 48, 52, 56, 50, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x0b70 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53, 56, 32,117,112,
/* 0x0b80 */ 120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 10, 48, 48,
/* 0x0b90 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x0ba0 */ 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 48,
/* 0x0bb0 */ 48, 48, 48, 48, 49,100, 52, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x0bc0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,101,109,112, 99,
/* 0x0bd0 */ 112,121, 10, 48, 48, 48, 48, 48, 49, 55, 97, 32,103, 32, 32, 32,
/* 0x0be0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,
/* 0x0bf0 */ 109, 97,112, 10, 48, 48, 48, 48, 48, 49, 57,100, 32,103, 32, 32,
/* 0x0c00 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0c10 */ 117,110, 97,109,101, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32,103,
/* 0x0c20 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0c30 */ 48, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,116,104,
/* 0x0c40 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116,
/* 0x0c60 */ 97,114,116, 10, 48, 48, 48, 48, 48, 49, 99, 50, 32,103, 32, 32,
/* 0x0c70 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0c80 */ 109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 49,102, 52, 32,
/* 0x0c90 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0ca0 */ 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48,
/* 0x0cb0 */ 49, 56, 98, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0cc0 */ 65, 73, 78, 88, 32, 48, 32,115,116, 97,116, 10, 48, 48, 48, 48,
/* 0x0cd0 */ 48, 49, 97, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0ce0 */ 77, 65, 73, 78, 88, 32, 48, 32,109,107,100,105,114, 10, 10, 82,
/* 0x0cf0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x0d00 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93,
/* 0x0d10 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x0d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x0d30 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 51, 56,
/* 0x0d40 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x0d50 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 97, 53, 32,
/* 0x0d60 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0d70 */ 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0d80 */ 100, 10, 48, 48, 48, 48, 48, 49, 53, 50, 32, 82, 95, 51, 56, 54,
/* 0x0d90 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,
/* 0x0da0 */ 112, 10, 48, 48, 48, 48, 48, 50, 48, 99, 32, 82, 95, 51, 56, 54,
/* 0x0db0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,
/* 0x0dc0 */ 115,101,116, 10, 48, 48, 48, 48, 48, 50, 53, 98, 32, 82, 95, 51,
/* 0x0dd0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,
/* 0x0de0 */ 121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 51, 50, 49, 32,
/* 0x0df0 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0e00 */ 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 51,
/* 0x0e10 */ 53, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0e20 */ 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48,
/* 0x0e30 */ 48, 48, 51, 98, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0e40 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, 10,
/* 0x0e50 */ 48, 48, 48, 48, 48, 53, 48, 48, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x0e60 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,
/* 0x0e70 */ 112,116, 10, 48, 48, 48, 48, 48, 53, 55, 57, 32, 82, 95, 51, 56,
/* 0x0e80 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,
/* 0x0e90 */ 116, 95,117,112,120,102,110, 95,112, 97,116,104, 10, 48, 48, 48,
/* 0x0ea0 */ 48, 48, 54, 50, 97, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0eb0 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 48,
/* 0x0ec0 */ 48, 48, 48, 48, 54, 97,101, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0ed0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 10,
/* 0x0ee0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x0ef0 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0f00 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69,
/* 0x0f10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x0f20 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51,
/* 0x0f30 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x0f40 */ 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 54,
/* 0x0f50 */ 32, 82, 95, 51, 56, 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0f60 */ 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};
+1025 -1010
View File
File diff suppressed because it is too large Load Diff
+209 -193
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-so_entry.h
created from i386-linux.elf-so_entry.bin, 3374 (0xd2e) bytes
created from i386-linux.elf-so_entry.bin, 3619 (0xe23) bytes
This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 3374
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x19a620f2
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xb8cf79df
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 3619
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x07bc6de7
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xcee1e975
unsigned char stub_i386_linux_elf_so_entry[3374] = {
unsigned char stub_i386_linux_elf_so_entry[3619] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 196, 6, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 56, 7, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0, 96,232, 71, 0, 0, 0, 1,219,116, 2,243,195,
/* 0x0040 */ 139, 30,131,238,252, 17,219,195, 94,102,131,126, 8, 2,116, 1,
/* 0x0050 */ 244,139, 14,141,137, 24, 1, 0, 0, 81,106, 90, 87,141, 66,234,
@@ -61,191 +61,207 @@ unsigned char stub_i386_linux_elf_so_entry[3374] = {
/* 0x0150 */ 4,106, 90, 88,205,128, 61, 0,240,255,255,114, 1,244,194, 24,
/* 0x0160 */ 0, 0, 0, 0, 85,137,229, 86, 83,131,236, 72,106, 64,104,255,
/* 0x0170 */ 0, 0, 0,141,117,184, 86,232,252,255,255,255,131,196, 12,139,
/* 0x0180 */ 93, 8,137,241,106,106, 88,205,128,137,194,133,192,120, 21, 15,
/* 0x0190 */ 183, 69,192, 37, 0,240, 0, 0,185, 0, 0, 0, 0, 61, 0, 64,
/* 0x01a0 */ 0, 0,116, 39,131,250,254,117, 32,185,192, 1, 0, 0,139, 93,
/* 0x01b0 */ 8,106, 39, 88,205,128,137,194,131,248,254,117, 12,187,255,255,
/* 0x01c0 */ 255,255,106, 1, 88,205,128,235,254,137,209,137,200,141,101,248,
/* 0x01d0 */ 91, 94,201,195,139, 68, 36, 4,137,194,131,226, 31,131,224, 63,
/* 0x01e0 */ 131,250, 26,118, 12,168, 32,116, 5,131,232, 70,235, 3,131,232,
/* 0x01f0 */ 43,131,192, 64,195, 85,137,229, 87, 86, 83,131,236, 20,232, 12,
/* 0x0200 */ 0, 0, 0, 47,100, 97,116, 97, 47,100, 97,116, 97, 47, 0, 90,
/* 0x0210 */ 139, 2,139, 77, 8,137, 1,139, 66, 4,137, 65, 4,102,139, 66,
/* 0x0220 */ 8,102,137, 65, 8,138, 66, 10,136, 65, 10,198, 65, 11, 0, 81,
/* 0x0230 */ 232, 47,255,255,255,131,196, 4,232, 19, 0, 0, 0, 47,112,114,
/* 0x0240 */ 111, 99, 47,115,101,108,102, 47, 99,109,100,108,105,110,101, 0,
/* 0x0250 */ 94,185, 0, 0, 0, 0,137,243,137,202,106, 5, 88,205,128,137,
/* 0x0260 */ 69,232,139,117, 12,186,255, 15, 0, 0,137,195,137,241,106, 3,
/* 0x0270 */ 88,205,128,137,199,139, 93,232,106, 6, 88,205,128,137,248,133,
/* 0x0280 */ 255, 15,136,178, 0, 0, 0,198, 4, 62, 0,128, 62, 0,116, 6,
/* 0x0290 */ 70,128, 62, 0,117,250,137,240,128, 62, 47,116, 6, 78,128, 62,
/* 0x02a0 */ 47,117,250, 41,240, 80, 86,139, 69, 8,131,192, 10, 80,232,252,
/* 0x02b0 */ 255,255,255,137,195,198, 0, 0,255,117, 8,232,164,254,255,255,
/* 0x02c0 */ 131,196, 16,232, 7, 0, 0, 0, 47, 99, 97, 99,104,101, 0, 90,
/* 0x02d0 */ 139, 2,137, 3,102,139, 66, 4,102,137, 67, 4,131,195, 6,198,
/* 0x02e0 */ 3, 0,255,117, 8,232,122,254,255,255,232, 5, 0, 0, 0, 47,
/* 0x02f0 */ 117,112,120, 0, 88,139, 0,137, 3,141,115, 4,106, 20, 88,205,
/* 0x0300 */ 128,137,195,137, 4, 36,232,201,254,255,255,136, 6,137,216,193,
/* 0x0310 */ 232, 6,137, 4, 36,232,186,254,255,255,136, 70, 1,137,216,193,
/* 0x0320 */ 232, 12,137, 4, 36,232,170,254,255,255,131,196, 4,136, 70, 2,
/* 0x0330 */ 198, 70, 3, 0,184, 0, 0, 0, 0,141,101,244, 91, 94, 95,201,
/* 0x0340 */ 195, 86, 83,139,116, 36, 12,139, 92, 36, 16,139, 76, 36, 20, 73,
/* 0x0350 */ 131,249,255,116, 30,138, 22,131,202, 32, 15,190,210,138, 3,131,
/* 0x0360 */ 200, 32, 15,190,192, 67, 70, 41,194,137,208,117, 11, 73,131,249,
/* 0x0370 */ 255,117,226,184, 0, 0, 0, 0, 91, 94,195, 85,137,229, 87, 86,
/* 0x0380 */ 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, 0,232, 4, 0, 0,
/* 0x0390 */ 0,117,112,120, 0, 94,185, 16, 0, 0, 0,184,100, 1, 0, 0,
/* 0x03a0 */ 137,243,205,128,137,199,131,248,234,117, 13,184,100, 1, 0, 0,
/* 0x03b0 */ 137,243,137,209,205,128,137,199,133,255,121, 68,232, 9, 0, 0,
/* 0x03c0 */ 0, 47,100,101,118, 47,115,104,109, 0, 95,185, 2, 0, 65, 0,
/* 0x03d0 */ 190,192, 1, 0, 0,137,251,137,242,106, 5, 88,205,128,137,199,
/* 0x03e0 */ 133,192,121, 28,232, 13, 0, 0, 0,109,101,109,102,100, 95, 99,
/* 0x03f0 */ 114,101, 97,116,101, 0, 88, 80,232,252,255,255,255,131,196, 4,
/* 0x0400 */ 141,181,244,239,255,255,137,243,106,122, 88,205,128,199,133,220,
/* 0x0410 */ 239,255,255, 0, 0, 0, 0,232, 4, 0, 0, 0, 97,110,100, 0,
/* 0x0420 */ 88,106, 3, 86, 80,232, 23,255,255,255,131,196, 12,133,192,116,
/* 0x0430 */ 45,232, 4, 0, 0, 0, 76,105,110, 0, 88,106, 3, 86, 80,232,
/* 0x0440 */ 253,254,255,255,131,196, 12,133,192,117, 19,128,189,118,240,255,
/* 0x0450 */ 255, 52,126, 10,199,133,220,239,255,255, 1, 0, 0, 0,131,189,
/* 0x0460 */ 220,239,255,255, 0, 15,133,128, 0, 0, 0,131,125, 16, 0,117,
/* 0x0470 */ 28,232,252,255,255,255,137, 69, 16,133,192,117, 16,141,133,244,
/* 0x0480 */ 239,255,255,137, 69, 16,198,133,244,239,255,255, 0,131,189,220,
/* 0x0490 */ 239,255,255, 0,117, 85,131,255,218,117, 80,131,125, 16, 0,116,
/* 0x04a0 */ 74,139, 85, 16,128, 58, 0,117, 26,141,133,244,239,255,255, 80,
/* 0x04b0 */ 82,232, 63,253,255,255,131,196, 8,137,193,133,192, 15,136, 6,
/* 0x04c0 */ 1, 0, 0,185,194, 0, 0, 0,190,192, 1, 0, 0,139, 93, 16,
/* 0x04d0 */ 137,242,106, 5, 88,205,128,137,199,137,193,133,192, 15,136,230,
/* 0x04e0 */ 0, 0, 0,139, 93, 16,106, 10, 88,205,128,131,125, 12, 0, 15,
/* 0x04f0 */ 132,153, 0, 0, 0,131,189,220,239,255,255, 0,116, 22,137,251,
/* 0x0500 */ 139, 77, 12,106, 93, 88,205,128,137,193,133,192, 15,136,183, 0,
/* 0x0510 */ 0, 0,235,122,141,133,244,239,255,255,104, 0, 16, 0, 0,106,
/* 0x0520 */ 0, 80,232,252,255,255,255,139, 69, 12,137,133,200,239,255,255,
/* 0x0530 */ 131,196, 12,133,192,116, 73,141,181,244,239,255,255,139,149,200,
/* 0x0540 */ 239,255,255,137,149,176,239,255,255,129,250, 0, 16, 0, 0,118,
/* 0x0550 */ 10,199,133,176,239,255,255, 0, 16, 0, 0,137,251,137,241,139,
/* 0x0560 */ 149,176,239,255,255,106, 4, 88,205,128, 59,133,176,239,255,255,
/* 0x0570 */ 117, 73,139,133,176,239,255,255, 41,133,200,239,255,255,117,189,
/* 0x0580 */ 185, 0, 0, 0, 0,137,251,137,202,106, 19, 88,205,128,106, 0,
/* 0x0590 */ 87,131,125, 8, 1, 25,192,131,224,240,131,192, 17, 80,106, 3,
/* 0x05a0 */ 255,117, 12,255,117, 8,232,252,255,255,255,137,194,131,196, 24,
/* 0x05b0 */ 137,193, 61, 0,240,255,255,119, 16,235, 7,185,228,255,255,255,
/* 0x05c0 */ 235, 7,141, 71, 1,137,193, 9,209,137,200,141,101,244, 91, 94,
/* 0x05d0 */ 95,201,195, 49,192,195, 85,137,229, 87,139, 77, 16,139, 69, 12,
/* 0x05e0 */ 139,125, 8,243,170, 95, 93,195, 85,137,229, 87, 86,139, 77, 16,
/* 0x05f0 */ 139,117, 12,139,125, 8,243,164,137,248, 94, 95, 93,195,204,195,
/* 0x0600 */ 83,141, 92, 36, 8,176, 90,232, 2, 0, 0, 0, 91,195, 15,182,
/* 0x0610 */ 192, 80,205,128, 90, 61, 0,240,255,255,115, 1,195,244,129,236,
/* 0x0620 */ 0, 2, 0, 0, 49,210,232, 16, 0, 0, 0, 47,112,114,111, 99,
/* 0x0630 */ 47,115,101,108,102, 47, 97,117,120,118, 0, 89,106,156, 91,184,
/* 0x0640 */ 39, 1, 0, 0,205,128,133,192,124, 40,137,197,186, 0, 2, 0,
/* 0x0650 */ 0,137,225,137,195,106, 3, 88,205,128,133,192,124, 20,137,193,
/* 0x0660 */ 137,230,173,133,192,116, 11,131,248, 6,173,116, 10,131,233, 8,
/* 0x0670 */ 117,240,184, 0, 16, 0, 0,247,216,129,196, 0, 2, 0, 0, 80,
/* 0x0680 */ 137,235,106, 6, 88,205,128, 95, 90,232, 16, 0, 0, 0, 0, 46,
/* 0x0690 */ 115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,
/* 0x06a0 */ 115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 69, 76, 70,
/* 0x06b0 */ 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73,
/* 0x06c0 */ 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
/* 0x06f0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x0700 */ 159, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x0710 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0720 */ 0, 0, 0, 0,232, 8, 0, 0, 64, 0, 0, 0, 6, 0, 0, 0,
/* 0x0730 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0,
/* 0x0740 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 5, 0, 0,
/* 0x0750 */ 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 40, 9, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0,
/* 0x0780 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0,
/* 0x0790 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6, 0, 0,
/* 0x07a0 */ 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x07b0 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 0, 0, 0, 0, 4, 8, 0, 0,160, 0, 0, 0, 7, 0, 0, 0,
/* 0x07d0 */ 4, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
/* 0x07e0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 8, 0, 0,
/* 0x07f0 */ 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0800 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0830 */ 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0840 */ 0, 0, 1, 0, 8, 0, 0, 0, 71, 3, 0, 0, 88, 2, 0, 0,
/* 0x0850 */ 18, 0, 1, 0, 24, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0,
/* 0x0860 */ 16, 0, 3, 0, 32, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
/* 0x0870 */ 16, 0, 3, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0880 */ 16, 0, 3, 0, 52, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 16, 0, 3, 0, 59, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 16, 0, 3, 0, 0, 95,115,116, 97,114,116, 0,117,112,120, 95,
/* 0x08b0 */ 109,109, 97,112, 95, 97,110,100, 95,102,100, 0,109,101,109,112,
/* 0x08c0 */ 99,112,121, 0,109,109, 97,112, 0,103,101,116, 95,117,112,120,
/* 0x08d0 */ 102,110, 95,112, 97,116,104, 0,109,101,109,115,101,116, 0,109,
/* 0x08e0 */ 121, 95, 98,107,112,116, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0,
/* 0x08f0 */ 67, 0, 0, 0, 2, 4, 0, 0, 68, 1, 0, 0, 2, 8, 0, 0,
/* 0x0900 */ 123, 2, 0, 0, 2, 5, 0, 0,197, 3, 0, 0, 2, 9, 0, 0,
/* 0x0910 */ 62, 4, 0, 0, 2, 7, 0, 0,239, 4, 0, 0, 2, 8, 0, 0,
/* 0x0920 */ 115, 5, 0, 0, 2, 6, 0, 0,183, 0, 0, 0, 2, 1, 0, 0,
/* 0x0930 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x0940 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115,
/* 0x0950 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32,
/* 0x0960 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77,
/* 0x0970 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32,
/* 0x0980 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110,
/* 0x0990 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77,
/* 0x09a0 */ 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 53, 57,102, 32, 32,
/* 0x09b0 */ 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32,
/* 0x09c0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76,
/* 0x09d0 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 98, 98, 32,
/* 0x09e0 */ 32, 48, 32, 32, 48, 32, 32, 48, 53,100, 51, 32, 32, 50, 42, 42,
/* 0x09f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66,
/* 0x0a00 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48,
/* 0x0a10 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0a20 */ 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x0a30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0a40 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x0a50 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x0a60 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0a70 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 51, 52, 55, 32,
/* 0x0a80 */ 103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0a90 */ 32, 48, 50, 53, 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,
/* 0x0aa0 */ 110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,103,
/* 0x0ab0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0ac0 */ 48, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 48,
/* 0x0ad0 */ 50,100, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0ae0 */ 73, 78, 90, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48,
/* 0x0af0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0b00 */ 65, 73, 78, 90, 32, 48, 32,103,101,116, 95,117,112,120,102,110,
/* 0x0b10 */ 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103,
/* 0x0b20 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0b30 */ 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 50,
/* 0x0b40 */ 98, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0b50 */ 78, 90, 32, 48, 32,109,121, 95, 98,107,112,116, 10, 10, 82, 69,
/* 0x0b60 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x0b70 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58,
/* 0x0b80 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x0b90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x0ba0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54,
/* 0x0bb0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0bc0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82,
/* 0x0bd0 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0be0 */ 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x0bf0 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 51, 56, 54, 95,
/* 0x0c00 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,
/* 0x0c10 */ 101,116, 10, 48, 48, 48, 48, 48, 50, 55, 98, 32, 82, 95, 51, 56,
/* 0x0c20 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x0c30 */ 109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 51, 99, 53, 32, 82,
/* 0x0c40 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 52, 51,
/* 0x0c60 */ 101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x0c70 */ 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,
/* 0x0c80 */ 116,104, 10, 48, 48, 48, 48, 48, 52,101,102, 32, 82, 95, 51, 56,
/* 0x0c90 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x0ca0 */ 109,115,101,116, 10, 48, 48, 48, 48, 48, 53, 55, 51, 32, 82, 95,
/* 0x0cb0 */ 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0cc0 */ 109,109, 97,112, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x0cd0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x0ce0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x0cf0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d00 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x0d10 */ 98, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0d20 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
/* 0x0180 */ 93, 8,137,241,106,106, 88,205,128,137,198,133,192,120, 21, 15,
/* 0x0190 */ 183, 69,192, 37, 0,240, 0, 0,186, 0, 0, 0, 0, 61, 0, 64,
/* 0x01a0 */ 0, 0,116, 44,131,254,254,117, 15,185,192, 1, 0, 0,139, 93,
/* 0x01b0 */ 8,106, 39, 88,205,128,137,198,133,246,121, 18,131,125, 12, 0,
/* 0x01c0 */ 116, 12, 86,255,117, 8,232,252,255,255,255,131,196, 8,137,242,
/* 0x01d0 */ 137,208,141,101,248, 91, 94,201,195,139, 68, 36, 4,137,194,131,
/* 0x01e0 */ 226, 31,131,224, 63,131,250, 26,118, 12,168, 32,116, 5,131,232,
/* 0x01f0 */ 70,235, 3,131,232, 43,131,192, 64,195, 85,137,229, 87, 86, 83,
/* 0x0200 */ 131,236, 32,232, 12, 0, 0, 0, 47,100, 97,116, 97, 47,100, 97,
/* 0x0210 */ 116, 97, 47, 0, 90,139, 2,139, 77, 8,137, 1,139, 66, 4,137,
/* 0x0220 */ 65, 4,102,139, 66, 8,102,137, 65, 8,138, 66, 10,136, 65, 10,
/* 0x0230 */ 198, 65, 11, 0,106, 1, 81,232, 40,255,255,255,131,196, 8,232,
/* 0x0240 */ 19, 0, 0, 0, 47,112,114,111, 99, 47,115,101,108,102, 47, 99,
/* 0x0250 */ 109,100,108,105,110,101, 0, 91,137, 93,220,185, 0, 0, 0, 0,
/* 0x0260 */ 137,202,106, 5, 88,205,128,137, 69,240,139,117, 12,186,255, 15,
/* 0x0270 */ 0, 0,137,195,137,241,106, 3, 88,205,128,137,199,139, 93,240,
/* 0x0280 */ 106, 6, 88,205,128,133,255,121, 11,255,117,220,232,252,255,255,
/* 0x0290 */ 255,131,196, 4,198, 4, 62, 0,128, 62, 0,116, 6, 70,128, 62,
/* 0x02a0 */ 0,117,250,137,247,128, 62, 47,116, 6, 78,128, 62, 47,117,250,
/* 0x02b0 */ 137,117,224,137,248, 41,240, 80, 86,139, 69, 8,131,192, 10, 80,
/* 0x02c0 */ 232,252,255,255,255,137,195,198, 0, 0,106, 0,255,117, 8,232,
/* 0x02d0 */ 144,254,255,255,131,196, 20,131,248,243,117, 87,232, 17, 0, 0,
/* 0x02e0 */ 0, 99,111,109, 46,116,101,114,109,117,120, 47,102,105,108,101,
/* 0x02f0 */ 115, 0, 90,139, 2,139, 77, 8,137, 65, 11,139, 66, 4,137, 65,
/* 0x0300 */ 15,139, 66, 8,137, 65, 19,139, 66, 12,137, 65, 23,137,202,131,
/* 0x0310 */ 194, 27,137,248, 43, 69,224, 80,255,117,224, 82,232,252,255,255,
/* 0x0320 */ 255,137,195,198, 0, 0,106, 1,255,117, 8,232, 52,254,255,255,
/* 0x0330 */ 131,196, 20,232, 7, 0, 0, 0, 47, 99, 97, 99,104,101, 0, 90,
/* 0x0340 */ 139, 2,137, 3,102,139, 66, 4,102,137, 67, 4,141,115, 6,198,
/* 0x0350 */ 6, 0,106, 1,255,117, 8,232, 8,254,255,255,131,196, 8,232,
/* 0x0360 */ 5, 0, 0, 0, 47,117,112,120, 0, 88,139, 0,137, 6,141,126,
/* 0x0370 */ 4,106, 20, 88,205,128,137,198, 80,232, 91,254,255,255,136, 7,
/* 0x0380 */ 137,240,193,232, 6,137, 4, 36,232, 76,254,255,255,136, 71, 1,
/* 0x0390 */ 137,240,193,232, 12,137, 4, 36,232, 60,254,255,255,131,196, 4,
/* 0x03a0 */ 136, 71, 2,198, 71, 3, 0,184, 0, 0, 0, 0,141,101,244, 91,
/* 0x03b0 */ 94, 95,201,195, 86, 83,139,116, 36, 12,139, 92, 36, 16,139, 76,
/* 0x03c0 */ 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190,210,
/* 0x03d0 */ 138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117, 11,
/* 0x03e0 */ 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 85,137,
/* 0x03f0 */ 229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, 0,232,
/* 0x0400 */ 4, 0, 0, 0,117,112,120, 0, 94,185, 16, 0, 0, 0,184,100,
/* 0x0410 */ 1, 0, 0,137,243,205,128,137,199,131,248,234,117, 13,184,100,
/* 0x0420 */ 1, 0, 0,137,243,137,209,205,128,137,199,133,255,121, 68,232,
/* 0x0430 */ 9, 0, 0, 0, 47,100,101,118, 47,115,104,109, 0, 95,185, 2,
/* 0x0440 */ 0, 65, 0,190,192, 1, 0, 0,137,251,137,242,106, 5, 88,205,
/* 0x0450 */ 128,137,199,133,192,121, 28,232, 13, 0, 0, 0,109,101,109,102,
/* 0x0460 */ 100, 95, 99,114,101, 97,116,101, 0, 88, 80,232,252,255,255,255,
/* 0x0470 */ 131,196, 4,141,181,244,239,255,255,137,243,106,122, 88,205,128,
/* 0x0480 */ 199,133,220,239,255,255, 0, 0, 0, 0,232, 4, 0, 0, 0, 97,
/* 0x0490 */ 110,100, 0, 88,106, 3, 86, 80,232, 23,255,255,255,131,196, 12,
/* 0x04a0 */ 133,192,116, 45,232, 4, 0, 0, 0, 76,105,110, 0, 88,106, 3,
/* 0x04b0 */ 86, 80,232,253,254,255,255,131,196, 12,133,192,117, 19,128,189,
/* 0x04c0 */ 118,240,255,255, 52,126, 10,199,133,220,239,255,255, 1, 0, 0,
/* 0x04d0 */ 0,131,189,220,239,255,255, 0, 15,133,128, 0, 0, 0,131,125,
/* 0x04e0 */ 16, 0,117, 28,232,252,255,255,255,137, 69, 16,133,192,117, 16,
/* 0x04f0 */ 141,133,244,239,255,255,137, 69, 16,198,133,244,239,255,255, 0,
/* 0x0500 */ 131,189,220,239,255,255, 0,117, 85,131,255,218,117, 80,131,125,
/* 0x0510 */ 16, 0,116, 74,139, 85, 16,128, 58, 0,117, 26,141,133,244,247,
/* 0x0520 */ 255,255, 80, 82,232,209,252,255,255,131,196, 8,137,193,133,192,
/* 0x0530 */ 15,136, 6, 1, 0, 0,185,194, 0, 0, 0,190,192, 1, 0, 0,
/* 0x0540 */ 139, 93, 16,137,242,106, 5, 88,205,128,137,199,137,193,133,192,
/* 0x0550 */ 15,136,230, 0, 0, 0,139, 93, 16,106, 10, 88,205,128,131,125,
/* 0x0560 */ 12, 0, 15,132,153, 0, 0, 0,131,189,220,239,255,255, 0,116,
/* 0x0570 */ 22,137,251,139, 77, 12,106, 93, 88,205,128,137,193,133,192, 15,
/* 0x0580 */ 136,183, 0, 0, 0,235,122,141,133,244,239,255,255,104, 0, 16,
/* 0x0590 */ 0, 0,106, 0, 80,232,252,255,255,255,139, 69, 12,137,133,200,
/* 0x05a0 */ 239,255,255,131,196, 12,133,192,116, 73,141,181,244,239,255,255,
/* 0x05b0 */ 139,149,200,239,255,255,137,149,176,239,255,255,129,250, 0, 16,
/* 0x05c0 */ 0, 0,118, 10,199,133,176,239,255,255, 0, 16, 0, 0,137,251,
/* 0x05d0 */ 137,241,139,149,176,239,255,255,106, 4, 88,205,128, 59,133,176,
/* 0x05e0 */ 239,255,255,117, 73,139,133,176,239,255,255, 41,133,200,239,255,
/* 0x05f0 */ 255,117,189,185, 0, 0, 0, 0,137,251,137,202,106, 19, 88,205,
/* 0x0600 */ 128,106, 0, 87,131,125, 8, 1, 25,192,131,224,240,131,192, 17,
/* 0x0610 */ 80,106, 3,255,117, 12,255,117, 8,232,252,255,255,255,137,194,
/* 0x0620 */ 131,196, 24,137,193, 61, 0,240,255,255,119, 16,235, 7,185,228,
/* 0x0630 */ 255,255,255,235, 7,141, 71, 1,137,193, 9,209,137,200,141,101,
/* 0x0640 */ 244, 91, 94, 95,201,195, 49,192,195, 85,137,229, 87,139, 77, 16,
/* 0x0650 */ 139, 69, 12,139,125, 8,243,170, 95, 93,195, 85,137,229, 87, 86,
/* 0x0660 */ 139, 77, 16,139,117, 12,139,125, 8,243,164,137,248, 94, 95, 93,
/* 0x0670 */ 195,204,195, 83,141, 92, 36, 8,176, 90,232, 2, 0, 0, 0, 91,
/* 0x0680 */ 195, 15,182,192, 80,205,128, 90, 61, 0,240,255,255,115, 1,195,
/* 0x0690 */ 244,129,236, 0, 2, 0, 0, 49,210,232, 16, 0, 0, 0, 47,112,
/* 0x06a0 */ 114,111, 99, 47,115,101,108,102, 47, 97,117,120,118, 0, 89,106,
/* 0x06b0 */ 156, 91,184, 39, 1, 0, 0,205,128,133,192,124, 40,137,197,186,
/* 0x06c0 */ 0, 2, 0, 0,137,225,137,195,106, 3, 88,205,128,133,192,124,
/* 0x06d0 */ 20,137,193,137,230,173,133,192,116, 11,131,248, 6,173,116, 10,
/* 0x06e0 */ 131,233, 8,117,240,184, 0, 16, 0, 0,247,216,129,196, 0, 2,
/* 0x06f0 */ 0, 0, 80,137,235,106, 6, 88,205,128, 95, 90,232, 16, 0, 0,
/* 0x0700 */ 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97,
/* 0x0710 */ 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108,
/* 0x0720 */ 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70,
/* 0x0730 */ 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0740 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0750 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 52, 0, 0, 0, 18, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0780 */ 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0,
/* 0x0790 */ 0, 0, 0, 0, 0, 0, 0, 0, 92, 9, 0, 0, 88, 0, 0, 0,
/* 0x07a0 */ 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
/* 0x07b0 */ 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 70, 6, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0,
/* 0x07e0 */ 0, 0, 0, 0, 0, 0, 0, 0,180, 9, 0, 0, 8, 0, 0, 0,
/* 0x07f0 */ 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
/* 0x0800 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 1, 7, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0,120, 8, 0, 0,160, 0, 0, 0,
/* 0x0840 */ 7, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
/* 0x0850 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0860 */ 24, 9, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0870 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 0, 0,186, 3, 0, 0,
/* 0x08c0 */ 88, 2, 0, 0, 18, 0, 1, 0, 24, 0, 0, 0, 21, 0, 0, 0,
/* 0x08d0 */ 0, 0, 0, 0, 16, 0, 3, 0, 32, 0, 0, 0, 45, 0, 0, 0,
/* 0x08e0 */ 0, 0, 0, 0, 16, 0, 3, 0, 37, 0, 0, 0, 0, 0, 0, 0,
/* 0x08f0 */ 0, 0, 0, 0, 16, 0, 3, 0, 52, 0, 0, 0, 3, 0, 0, 0,
/* 0x0900 */ 0, 0, 0, 0, 16, 0, 3, 0, 59, 0, 0, 0, 43, 0, 0, 0,
/* 0x0910 */ 0, 0, 0, 0, 16, 0, 3, 0, 0, 95,115,116, 97,114,116, 0,
/* 0x0920 */ 117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 0,
/* 0x0930 */ 109,101,109,112, 99,112,121, 0,109,109, 97,112, 0,103,101,116,
/* 0x0940 */ 95,117,112,120,102,110, 95,112, 97,116,104, 0,109,101,109,115,
/* 0x0950 */ 101,116, 0,109,121, 95, 98,107,112,116, 0, 0, 2, 0, 0, 0,
/* 0x0960 */ 2, 2, 0, 0, 67, 0, 0, 0, 2, 4, 0, 0, 68, 1, 0, 0,
/* 0x0970 */ 2, 8, 0, 0,147, 1, 0, 0, 2, 9, 0, 0, 89, 2, 0, 0,
/* 0x0980 */ 2, 9, 0, 0,141, 2, 0, 0, 2, 5, 0, 0,233, 2, 0, 0,
/* 0x0990 */ 2, 5, 0, 0, 56, 4, 0, 0, 2, 9, 0, 0,177, 4, 0, 0,
/* 0x09a0 */ 2, 7, 0, 0, 98, 5, 0, 0, 2, 8, 0, 0,230, 5, 0, 0,
/* 0x09b0 */ 2, 6, 0, 0,183, 0, 0, 0, 2, 1, 0, 0,102,105,108,101,
/* 0x09c0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,105, 51,
/* 0x09d0 */ 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,
/* 0x09e0 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x09f0 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32,
/* 0x0a00 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,
/* 0x0a10 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108,
/* 0x0a20 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0a30 */ 32, 32, 32, 32, 32, 32, 48, 54, 49, 50, 32, 32, 48, 32, 32, 48,
/* 0x0a40 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
/* 0x0a50 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73,
/* 0x0a60 */ 78, 90, 32, 32, 32, 32, 32, 32, 48, 98, 98, 32, 32, 48, 32, 32,
/* 0x0a70 */ 48, 32, 32, 48, 54, 52, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x0a80 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x0a90 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x0aa0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0ab0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48,
/* 0x0ac0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x0ad0 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x0ae0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32,
/* 0x0af0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,
/* 0x0b00 */ 114,116, 10, 48, 48, 48, 48, 48, 51, 98, 97, 32,103, 32, 32, 32,
/* 0x0b10 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53,
/* 0x0b20 */ 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0b30 */ 100, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,103, 32, 32, 32, 32,
/* 0x0b40 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,
/* 0x0b50 */ 109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 50,100, 32,103,
/* 0x0b60 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0b70 */ 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x0b80 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0b90 */ 32, 48, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,116,
/* 0x0ba0 */ 104, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103, 32, 32, 32, 32,
/* 0x0bb0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,
/* 0x0bc0 */ 109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 50, 98, 32,103, 32,
/* 0x0bd0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48,
/* 0x0be0 */ 32,109,121, 95, 98,107,112,116, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x0bf0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x0c00 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
/* 0x0c10 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x0c20 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x0c30 */ 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0c40 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0c50 */ 90, 10, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82, 95, 51, 56, 54,
/* 0x0c60 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120,
/* 0x0c70 */ 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 10, 48, 48, 48,
/* 0x0c80 */ 48, 48, 49, 52, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0c90 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 48,
/* 0x0ca0 */ 48, 48, 48, 48, 49, 57, 51, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0cb0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,
/* 0x0cc0 */ 116, 10, 48, 48, 48, 48, 48, 50, 53, 57, 32, 82, 95, 51, 56, 54,
/* 0x0cd0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95,
/* 0x0ce0 */ 98,107,112,116, 10, 48, 48, 48, 48, 48, 50, 56,100, 32, 82, 95,
/* 0x0cf0 */ 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d00 */ 109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 50,101, 57,
/* 0x0d10 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d20 */ 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48,
/* 0x0d30 */ 52, 51, 56, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0d40 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48,
/* 0x0d50 */ 48, 48, 48, 52, 98, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0d60 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,
/* 0x0d70 */ 102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 53, 54, 50,
/* 0x0d80 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d90 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 53,
/* 0x0da0 */ 101, 54, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0db0 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67,
/* 0x0dc0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x0dd0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x0de0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x0df0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x0e00 */ 48, 48, 48, 48, 48, 98, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0e10 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0e20 */ 78, 88, 10
};
+1015 -1134
View File
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -202,13 +202,13 @@ L70_ret:
sub mfd,r0,arg3
sub mfd,mfd,#1 // mfd
mov arg1,r4 // src
call f_decompress
call f_decompress; cmp r0,#0; beq 0f; bkpt; 0:
ldr arg3,[sp,#F_LENU]
ldr arg2,[sp,#F_ADRU]
mov arg1,mfd
str rPMASK,[arg2,#0] // forward the PAGE_MASK
call write
call write; cmp r0,arg3; beq 0f; bkpt; 0:
mov arg6,#0 // beginning of file
mov arg5,mfd
@@ -216,7 +216,7 @@ L70_ret:
mov arg3,#PROT_READ|PROT_EXEC // prot
ldr arg2,[sp,#F_LENU]
ldr arg1,[sp,#F_ADRU] // addr
do_sys __NR_mmap2
do_sys __NR_mmap2; ldr arg3,[sp,#F_ADRU]; cmp r0,arg3; beq 0f; bkpt; 0:
mov arg1,mfd
.unreq mfd
@@ -290,6 +290,7 @@ mempcpy: .globl mempcpy // (dst, src, n)
// Because called from C, then r7 is live; cannot use do_sys7t.
.globl memfd_create; memfd_create: do_sys2 __NR_memfd_create; ret
.globl close; close: do_sys __NR_close; ret
.globl exit; exit: do_sys __NR_exit; ret
.globl fdatasync; fdatasync: do_sys __NR_fdatasync; ret
.globl fsync; fsync: do_sys __NR_fsync; ret
.globl ftruncate; ftruncate: do_sys __NR_ftruncate; ret
+2 -1
View File
@@ -85,6 +85,7 @@ F_PMASK= 2 * NBPW // extra copy?
.globl upx_so_main // in arm.v?a-linux.elf-so_main.c
section SO_HEAD
ZERO:
PAGE_MASK: .word 0xfffff000 // default
qflg_data: .word 0 // QNX vs Linux: MAP_PRIVATE | MAP_ANONYMOUS
upxfn_path:.word 0 // displacement from "zero"
@@ -97,7 +98,7 @@ get_page_mask: .globl get_page_mask
ret
get_upxfn_path: .globl get_upxfn_path // char * (*)(void)
adr r1,fold_begin-3*NBPW // "zero"
adr r1,ZERO
ldr r0,[r1,#1*NBPW] // offset(upxfn_path)
cmp r0,#0; beq 1f // nullptr
add r0,r0,r1 // &path
+1 -2
View File
@@ -34,7 +34,7 @@
extern void my_bkpt(void const *arg1, ...);
#define DEBUG 1
#define DEBUG 0
// Pprotect is mprotect, but page-aligned on the lo end (Linux requirement)
unsigned Pprotect(void *, size_t, unsigned);
@@ -484,7 +484,6 @@ upx_so_main( // returns &escape_hatch
Elf32_Ehdr *elf_tmp // scratch for Elf32_Ehdr and Elf32_Phdrs
)
{
my_bkpt((void *)0x1234, so_info, so_args, elf_tmp);
unsigned long const page_mask = get_page_mask();
char *const va_load = (char *)&so_info->off_reloc - so_info->off_reloc;
So_info so_infc; // So_info Copy
+18 -9
View File
@@ -140,6 +140,7 @@ extern int fstatat(int dirfd, const char *restrict pathname,
struct stat *restrict statbuf, int flags);
#define ENOENT 2 /* no such name */
#define EACCES 13 /* permission denied */
#define EINVAL 22 /* invalid arguemnt */
#define ENOSPC 28 /* no space left on device */
#define ENOSYS 38 /* no such system call */
@@ -151,7 +152,7 @@ extern int stat(char const *path, struct stat *statbuf);
extern int mkdir(char const *path, unsigned mode);
__attribute__((__noinline__))
static int dir_check(char const *path)
static int dir_check(char const *path, int fatal)
{
struct stat sb;
memset(&sb,0xff, sizeof(sb)); // DEBUG aid
@@ -164,8 +165,8 @@ static int dir_check(char const *path)
if (-ENOENT == rv) {
rv = mkdir(path, S_IRWXU);
}
if (-ENOENT == rv) {
exit(-1);
if (rv < 0 && fatal) {
my_bkpt(path, rv); // required path not available
}
return rv;
}
@@ -206,14 +207,15 @@ static int create_upxfn_path(char *name, char *buf)
// Construct path "/data/data/$APP_NAME/cache/upxAAA".
// Note 'mempcpy' [with 'p' in the middle!] returns the end-of-string.
char *p = mempcpy(&name[0], addr_string("/data/data/"), 11); // '/' sentinel at end
p[0] = '\0'; dir_check(name);
p[0] = '\0'; dir_check(name, 1);
// Append the name of the app
int fd = open(addr_string("/proc/self/cmdline"), O_RDONLY, 0);
char const *q = addr_string("/proc/self/cmdline");
int fd = open(q, O_RDONLY, 0);
int rlen = read(fd, p= buf, -1+ PATH_MAX);
close(fd);
if (rlen < 0) {
return rlen; // failure
my_bkpt(q);
}
p[rlen] = '\0'; // insurance sentinel
// Kernel-parsed arguments are separated by '\0'.
@@ -223,12 +225,19 @@ static int create_upxfn_path(char *name, char *buf)
char *app_end = p;
// Sentinel '/' at name[10] provides safety for backing up.
while ('/' != *p) --p; // find last component of argv[0]
q = p;
p = mempcpy(&name[10], p, app_end - p);
p[0] = '\0'; dir_check(name);
p[0] = '\0';
if (-EACCES == dir_check(name, 0)) {
p = mempcpy(&name[11], addr_string("com.termux/files"), 16);
p = mempcpy(p, q, app_end - q);
p[0] = '\0';
dir_check(name, 1);
}
}
p = mempcpy(p, addr_string("/cache"), 6);
p[0] = '\0'; dir_check(name);
p[0] = '\0'; dir_check(name, 1);
p = mempcpy(p, addr_string("/upx"), 4);
pid_t pid = getpid();
p[0] = sixbit(pid >> 0*6);
@@ -347,7 +356,7 @@ unsigned long upx_mmap_and_fd( // returns (mapped_addr | (1+ fd))
}
if (!not_android && -ENOSYS == fd && pathname) {
if ('\0' == pathname[0]) { // first time; create the pathname and file
int rv = create_upxfn_path(pathname, u.buf);
int rv = create_upxfn_path(pathname, &u.buf[BUFLEN / 2]);
if (rv < 0) {
return rv;
}
+68 -63
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d4 0 0 0224 2**2 CONTENTS
2 ELFMAINX 074c 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 0248 upx_mmap_and_fd
00000500 g F ELFMAINX 024c upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -84,75 +84,80 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000388 R_ARM_PC24 read
00000394 R_ARM_PC24 close
000003b8 R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d0 R_ARM_PC24 ELFMAINX
00000314 R_ARM_PC24 my_bkpt
00000330 R_ARM_PC24 ELFMAINX
00000348 R_ARM_PC24 mempcpy
0000035c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 ELFMAINX
00000388 R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b4 R_ARM_PC24 my_bkpt
000003cc R_ARM_PC24 ELFMAINX
000003dc R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 mempcpy
00000400 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 mempcpy
0000042c R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000420 R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000448 R_ARM_PC24 mempcpy
00000450 R_ARM_PC24 getpid
00000458 R_ARM_PC24 ELFMAINX
00000464 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000488 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
00000454 R_ARM_PC24 mempcpy
00000468 R_ARM_PC24 ELFMAINX
0000046c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 mempcpy
000004a8 R_ARM_PC24 ELFMAINX
000004ac R_ARM_PC24 ELFMAINX
000004c4 R_ARM_PC24 mempcpy
000004cc R_ARM_PC24 getpid
000004d4 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
00000500 R_ARM_PC24 open
00000508 R_ARM_PC24 ELFMAINX
0000050c R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 my_bkpt
00000530 R_ARM_PC24 uname
00000534 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 ELFMAINX
000004ec R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
0000052c R_ARM_PC24 memfd_create
00000538 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 memfd_create
00000550 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 ELFMAINX
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
00000574 R_ARM_PC24 open
0000057c R_ARM_PC24 ELFMAINX
00000580 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 get_upxfn_path
000005ac R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005cc R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 open
000005f0 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 unlink
00000600 R_ARM_PC24 ELFMAINX
0000060c R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000620 R_ARM_PC24 ftruncate
00000598 R_ARM_PC24 my_bkpt
000005a4 R_ARM_PC24 uname
000005a8 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 get_upxfn_path
00000620 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 memset
0000065c R_ARM_PC24 write
00000664 R_ARM_PC24 ELFMAINX
0000066c R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 lseek
00000688 R_ARM_PC24 ELFMAINX
00000634 R_ARM_PC24 ELFMAINX
00000644 R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 ELFMAINX
0000065c R_ARM_PC24 open
00000668 R_ARM_PC24 ELFMAINX
00000670 R_ARM_PC24 unlink
00000678 R_ARM_PC24 ELFMAINX
00000684 R_ARM_PC24 ELFMAINX
0000068c R_ARM_PC24 ELFMAINX
00000694 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 mmap
00000698 R_ARM_PC24 ftruncate
000006a0 R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 memset
000006d4 R_ARM_PC24 write
000006dc R_ARM_PC24 ELFMAINX
000006e4 R_ARM_PC24 ELFMAINX
000006f4 R_ARM_PC24 lseek
00000700 R_ARM_PC24 ELFMAINX
00000704 R_ARM_PC24 ELFMAINX
0000070c R_ARM_PC24 ELFMAINX
00000730 R_ARM_PC24 mmap
+7 -7
View File
@@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x10cc
.text 0x0000000000000000 0x1144
.text 0x0000000000000000 0x348 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e8 memcpy
@@ -19,12 +19,12 @@ Linker script and memory map
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x498 tmp/arm.v4a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e0 0x0 tmp/arm.v4a-expand.o
.text 0x00000000000007e0 0x8ec tmp/arm.v4a-linux.elf-main2.o
0x0000000000001068 underlay
0x0000000000000f38 upx_main
.text 0x0000000000000348 0x510 tmp/arm.v4a-linux.elf-upxfd_android.o
0x000000000000060c upx_mmap_and_fd
.text 0x0000000000000858 0x0 tmp/arm.v4a-expand.o
.text 0x0000000000000858 0x8ec tmp/arm.v4a-linux.elf-main2.o
0x00000000000010e0 underlay
0x0000000000000fb0 upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o
+71 -64
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d8 0 0 0224 2**2 CONTENTS
2 ELFMAINX 0758 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 024c upx_mmap_and_fd
00000508 g F ELFMAINX 0250 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -84,75 +84,82 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000384 R_ARM_PC24 read
00000390 R_ARM_PC24 close
000003b4 R_ARM_PC24 ELFMAINX
000003c4 R_ARM_PC24 ELFMAINX
000003cc R_ARM_PC24 ELFMAINX
000003d8 R_ARM_PC24 ELFMAINX
000003e8 R_ARM_PC24 mempcpy
000003fc R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 ELFMAINX
00000418 R_ARM_PC24 mempcpy
0000030c R_ARM_PC24 ELFMAINX
00000318 R_ARM_PC24 my_bkpt
00000334 R_ARM_PC24 ELFMAINX
0000034c R_ARM_PC24 mempcpy
00000360 R_ARM_PC24 ELFMAINX
00000364 R_ARM_PC24 ELFMAINX
0000038c R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b0 R_ARM_PC24 ELFMAINX
000003b8 R_ARM_PC24 my_bkpt
000003d0 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003e4 R_ARM_PC24 ELFMAINX
000003f0 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 mempcpy
0000041c R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000428 R_ARM_PC24 ELFMAINX
0000042c R_ARM_PC24 ELFMAINX
00000444 R_ARM_PC24 mempcpy
0000044c R_ARM_PC24 getpid
00000454 R_ARM_PC24 ELFMAINX
00000460 R_ARM_PC24 ELFMAINX
0000044c R_ARM_PC24 mempcpy
00000458 R_ARM_PC24 mempcpy
0000046c R_ARM_PC24 ELFMAINX
00000484 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
000004fc R_ARM_PC24 open
00000504 R_ARM_PC24 ELFMAINX
00000508 R_ARM_PC24 ELFMAINX
00000520 R_ARM_PC24 my_bkpt
0000052c R_ARM_PC24 uname
00000530 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 ELFMAINX
00000550 R_ARM_PC24 ELFMAINX
00000564 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
0000057c R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
0000047c R_ARM_PC24 ELFMAINX
00000494 R_ARM_PC24 mempcpy
000004ac R_ARM_PC24 ELFMAINX
000004b0 R_ARM_PC24 ELFMAINX
000004c8 R_ARM_PC24 mempcpy
000004d0 R_ARM_PC24 getpid
000004d8 R_ARM_PC24 ELFMAINX
000004e4 R_ARM_PC24 ELFMAINX
000004f0 R_ARM_PC24 ELFMAINX
00000520 R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 memfd_create
00000540 R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 memfd_create
00000558 R_ARM_PC24 ELFMAINX
0000055c R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 open
00000580 R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 get_upxfn_path
000005a8 R_ARM_PC24 ELFMAINX
000005b0 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
0000059c R_ARM_PC24 my_bkpt
000005a8 R_ARM_PC24 uname
000005ac R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d0 R_ARM_PC24 ELFMAINX
000005e0 R_ARM_PC24 open
000005ec R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 unlink
000005fc R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 ELFMAINX
00000610 R_ARM_PC24 ELFMAINX
0000061c R_ARM_PC24 ftruncate
000005cc R_ARM_PC24 ELFMAINX
000005e0 R_ARM_PC24 ELFMAINX
000005e8 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 ELFMAINX
00000604 R_ARM_PC24 get_upxfn_path
00000624 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
00000638 R_ARM_PC24 memset
00000658 R_ARM_PC24 write
00000660 R_ARM_PC24 ELFMAINX
00000668 R_ARM_PC24 ELFMAINX
00000678 R_ARM_PC24 lseek
00000684 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
00000638 R_ARM_PC24 ELFMAINX
00000648 R_ARM_PC24 ELFMAINX
00000650 R_ARM_PC24 ELFMAINX
00000660 R_ARM_PC24 open
0000066c R_ARM_PC24 ELFMAINX
00000674 R_ARM_PC24 unlink
0000067c R_ARM_PC24 ELFMAINX
00000688 R_ARM_PC24 ELFMAINX
00000690 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 mmap
0000069c R_ARM_PC24 ftruncate
000006a4 R_ARM_PC24 ELFMAINX
000006a8 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 memset
000006d8 R_ARM_PC24 write
000006e0 R_ARM_PC24 ELFMAINX
000006e8 R_ARM_PC24 ELFMAINX
000006f8 R_ARM_PC24 lseek
00000704 R_ARM_PC24 ELFMAINX
00000708 R_ARM_PC24 ELFMAINX
00000710 R_ARM_PC24 ELFMAINX
00000734 R_ARM_PC24 mmap
+11 -11
View File
@@ -8,7 +8,7 @@ Linker script and memory map
TARGET(elf32-littlearm)
.text 0x0000000000000000 0x10d0
.text 0x0000000000000000 0x1150
*(.text)
.text 0x0000000000000000 0x348 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask
@@ -21,17 +21,17 @@ TARGET(elf32-littlearm)
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x49c tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e4 0x0 tmp/arm.v5a-expand.o
.text 0x00000000000007e4 0x8ec tmp/arm.v5a-linux.elf-main2.o
0x000000000000106c underlay
0x0000000000000f3c upx_main
.text 0x0000000000000348 0x51c tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000614 upx_mmap_and_fd
.text 0x0000000000000864 0x0 tmp/arm.v5a-expand.o
.text 0x0000000000000864 0x8ec tmp/arm.v5a-linux.elf-main2.o
0x00000000000010ec underlay
0x0000000000000fbc upx_main
*(.data)
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-expand.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-main2.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o
+68 -63
View File
@@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d4 0 0 0224 2**2 CONTENTS
2 ELFMAINX 074c 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 0248 upx_mmap_and_fd
00000500 g F ELFMAINX 024c upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@@ -84,75 +84,80 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000388 R_ARM_PC24 read
00000394 R_ARM_PC24 close
000003b8 R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d0 R_ARM_PC24 ELFMAINX
00000314 R_ARM_PC24 my_bkpt
00000330 R_ARM_PC24 ELFMAINX
00000348 R_ARM_PC24 mempcpy
0000035c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 ELFMAINX
00000388 R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b4 R_ARM_PC24 my_bkpt
000003cc R_ARM_PC24 ELFMAINX
000003dc R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 mempcpy
00000400 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 mempcpy
0000042c R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000420 R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000448 R_ARM_PC24 mempcpy
00000450 R_ARM_PC24 getpid
00000458 R_ARM_PC24 ELFMAINX
00000464 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000488 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
00000454 R_ARM_PC24 mempcpy
00000468 R_ARM_PC24 ELFMAINX
0000046c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 mempcpy
000004a8 R_ARM_PC24 ELFMAINX
000004ac R_ARM_PC24 ELFMAINX
000004c4 R_ARM_PC24 mempcpy
000004cc R_ARM_PC24 getpid
000004d4 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
00000500 R_ARM_PC24 open
00000508 R_ARM_PC24 ELFMAINX
0000050c R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 my_bkpt
00000530 R_ARM_PC24 uname
00000534 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 ELFMAINX
000004ec R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
0000052c R_ARM_PC24 memfd_create
00000538 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 memfd_create
00000550 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 ELFMAINX
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
00000574 R_ARM_PC24 open
0000057c R_ARM_PC24 ELFMAINX
00000580 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 get_upxfn_path
000005ac R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005cc R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 open
000005f0 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 unlink
00000600 R_ARM_PC24 ELFMAINX
0000060c R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000620 R_ARM_PC24 ftruncate
00000598 R_ARM_PC24 my_bkpt
000005a4 R_ARM_PC24 uname
000005a8 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 get_upxfn_path
00000620 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 memset
0000065c R_ARM_PC24 write
00000664 R_ARM_PC24 ELFMAINX
0000066c R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 lseek
00000688 R_ARM_PC24 ELFMAINX
00000634 R_ARM_PC24 ELFMAINX
00000644 R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 ELFMAINX
0000065c R_ARM_PC24 open
00000668 R_ARM_PC24 ELFMAINX
00000670 R_ARM_PC24 unlink
00000678 R_ARM_PC24 ELFMAINX
00000684 R_ARM_PC24 ELFMAINX
0000068c R_ARM_PC24 ELFMAINX
00000694 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 mmap
00000698 R_ARM_PC24 ftruncate
000006a0 R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 memset
000006d4 R_ARM_PC24 write
000006dc R_ARM_PC24 ELFMAINX
000006e4 R_ARM_PC24 ELFMAINX
000006f4 R_ARM_PC24 lseek
00000700 R_ARM_PC24 ELFMAINX
00000704 R_ARM_PC24 ELFMAINX
0000070c R_ARM_PC24 ELFMAINX
00000730 R_ARM_PC24 mmap
+7 -7
View File
@@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x10e0
.text 0x0000000000000000 0x1158
.text 0x0000000000000000 0x348 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e8 memcpy
@@ -19,12 +19,12 @@ Linker script and memory map
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x498 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e0 0x0 tmp/armeb.v4a-expand.o
.text 0x00000000000007e0 0x900 tmp/armeb.v4a-linux.elf-main2.o
0x000000000000107c underlay
0x0000000000000f48 upx_main
.text 0x0000000000000348 0x510 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x000000000000060c upx_mmap_and_fd
.text 0x0000000000000858 0x0 tmp/armeb.v4a-expand.o
.text 0x0000000000000858 0x900 tmp/armeb.v4a-linux.elf-main2.o
0x00000000000010f4 underlay
0x0000000000000fc0 upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o
+11 -8
View File
@@ -2,12 +2,12 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 0667 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 069b 2**0 CONTENTS
0 ELFMAINX 06da 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 070e 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ
0000040f g F ELFMAINX 0258 upx_mmap_and_fd
00000482 g F ELFMAINX 0258 upx_mmap_and_fd
00000000 *UND* 0 O_BINFO
000001d4 g ELFMAINX 0 mempcpy
0000017a g ELFMAINX 0 mmap
@@ -25,11 +25,14 @@ OFFSET TYPE VALUE
000000a5 R_386_PC32 upx_mmap_and_fd
00000152 R_386_PC32 mmap
0000020c R_386_PC32 memset
00000343 R_386_PC32 mempcpy
0000048d R_386_PC32 my_bkpt
00000506 R_386_PC32 get_upxfn_path
000005b7 R_386_PC32 memset
0000063b R_386_PC32 mmap
0000025b R_386_PC32 my_bkpt
00000321 R_386_PC32 my_bkpt
00000355 R_386_PC32 mempcpy
000003b1 R_386_PC32 mempcpy
00000500 R_386_PC32 my_bkpt
00000579 R_386_PC32 get_upxfn_path
0000062a R_386_PC32 memset
000006ae R_386_PC32 mmap
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
+8 -8
View File
@@ -7,17 +7,17 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xdf6
.text 0x0000000000000000 0xe6a
.text 0x0000000000000000 0x190 tmp/i386-linux.elf-fold.o
0x0000000000000008 get_page_mask
0x0000000000000015 get_upxfn_path
.text 0x0000000000000190 0x46f tmp/i386-linux.elf-upxfd_android.o
0x00000000000003a7 upx_mmap_and_fd
*fill* 0x00000000000005ff 0x1 00
.text 0x0000000000000600 0x0 tmp/i386-expand.o
.text 0x0000000000000600 0x7f6 tmp/i386-linux.elf-main2.o
0x0000000000000755 underlay
0x0000000000000ca2 upx_main
.text 0x0000000000000190 0x4e2 tmp/i386-linux.elf-upxfd_android.o
0x000000000000041a upx_mmap_and_fd
*fill* 0x0000000000000672 0x2 00
.text 0x0000000000000674 0x0 tmp/i386-expand.o
.text 0x0000000000000674 0x7f6 tmp/i386-linux.elf-main2.o
0x00000000000007c9 underlay
0x0000000000000d16 upx_main
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o