ELF layout for page holes when runtime PAGE_SIZE < .p_align

amd64 works
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   Makefile
	modified:   stub/amd64-linux.elf-entry.h
	modified:   stub/amd64-linux.elf-fold.h
	modified:   stub/amd64-linux.shlib-init.h
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/powerpc64-linux.elf-fold.h
	modified:   stub/powerpc64le-linux.elf-fold.h
	modified:   stub/src/amd64-linux.shlib-init.S
	modified:   stub/tmp/amd64-linux.elf-entry.bin.dump
	modified:   stub/tmp/amd64-linux.elf-fold.map
	modified:   stub/tmp/amd64-linux.shlib-init.bin.dump
	modified:   stub/tmp/arm64-linux.elf-fold.map
	modified:   stub/tmp/powerpc64-linux.elf-fold.map
	modified:   stub/tmp/powerpc64le-linux.elf-fold.map
This commit is contained in:
John Reiser
2020-05-09 08:05:05 -07:00
committed by Markus F.X.J. Oberhumer
parent a3b2cde58d
commit 926481dace
18 changed files with 1562 additions and 1542 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
# #
# build configuration options for this Makefile # build configuration options for this Makefile
BUILD_TYPE_DEBUG ?= 0 BUILD_TYPE_DEBUG ?= 1
BUILD_TYPE_SANITIZE ?= 0 BUILD_TYPE_SANITIZE ?= 0
BUILD_USE_DEPEND ?= 1 BUILD_USE_DEPEND ?= 1
+112 -98
View File
@@ -366,14 +366,33 @@ off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output
return fpad4(fo); // MATCH03 return fpad4(fo); // MATCH03
} }
// C_BASE covers the convex hull of the PT_LOAD of the uncompressed module.
// It has (PF_W & .p_flags), and is ".bss": empty (0==.p_filesz, except a bug
// in Linux kernel forces 0x1000==.p_filesz) with .p_memsz equal to the brk(0).
// It is first in order to reserve all // pages, in particular so that if
// (64K == .p_align) but at runtime (4K == PAGE_SIZE) then the Linux kernel
// does not put [vdso] and [vvar] into alignment holes that the UPX runtime stub
// will overwrite.
//
// Note that C_TEXT[.p_vaddr, +.p_memsz) is a subset of C_BASE.
// This requires that the kernel process the ELFxx_Phdr in ascending order,
// and does not mind the overlap. The UPX runtime stub will "re-program"
// the memory regions anyway.
enum { // ordinals in ELFxx_Phdr[] of compressed output
C_BASE = 0 // reserve address space
, C_TEXT = 1 // compressed data and stub
, C_NOTE = 2 // PT_NOTE copied from input
, C_GSTK = 3 // PT_GNU_STACK; will be 2 if no PT_NOTE
};
off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
{ {
off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs
// NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page
unsigned v_hole = sz_pack2 + lsize; unsigned v_hole = sz_pack2 + lsize;
set_te32(&elfout.phdr[0].p_filesz, v_hole); set_te32(&elfout.phdr[C_TEXT].p_filesz, v_hole);
set_te32(&elfout.phdr[0].p_memsz, v_hole); set_te32(&elfout.phdr[C_TEXT].p_memsz, v_hole);
// Then compressed gaps (including debuginfo.) // Then compressed gaps (including debuginfo.)
unsigned total_in = 0, total_out = 0; unsigned total_in = 0, total_out = 0;
for (unsigned k = 0; k < e_phnum; ++k) { for (unsigned k = 0; k < e_phnum; ++k) {
@@ -391,8 +410,8 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
fo->write(&hdr, sizeof(hdr)); fo->write(&hdr, sizeof(hdr));
flen = fpad4(fo); flen = fpad4(fo);
set_te32(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize);
set_te32(&elfout.phdr[0].p_memsz, sz_pack2 + lsize); set_te32(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize);
if (0==xct_off) { // not shared library; adjust PT_LOAD if (0==xct_off) { // not shared library; adjust PT_LOAD
// .p_align can be big for segments, but Linux uses 4KiB pages. // .p_align can be big for segments, but Linux uses 4KiB pages.
// This allows [vvar], [vdso], etc to sneak into the gap // This allows [vvar], [vdso], etc to sneak into the gap
@@ -403,13 +422,13 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft)
? page_mask // reducing to 4KiB DOES NOT WORK ?? ? page_mask // reducing to 4KiB DOES NOT WORK ??
: ((~(unsigned)0)<<12); : ((~(unsigned)0)<<12);
pm = page_mask; // Revert until consequences can be analyzed pm = page_mask; // Revert until consequences can be analyzed
v_hole = pm & (~pm + v_hole + get_te32(&elfout.phdr[0].p_vaddr)); v_hole = pm & (~pm + v_hole + get_te32(&elfout.phdr[C_TEXT].p_vaddr));
set_te32(&elfout.phdr[1].p_vaddr, v_hole); set_te32(&elfout.phdr[C_BASE].p_vaddr, v_hole);
set_te32(&elfout.phdr[1].p_align, ((unsigned)0) - pm); set_te32(&elfout.phdr[C_BASE].p_align, ((unsigned)0) - pm);
elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr; elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr;
elfout.phdr[1].p_offset = 0; elfout.phdr[C_BASE].p_offset = 0;
set_te32(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole); set_te32(&elfout.phdr[C_BASE].p_memsz, getbrk(phdri, e_phnum) - v_hole);
set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R);
} }
if (0!=xct_off) { // shared library if (0!=xct_off) { // shared library
unsigned word = (Elf32_Ehdr::EM_ARM==e_machine) + load_va + sz_pack2; // Thumb mode unsigned word = (Elf32_Ehdr::EM_ARM==e_machine) + load_va + sz_pack2; // Thumb mode
@@ -500,8 +519,8 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
// NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page
unsigned v_hole = sz_pack2 + lsize; unsigned v_hole = sz_pack2 + lsize;
set_te64(&elfout.phdr[0].p_filesz, v_hole); set_te64(&elfout.phdr[C_TEXT].p_filesz, v_hole);
set_te64(&elfout.phdr[0].p_memsz, v_hole); set_te64(&elfout.phdr[C_TEXT].p_memsz, v_hole);
// Then compressed gaps (including debuginfo.) // Then compressed gaps (including debuginfo.)
unsigned total_in = 0, total_out = 0; unsigned total_in = 0, total_out = 0;
for (unsigned k = 0; k < e_phnum; ++k) { for (unsigned k = 0; k < e_phnum; ++k) {
@@ -519,28 +538,19 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
fo->write(&hdr, sizeof(hdr)); fo->write(&hdr, sizeof(hdr));
flen = fpad4(fo); flen = fpad4(fo);
set_te64(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize);
set_te64(&elfout.phdr[0].p_memsz, sz_pack2 + lsize); set_te64(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize);
if (0==xct_off) { // not shared library; adjust PT_LOAD if (0==xct_off) { // not shared library
// On amd64: (2<<20)==.p_align, but Linux uses 4KiB pages. set_te64(&elfout.phdr[C_BASE].p_align, ((upx_uint64_t)0) - page_mask);
// This allows [vvar], [vdso], etc to sneak into the gap elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr;
// between end_text and data, which we wish to prevent elfout.phdr[C_BASE].p_offset = 0;
// because the expanded program will use that space. upx_uint64_t abrk = getbrk(phdri, e_phnum);
// So: pretend 4KiB pages. set_te64(&elfout.phdr[C_BASE].p_filesz, 0x1000); // Linux kernel SIGSEGV if (0==.p_filesz)
upx_uint64_t const pm = ( set_te64(&elfout.phdr[C_BASE].p_memsz, abrk);
Elf64_Ehdr::EM_X86_64 ==e_machine set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R);
//|| Elf64_Ehdr::EM_AARCH64==e_machine set_te64(&elfout.phdr[C_TEXT].p_vaddr, abrk= (page_mask & (~page_mask + abrk)));
//|| Elf64_Ehdr::EM_PPC64 ==e_machine /* DOES NOT WORK! */ elfout.phdr[C_TEXT].p_paddr = elfout.phdr[C_TEXT].p_vaddr;
) set_te64(&elfout.ehdr.e_entry, abrk + get_te64(&elfout.ehdr.e_entry));
? ((~(upx_uint64_t)0)<<12)
: page_mask;
v_hole = pm & (~pm + v_hole + get_te64(&elfout.phdr[0].p_vaddr));
set_te64(&elfout.phdr[1].p_vaddr, v_hole);
set_te64(&elfout.phdr[1].p_align, ((upx_uint64_t)0) - pm);
elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr;
elfout.phdr[1].p_offset = 0;
set_te64(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole);
set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R);
} }
if (0!=xct_off) { // shared library if (0!=xct_off) { // shared library
upx_uint64_t word = load_va + sz_pack2; upx_uint64_t word = load_va + sz_pack2;
@@ -896,7 +906,7 @@ void PackLinuxElf32::ARM_updateLoader(OutputFile * /*fo*/)
{ {
set_te32(&elfout.ehdr.e_entry, sz_pack2 + set_te32(&elfout.ehdr.e_entry, sz_pack2 +
linker->getSymbolOffset("_start") + linker->getSymbolOffset("_start") +
get_te32(&elfout.phdr[0].p_vaddr)); get_te32(&elfout.phdr[C_TEXT].p_vaddr));
} }
void PackLinuxElf32armLe::updateLoader(OutputFile *fo) void PackLinuxElf32armLe::updateLoader(OutputFile *fo)
@@ -922,7 +932,7 @@ void PackLinuxElf32mipseb::updateLoader(OutputFile *fo)
void PackLinuxElf32::updateLoader(OutputFile * /*fo*/) void PackLinuxElf32::updateLoader(OutputFile * /*fo*/)
{ {
unsigned start = linker->getSymbolOffset("_start"); unsigned start = linker->getSymbolOffset("_start");
unsigned vbase = get_te32(&elfout.phdr[0].p_vaddr); unsigned vbase = get_te32(&elfout.phdr[C_TEXT].p_vaddr);
set_te32(&elfout.ehdr.e_entry, start + sz_pack2 + vbase); set_te32(&elfout.ehdr.e_entry, start + sz_pack2 + vbase);
} }
@@ -931,7 +941,7 @@ void PackLinuxElf64::updateLoader(OutputFile * /*fo*/)
if (xct_off) { if (xct_off) {
return; // FIXME elfout has no values at all return; // FIXME elfout has no values at all
} }
upx_uint64_t const vbase = get_te64(&elfout.phdr[0].p_vaddr); upx_uint64_t const vbase = get_te64(&elfout.phdr[C_TEXT].p_vaddr);
unsigned start = linker->getSymbolOffset("_start"); unsigned start = linker->getSymbolOffset("_start");
if (get_te16(&elfout.ehdr.e_machine)==Elf64_Ehdr::EM_PPC64 if (get_te16(&elfout.ehdr.e_machine)==Elf64_Ehdr::EM_PPC64
@@ -1057,7 +1067,7 @@ void PackLinuxElf32x86::addStubEntrySections(Filter const *ft)
// sizeof(l_info) + // sizeof(l_info) +
// // PT_DYNAMIC with DT_NEEDED "forwarded" from original file // // PT_DYNAMIC with DT_NEEDED "forwarded" from original file
// ((get_te16(&elfout.ehdr.e_phnum)==3) // ((get_te16(&elfout.ehdr.e_phnum)==3)
// ? (unsigned) get_te32(&elfout.phdr[2].p_memsz) // ? (unsigned) get_te32(&elfout.phdr[C_NOTE].p_memsz)
// : 0) + // : 0) +
// // p_progid, p_filesize, p_blocksize // // p_progid, p_filesize, p_blocksize
// sizeof(p_info) + // sizeof(p_info) +
@@ -2745,8 +2755,8 @@ PackLinuxElf32::generateElfHdr(
set_te16(&h2->ehdr.e_phnum, phnum_o); set_te16(&h2->ehdr.e_phnum, phnum_o);
} }
o_binfo = sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info); o_binfo = sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info);
set_te32(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize; set_te32(&h2->phdr[C_TEXT].p_filesz, sizeof(*h2)); // + identsize;
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz;
for (unsigned j=0; j < phnum_o; ++j) { for (unsigned j=0; j < phnum_o; ++j) {
if (PT_LOAD32==get_te32(&h3->phdr[j].p_type)) { if (PT_LOAD32==get_te32(&h3->phdr[j].p_type)) {
@@ -2768,21 +2778,21 @@ PackLinuxElf32::generateElfHdr(
} }
} }
} }
set_te32(&h2->phdr[0].p_paddr, lo_va_user); set_te32(&h2->phdr[C_TEXT].p_paddr, lo_va_user);
set_te32(&h2->phdr[0].p_vaddr, lo_va_user); set_te32(&h2->phdr[C_TEXT].p_vaddr, lo_va_user);
unsigned const brkb = page_mask & (~page_mask + unsigned const brkb = page_mask & (~page_mask +
get_te32(&h2->phdr[0].p_vaddr) + memsz); get_te32(&h2->phdr[C_TEXT].p_vaddr) + memsz);
set_te32(&h2->phdr[1].p_type, PT_LOAD32); // be sure set_te32(&h2->phdr[C_BASE].p_type, PT_LOAD32); // be sure
h2->phdr[1].p_offset = 0; h2->phdr[C_BASE].p_offset = 0;
set_te32(&h2->phdr[1].p_vaddr, brkb); set_te32(&h2->phdr[C_BASE].p_vaddr, brkb);
set_te32(&h2->phdr[1].p_paddr, brkb); set_te32(&h2->phdr[C_BASE].p_paddr, brkb);
h2->phdr[1].p_filesz = 0; h2->phdr[C_BASE].p_filesz = 0;
set_te32(&h2->phdr[1].p_memsz, brka - brkb); set_te32(&h2->phdr[C_BASE].p_memsz, brka - brkb);
set_te32(&h2->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); set_te32(&h2->phdr[C_BASE].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
} }
if (ph.format==getFormat()) { if (ph.format==getFormat()) {
assert((2u+ !!gnu_stack) == phnum_o); assert((2u+ !!gnu_stack) == phnum_o);
set_te32(&h2->phdr[0].p_flags, ~Elf32_Phdr::PF_W & get_te32(&h2->phdr[0].p_flags)); set_te32(&h2->phdr[C_TEXT].p_flags, ~Elf32_Phdr::PF_W & get_te32(&h2->phdr[C_TEXT].p_flags));
if (!gnu_stack) { if (!gnu_stack) {
memset(&h2->linfo, 0, sizeof(h2->linfo)); memset(&h2->linfo, 0, sizeof(h2->linfo));
fo->write(h2, sizeof(*h2)); fo->write(h2, sizeof(*h2));
@@ -2841,7 +2851,7 @@ PackNetBSDElf32x86::generateElfHdr(
// Add PT_NOTE for the NetBSD note and PaX note, if any. // Add PT_NOTE for the NetBSD note and PaX note, if any.
note_offset += (np_NetBSD ? sizeof(Elf32_Phdr) : 0); note_offset += (np_NetBSD ? sizeof(Elf32_Phdr) : 0);
note_offset += (np_PaX ? sizeof(Elf32_Phdr) : 0); note_offset += (np_PaX ? sizeof(Elf32_Phdr) : 0);
Elf32_Phdr *phdr = &elfout.phdr[2]; Elf32_Phdr *phdr = &elfout.phdr[C_NOTE];
if (np_NetBSD) { if (np_NetBSD) {
set_te32(&phdr->p_type, PT_NOTE32); set_te32(&phdr->p_type, PT_NOTE32);
set_te32(&phdr->p_offset, note_offset); set_te32(&phdr->p_offset, note_offset);
@@ -2877,8 +2887,8 @@ PackNetBSDElf32x86::generateElfHdr(
note_offset += sz_PaX; note_offset += sz_PaX;
++phdr; ++phdr;
} }
set_te32(&h2->phdr[0].p_filesz, note_offset); set_te32(&h2->phdr[C_TEXT].p_filesz, note_offset);
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz;
if (ph.format==getFormat()) { if (ph.format==getFormat()) {
set_te16(&h2->ehdr.e_phnum, !!sz_NetBSD + !!sz_PaX + set_te16(&h2->ehdr.e_phnum, !!sz_NetBSD + !!sz_PaX +
@@ -2893,8 +2903,8 @@ PackNetBSDElf32x86::generateElfHdr(
if (sz_NetBSD) memcpy(&((char *)phdr)[0], np_NetBSD, sz_NetBSD); if (sz_NetBSD) memcpy(&((char *)phdr)[0], np_NetBSD, sz_NetBSD);
if (sz_PaX) memcpy(&((char *)phdr)[sz_NetBSD], np_PaX, sz_PaX); if (sz_PaX) memcpy(&((char *)phdr)[sz_NetBSD], np_PaX, sz_PaX);
fo->write(&elfout.phdr[2], fo->write(&elfout.phdr[C_NOTE],
&((char *)phdr)[sz_PaX + sz_NetBSD] - (char *)&elfout.phdr[2]); &((char *)phdr)[sz_PaX + sz_NetBSD] - (char *)&elfout.phdr[C_NOTE]);
l_info foo; memset(&foo, 0, sizeof(foo)); l_info foo; memset(&foo, 0, sizeof(foo));
fo->rewrite(&foo, sizeof(foo)); fo->rewrite(&foo, sizeof(foo));
@@ -2934,14 +2944,14 @@ PackOpenBSDElf32x86::generateElfHdr(
unsigned const note_offset = sizeof(*h3) - sizeof(linfo); unsigned const note_offset = sizeof(*h3) - sizeof(linfo);
sz_elf_hdrs = sizeof(elfnote) + note_offset; sz_elf_hdrs = sizeof(elfnote) + note_offset;
set_te32(&h3->phdr[2].p_type, PT_NOTE32); set_te32(&h3->phdr[C_NOTE].p_type, PT_NOTE32);
set_te32(&h3->phdr[2].p_offset, note_offset); set_te32(&h3->phdr[C_NOTE].p_offset, note_offset);
set_te32(&h3->phdr[2].p_vaddr, note_offset); set_te32(&h3->phdr[C_NOTE].p_vaddr, note_offset);
set_te32(&h3->phdr[2].p_paddr, note_offset); set_te32(&h3->phdr[C_NOTE].p_paddr, note_offset);
set_te32(&h3->phdr[2].p_filesz, sizeof(elfnote)); set_te32(&h3->phdr[C_NOTE].p_filesz, sizeof(elfnote));
set_te32(&h3->phdr[2].p_memsz, sizeof(elfnote)); set_te32(&h3->phdr[C_NOTE].p_memsz, sizeof(elfnote));
set_te32(&h3->phdr[2].p_flags, Elf32_Phdr::PF_R); set_te32(&h3->phdr[C_NOTE].p_flags, Elf32_Phdr::PF_R);
set_te32(&h3->phdr[2].p_align, 4); set_te32(&h3->phdr[C_NOTE].p_align, 4);
// Q: Same as this->note_body[0 .. this->note_size-1] ? // Q: Same as this->note_body[0 .. this->note_size-1] ?
set_te32(&elfnote.nhdr.namesz, 8); set_te32(&elfnote.nhdr.namesz, 8);
@@ -2950,18 +2960,18 @@ PackOpenBSDElf32x86::generateElfHdr(
memcpy(elfnote.name, "OpenBSD", sizeof(elfnote.name)); memcpy(elfnote.name, "OpenBSD", sizeof(elfnote.name));
elfnote.body = 0; elfnote.body = 0;
set_te32(&h3->phdr[0].p_filesz, sz_elf_hdrs); set_te32(&h3->phdr[C_TEXT].p_filesz, sz_elf_hdrs);
h3->phdr[0].p_memsz = h3->phdr[0].p_filesz; h3->phdr[C_TEXT].p_memsz = h3->phdr[C_TEXT].p_filesz;
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0); unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
set_te32(&h3->phdr[1].p_type, PT_LOAD32); // be sure set_te32(&h3->phdr[C_BASE].p_type, PT_LOAD32); // be sure
set_te32(&h3->phdr[1].p_offset, ~page_mask & brkb); set_te32(&h3->phdr[C_BASE].p_offset, ~page_mask & brkb);
set_te32(&h3->phdr[1].p_vaddr, brkb); set_te32(&h3->phdr[C_BASE].p_vaddr, brkb);
set_te32(&h3->phdr[1].p_paddr, brkb); set_te32(&h3->phdr[C_BASE].p_paddr, brkb);
h3->phdr[1].p_filesz = 0; h3->phdr[C_BASE].p_filesz = 0;
// Too many kernels have bugs when 0==.p_memsz // Too many kernels have bugs when 0==.p_memsz
set_te32(&h3->phdr[1].p_memsz, 1); set_te32(&h3->phdr[C_BASE].p_memsz, 1);
set_te32(&h3->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); set_te32(&h3->phdr[C_BASE].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
if (ph.format==getFormat()) { if (ph.format==getFormat()) {
memset(&h3->linfo, 0, sizeof(h3->linfo)); memset(&h3->linfo, 0, sizeof(h3->linfo));
@@ -2983,7 +2993,11 @@ PackLinuxElf64::generateElfHdr(
{ {
cprElfHdr2 *const h2 = (cprElfHdr2 *)(void *)&elfout; cprElfHdr2 *const h2 = (cprElfHdr2 *)(void *)&elfout;
cprElfHdr3 *const h3 = (cprElfHdr3 *)(void *)&elfout; cprElfHdr3 *const h3 = (cprElfHdr3 *)(void *)&elfout;
memcpy(h3, proto, sizeof(*h3)); // reads beyond, but OK h3->ehdr = ((cprElfHdr3 const *)proto)->ehdr;
h3->phdr[C_BASE] = ((cprElfHdr3 const *)proto)->phdr[1]; // .data; .p_align
h3->phdr[C_TEXT] = ((cprElfHdr3 const *)proto)->phdr[0]; // .text
memset(&h3->linfo, 0, sizeof(h3->linfo));
h3->ehdr.e_type = ehdri.e_type; // ET_EXEC vs ET_DYN (gcc -pie -fPIC) h3->ehdr.e_type = ehdri.e_type; // ET_EXEC vs ET_DYN (gcc -pie -fPIC)
h3->ehdr.e_ident[Elf64_Ehdr::EI_OSABI] = ei_osabi; h3->ehdr.e_ident[Elf64_Ehdr::EI_OSABI] = ei_osabi;
if (Elf64_Ehdr::ELFOSABI_LINUX == ei_osabi // proper if (Elf64_Ehdr::ELFOSABI_LINUX == ei_osabi // proper
@@ -3018,8 +3032,8 @@ PackLinuxElf64::generateElfHdr(
set_te16(&h2->ehdr.e_phnum, phnum_o); set_te16(&h2->ehdr.e_phnum, phnum_o);
} }
o_binfo = sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info); o_binfo = sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info);
set_te64(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize; set_te64(&h2->phdr[C_TEXT].p_filesz, sizeof(*h2)); // + identsize;
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz;
for (unsigned j=0; j < 4; ++j) { for (unsigned j=0; j < 4; ++j) {
if (PT_LOAD64==get_te32(&h3->phdr[j].p_type)) { if (PT_LOAD64==get_te32(&h3->phdr[j].p_type)) {
@@ -3037,18 +3051,18 @@ PackLinuxElf64::generateElfHdr(
lo_va_user = umin64(lo_va_user, vaddr); lo_va_user = umin64(lo_va_user, vaddr);
} }
} }
set_te64(&h2->phdr[0].p_paddr, lo_va_user); set_te64(&h2->phdr[C_TEXT].p_paddr, lo_va_user);
set_te64(&h2->phdr[0].p_vaddr, lo_va_user); set_te64(&h2->phdr[C_TEXT].p_vaddr, lo_va_user);
set_te32(&h2->phdr[1].p_type, PT_LOAD64); // be sure set_te32(&h2->phdr[C_BASE].p_type, PT_LOAD64); // be sure
h2->phdr[1].p_offset = 0; h2->phdr[C_BASE].p_offset = 0;
h2->phdr[1].p_filesz = 0; h2->phdr[C_BASE].p_filesz = 0;
// .p_memsz = brka; temporary until sz_pack2 // .p_memsz = brka; temporary until sz_pack2
set_te64(&h2->phdr[1].p_memsz, brka); set_te64(&h2->phdr[C_BASE].p_memsz, brka);
set_te32(&h2->phdr[1].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W); set_te32(&h2->phdr[C_BASE].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W);
} }
if (ph.format==getFormat()) { if (ph.format==getFormat()) {
assert((2u+ !!gnu_stack) == phnum_o); assert((2u+ !!gnu_stack) == phnum_o);
set_te32(&h2->phdr[0].p_flags, ~Elf64_Phdr::PF_W & get_te32(&h2->phdr[0].p_flags)); set_te32(&h2->phdr[C_TEXT].p_flags, ~Elf64_Phdr::PF_W & get_te32(&h2->phdr[C_TEXT].p_flags));
if (!gnu_stack) { if (!gnu_stack) {
memset(&h2->linfo, 0, sizeof(h2->linfo)); memset(&h2->linfo, 0, sizeof(h2->linfo));
fo->write(h2, sizeof(*h2)); fo->write(h2, sizeof(*h2));
@@ -4264,8 +4278,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
// Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel // Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel
// tries to make .bss, which requires PF_W. // tries to make .bss, which requires PF_W.
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X. // But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
set_te32(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize);
elfout.phdr[0].p_memsz = elfout.phdr[0].p_filesz; elfout.phdr[C_TEXT].p_memsz = elfout.phdr[C_TEXT].p_filesz;
super::pack4(fo, ft); // write PackHeader and overlay_offset super::pack4(fo, ft); // write PackHeader and overlay_offset
fo->seek(0, SEEK_SET); fo->seek(0, SEEK_SET);
@@ -4275,7 +4289,7 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
fo->rewrite(&linfo, sizeof(linfo)); fo->rewrite(&linfo, sizeof(linfo));
if (jni_onload_va) { if (jni_onload_va) {
unsigned tmp = sz_pack2 + get_te32(&elfout.phdr[0].p_vaddr); unsigned tmp = sz_pack2 + get_te32(&elfout.phdr[C_TEXT].p_vaddr);
tmp |= (Elf32_Ehdr::EM_ARM==e_machine); // THUMB mode tmp |= (Elf32_Ehdr::EM_ARM==e_machine); // THUMB mode
set_te32(&tmp, tmp); set_te32(&tmp, tmp);
fo->seek(ptr_udiff(&jni_onload_sym->st_value, file_image), SEEK_SET); fo->seek(ptr_udiff(&jni_onload_sym->st_value, file_image), SEEK_SET);
@@ -4283,8 +4297,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
} }
} }
else { else {
unsigned const reloc = get_te32(&elfout.phdr[0].p_vaddr); unsigned const reloc = get_te32(&elfout.phdr[C_TEXT].p_vaddr);
Elf32_Phdr *phdr = &elfout.phdr[2]; Elf32_Phdr *phdr = &elfout.phdr[C_NOTE];
unsigned const o_phnum = get_te16(&elfout.ehdr.e_phnum); unsigned const o_phnum = get_te16(&elfout.ehdr.e_phnum);
for (unsigned j = 2; j < o_phnum; ++j, ++phdr) { for (unsigned j = 2; j < o_phnum; ++j, ++phdr) {
if (PT_NOTE32 == get_te32(&phdr->p_type)) { if (PT_NOTE32 == get_te32(&phdr->p_type)) {
@@ -4325,8 +4339,8 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
// Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel // Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel
// tries to make .bss, which requires PF_W. // tries to make .bss, which requires PF_W.
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X. // But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
set_te64(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize);
elfout.phdr[0].p_memsz = elfout.phdr[0].p_filesz; elfout.phdr[C_TEXT].p_memsz = elfout.phdr[C_TEXT].p_filesz;
super::pack4(fo, ft); // write PackHeader and overlay_offset super::pack4(fo, ft); // write PackHeader and overlay_offset
fo->seek(0, SEEK_SET); fo->seek(0, SEEK_SET);
@@ -4336,12 +4350,12 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
fo->rewrite(&linfo, sizeof(linfo)); fo->rewrite(&linfo, sizeof(linfo));
} }
else { else {
if (PT_NOTE64 == get_te64(&elfout.phdr[2].p_type)) { if (PT_NOTE64 == get_te64(&elfout.phdr[C_NOTE].p_type)) {
upx_uint64_t const reloc = get_te64(&elfout.phdr[0].p_vaddr); upx_uint64_t const reloc = get_te64(&elfout.phdr[C_TEXT].p_vaddr);
set_te64( &elfout.phdr[2].p_vaddr, set_te64( &elfout.phdr[C_NOTE].p_vaddr,
reloc + get_te64(&elfout.phdr[2].p_vaddr)); reloc + get_te64(&elfout.phdr[C_NOTE].p_vaddr));
set_te64( &elfout.phdr[2].p_paddr, set_te64( &elfout.phdr[C_NOTE].p_paddr,
reloc + get_te64(&elfout.phdr[2].p_paddr)); reloc + get_te64(&elfout.phdr[C_NOTE].p_paddr));
fo->rewrite(&elfout, sz_elf_hdrs); fo->rewrite(&elfout, sz_elf_hdrs);
// FIXME fo->rewrite(&elfnote, sizeof(elfnote)); // FIXME fo->rewrite(&elfnote, sizeof(elfnote));
} }
+224 -228
View File
@@ -1,5 +1,5 @@
/* amd64-linux.elf-entry.h /* amd64-linux.elf-entry.h
created from amd64-linux.elf-entry.bin, 9547 (0x254b) bytes created from amd64-linux.elf-entry.bin, 9485 (0x250d) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,14 +31,14 @@
*/ */
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 9547 #define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 9485
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x2d4db3d3 #define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x42ca99ef
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x3ab292c4 #define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x44f5e317
unsigned char stub_amd64_linux_elf_entry[9547] = { unsigned char stub_amd64_linux_elf_entry[9485] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 24, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 24, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
/* 0x0040 */ 80, 82,232, 0, 0, 0, 0, 85, 83, 81, 82, 72, 1,254, 86, 72, /* 0x0040 */ 80, 82,232, 0, 0, 0, 0, 85, 83, 81, 82, 72, 1,254, 86, 72,
/* 0x0050 */ 137,254, 72,137,215, 49,219, 49,201, 72,131,205,255,232, 80, 0, /* 0x0050 */ 137,254, 72,137,215, 49,219, 49,201, 72,131,205,255,232, 80, 0,
@@ -411,226 +411,222 @@ unsigned char stub_amd64_linux_elf_entry[9547] = {
/* 0x1740 */ 105,108,101,100, 46, 10, 0,106, 14, 90, 87, 94,235, 1, 94,106, /* 0x1740 */ 105,108,101,100, 46, 10, 0,106, 14, 90, 87, 94,235, 1, 94,106,
/* 0x1750 */ 2, 95,106, 1, 88, 15, 5,106,127, 95,106, 60, 88, 15, 5, 95, /* 0x1750 */ 2, 95,106, 1, 88, 15, 5,106,127, 95,106, 60, 88, 15, 5, 95,
/* 0x1760 */ 41,246,106, 2, 88, 15, 5,133,192,120,220, 80, 72,141,183, 15, /* 0x1760 */ 41,246,106, 2, 88, 15, 5,133,192,120,220, 80, 72,141,183, 15,
/* 0x1770 */ 0, 0, 0,173,131,224,254, 65,137,198, 86, 91,173,146, 72, 1, /* 0x1770 */ 0, 0, 0,173,131,224,254, 65,137,198, 86, 91,139, 22, 72,141,
/* 0x1780 */ 218,173, 65,149,173, 73, 1,245, 72,141,141,245,255,255,255, 68, /* 0x1780 */ 141,245,255,255,255, 68,139, 57, 76, 41,249, 69, 41,247, 73, 1,
/* 0x1790 */ 139, 57, 76, 41,249, 69, 41,247, 95, 72, 41,202, 82, 80, 73, 41, /* 0x1790 */ 206, 95, 82, 80, 87, 81, 77, 41,201, 65,131,200,255,106, 34, 65,
/* 0x17a0 */ 205, 87, 81, 77, 41,201, 65,131,200,255,106, 34, 65, 90, 82, 94, /* 0x17a0 */ 90, 82, 94,106, 3, 90, 41,255,106, 9, 88, 15, 5, 72,137, 68,
/* 0x17b0 */ 106, 3, 90, 41,255,106, 9, 88, 15, 5, 73, 1,198, 72,137, 68, /* 0x17b0 */ 36, 16, 80, 90, 83, 94,173, 80, 72,137,225, 73,137,213,173, 80,
/* 0x17c0 */ 36, 16, 72,151, 68,139, 68, 36, 8,106, 18, 65, 90, 76,137,238, /* 0x17c0 */ 173, 65,144, 72,137,247, 94,255,213, 89, 72,139,116, 36, 24, 72,
/* 0x17d0 */ 106, 9, 88, 15, 5, 72,139, 84, 36, 24, 89, 81, 72, 1,194, 72, /* 0x17d0 */ 139,124, 36, 16,106, 5, 90,106, 10, 88, 15, 5, 65,255,229, 93,
/* 0x17e0 */ 41,200, 73,137,196, 72, 1,232, 80, 72, 37, 0,240,255,255, 80, /* 0x17e0 */ 232,122,255,255,255, 47,112,114,111, 99, 47,115,101,108,102, 47,
/* 0x17f0 */ 72, 41,194, 82, 72,137,222,173, 80, 72,137,225, 74,141, 20, 35, /* 0x17f0 */ 101,120,101, 0, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,
/* 0x1800 */ 73,137,213,173, 80,173, 65,144, 72,137,247, 94,255,213, 89, 94, /* 0x1800 */ 109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52,
/* 0x1810 */ 95, 93,106, 5, 90,106, 10, 88, 15, 5, 65,255,229, 93,232, 60, /* 0x1810 */ 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32,
/* 0x1820 */ 255,255,255, 47,112,114,111, 99, 47,115,101,108,102, 47,101,120, /* 0x1820 */ 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,
/* 0x1830 */ 101, 0, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97, /* 0x1830 */ 122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32,
/* 0x1840 */ 116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, /* 0x1840 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32,
/* 0x1850 */ 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, /* 0x1850 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101,
/* 0x1860 */ 109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, /* 0x1860 */ 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,
/* 0x1870 */ 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, /* 0x1870 */ 115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32,
/* 0x1880 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, /* 0x1880 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,102, 32, 32, 48, 48,
/* 0x1890 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, /* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x18a0 */ 102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, /* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18b0 */ 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, /* 0x18b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48,
/* 0x18c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48,102, 32, 32, 48, 48, 48, 48, /* 0x18c0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x18d0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32,
/* 0x18e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x18e0 */ 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48,
/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x18f0 */ 48, 48, 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1900 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
/* 0x1910 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, /* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1920 */ 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1920 */ 48, 48, 52,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1930 */ 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1930 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
/* 0x1940 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1940 */ 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1950 */ 32, 48, 48, 48, 48, 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48,
/* 0x1960 */ 52,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1970 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, /* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
/* 0x1980 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, /* 0x1980 */ 48, 48, 48, 48, 48, 98, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1990 */ 48, 48, 48, 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1990 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x19a0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86,
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x19b0 */ 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
/* 0x19c0 */ 48, 48, 48, 98, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x19c0 */ 48, 97, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19d0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x19d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, /* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 54,
/* 0x19f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 97, /* 0x19f0 */ 102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1a00 */ 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a00 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1a10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1a10 */ 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32,
/* 0x1a20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 54,102, 32, /* 0x1a20 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48,
/* 0x1a30 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1a40 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1a40 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a50 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, /* 0x1a50 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 49, 48, 32, 32, 50, 42, 42,
/* 0x1a60 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48, 48, 48, /* 0x1a60 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1a70 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53,
/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1a80 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48,
/* 0x1a90 */ 32, 48, 48, 48, 48, 48, 50, 49, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x1a90 */ 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1aa0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1ab0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, /* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1ac0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x1ac0 */ 48, 48, 50, 97, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1ad0 */ 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ad0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x1ae0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1ae0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95,
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1af0 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102,
/* 0x1b00 */ 50, 97, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1b00 */ 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b10 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x1b10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b20 */ 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x1b20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 48, 55, 32,
/* 0x1b30 */ 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, /* 0x1b30 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
/* 0x1b40 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1b40 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90,
/* 0x1b50 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48,
/* 0x1b60 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 48, 55, 32, 32, 50, /* 0x1b60 */ 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b70 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1b70 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b80 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, /* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 99,
/* 0x1b90 */ 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, /* 0x1b90 */ 102,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1ba0 */ 102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ba0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56,
/* 0x1bb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1bb0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 99,102,101, /* 0x1bc0 */ 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bd0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1be0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, /* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1bf0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x1bf0 */ 48, 49, 54,102, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1c00 */ 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c00 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1c10 */ 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32,
/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1c20 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
/* 0x1c30 */ 54,102, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
/* 0x1c40 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
/* 0x1c50 */ 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, /* 0x1c50 */ 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1c60 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
/* 0x1c70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1c70 */ 76, 89, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32,
/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1c80 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48,
/* 0x1c90 */ 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ca0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1ca0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cb0 */ 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x1cb0 */ 48, 32, 32, 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42,
/* 0x1cc0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48, 48, 48, /* 0x1cc0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1cd0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49,
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1ce0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48,
/* 0x1cf0 */ 32, 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, /* 0x1cf0 */ 48, 48, 48, 48, 48, 98, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d00 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
/* 0x1d10 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, /* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
/* 0x1d20 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1d20 */ 48, 49, 55, 52, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x1d30 */ 48, 48, 48,101,102, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1d30 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d40 */ 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1d50 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d60 */ 55, 52, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1d60 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
/* 0x1d70 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x1d70 */ 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1d80 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, /* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68,
/* 0x1d90 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1d90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1da0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, /* 0x1da0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x1db0 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1db0 */ 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1dc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x1dc0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1dd0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1de0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x1de0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1df0 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1df0 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e00 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, /* 0x1e00 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48,
/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x1e20 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x1e20 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48,
/* 0x1e30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1e40 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, /* 0x1e40 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1e60 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x1e60 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48,
/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, /* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77,
/* 0x1e80 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e80 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1e90 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x1e90 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
/* 0x1ea0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1ea0 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x1eb0 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48,
/* 0x1ec0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1ed0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, /* 0x1ed0 */ 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48,
/* 0x1ee0 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68,
/* 0x1ef0 */ 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1ef0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x1f00 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9,
/* 0x1f10 */ 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, /* 0x1f20 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f40 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, /* 0x1f40 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48,
/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1f60 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f60 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1f70 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1f80 */ 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1f80 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48,
/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, /* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1fa0 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1fa0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1fb0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1fc0 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1fc0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48,
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, /* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65,
/* 0x1fe0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1fe0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ff0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x1ff0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x2000 */ 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2000 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48,
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, /* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65,
/* 0x2020 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */ 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2030 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2030 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x2040 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2040 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2050 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x2050 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48,
/* 0x2060 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32,
/* 0x2070 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x2070 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48,
/* 0x2080 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66,
/* 0x2090 */ 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, /* 0x2090 */ 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x20a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x20b0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x20b0 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x20c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, /* 0x20c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x20d0 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x20d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x20e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, /* 0x20e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x20f0 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x20f0 */ 48, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
/* 0x2100 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x2100 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120,
/* 0x2110 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, /* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 52,
/* 0x2120 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, /* 0x2120 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x2130 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, /* 0x2130 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93,
/* 0x2140 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, /* 0x2140 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 50, 10, 10, /* 0x2150 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2160 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x2160 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2170 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, /* 0x2170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56,
/* 0x2180 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2180 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82,
/* 0x2190 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2190 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x21a0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x21a0 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48,
/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56, 54, 95, /* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54,
/* 0x21c0 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x21c0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x21d0 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x21d0 */ 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,
/* 0x21e0 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x21e0 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x21f0 */ 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54, 95, 54, /* 0x21f0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2200 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x2200 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x2210 */ 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102, /* 0x2210 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x2220 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2220 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x2230 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x2230 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2240 */ 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x2240 */ 48, 57, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51,
/* 0x2250 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x2250 */ 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,
/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x2260 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50,
/* 0x2270 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, /* 0x2270 */ 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2280 */ 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, /* 0x2280 */ 53, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
/* 0x2290 */ 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, /* 0x2290 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120,
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, /* 0x22a0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99,
/* 0x22b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, /* 0x22b0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x22c0 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, /* 0x22c0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93,
/* 0x22d0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120,102,102, /* 0x22d0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22e0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, /* 0x22e0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x22f0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x22f0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
/* 0x2300 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, /* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56,
/* 0x2310 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2310 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82,
/* 0x2320 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2320 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48,
/* 0x2330 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48,
/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56, 54, 95, /* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54,
/* 0x2350 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x2350 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x2360 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2360 */ 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,
/* 0x2370 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2370 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2380 */ 48, 48, 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54, 95, 54, /* 0x2380 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2390 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x2390 */ 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79,
/* 0x23a0 */ 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102, /* 0x23a0 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23b0 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x23b0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x23c0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x23c0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x23d0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, /* 0x23d0 */ 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54,
/* 0x23e0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, /* 0x23e0 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95,
/* 0x23f0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23f0 */ 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2400 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2400 */ 48, 48, 48, 48, 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x2410 */ 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, /* 0x2410 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x2420 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x2420 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70,
/* 0x2430 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2430 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
/* 0x2440 */ 48, 48, 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2440 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x2450 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x2450 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2460 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2460 */ 48, 48, 48, 48, 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
/* 0x2470 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, /* 0x2470 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x2480 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2480 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x2490 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2490 */ 48, 48, 48, 51, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x24a0 */ 48, 48, 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, /* 0x24a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x24b0 */ 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, /* 0x24b0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x24c0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x24c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x24d0 */ 48, 51, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x24d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x24e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, /* 0x24e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x24f0 */ 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x24f0 */ 97,100, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
/* 0x2500 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x2500 */ 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x2510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x2520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,101, 98,
/* 0x2530 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32,
/* 0x2540 */ 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
}; };
+142 -137
View File
@@ -1,5 +1,5 @@
/* amd64-linux.elf-fold.h /* amd64-linux.elf-fold.h
created from amd64-linux.elf-fold.bin, 2251 (0x8cb) bytes created from amd64-linux.elf-fold.bin, 2322 (0x912) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,150 +31,155 @@
*/ */
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2251 #define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2322
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x50e34b76 #define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0xd23464e1
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xba67b7de #define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x725dafa1
unsigned char stub_amd64_linux_elf_fold[2251] = { unsigned char stub_amd64_linux_elf_fold[2322] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 203, 8, 0, 0, 0, 0, 0, 0,204, 8, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 18, 9, 0, 0, 0, 0, 0, 0, 20, 9, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 203, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 18, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 74, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204,232, 74, 0,
/* 0x00c0 */ 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253, 94, 86, 91, /* 0x00c0 */ 0, 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253, 94, 86,
/* 0x00d0 */ 235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60,143, /* 0x00d0 */ 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60,
/* 0x00e0 */ 119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72, 57, /* 0x00e0 */ 143,119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72,
/* 0x00f0 */ 206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1,216, /* 0x00f0 */ 57,206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1,
/* 0x0100 */ 171, 72, 57,206,115, 3,172,235,223, 91,195, 88, 65, 86, 65, 87, /* 0x0100 */ 216,171, 72, 57,206,115, 3,172,235,223, 91,195, 88, 65, 86, 65,
/* 0x0110 */ 80, 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,106, 10, 89, /* 0x0110 */ 87, 80, 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,106, 10,
/* 0x0120 */ 243, 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,254, 72,171, /* 0x0120 */ 89,243, 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,254, 72,
/* 0x0130 */ 72,131, 62, 0, 72,165,117,248, 73,137,252, 72,131, 62, 0, 72, /* 0x0130 */ 171, 72,131, 62, 0, 72,165,117,248, 73,137,252, 72,131, 62, 0,
/* 0x0140 */ 165, 72,165,117,246, 73,137,255, 73,137,245, 77, 41,252,186,255, /* 0x0140 */ 72,165, 72,165,117,246, 73,137,255, 73,137,245, 77, 41,252,186,
/* 0x0150 */ 15, 0, 0, 87, 94, 72,141,123,237,106, 89, 88, 15, 5,133,192, /* 0x0150 */ 255, 15, 0, 0, 87, 94, 72,141,123,237,106, 89, 88, 15, 5,133,
/* 0x0160 */ 121, 5, 87, 94,106, 15, 88,145,253, 73,141,125,255,176, 0,170, /* 0x0160 */ 192,121, 5, 87, 94,106, 15, 88,145,253, 73,141,125,255,176, 0,
/* 0x0170 */ 72,141,116, 14,255,243,164, 72,131,239, 3,199, 7, 32, 32, 32, /* 0x0170 */ 170, 72,141,116, 14,255,243,164, 72,131,239, 3,199, 7, 32, 32,
/* 0x0180 */ 61, 73,137, 62, 72,131,231,248, 76,137,249, 72, 41,225,137,200, /* 0x0180 */ 32, 61, 73,137, 62, 72,131,231,248, 76,137,249, 72, 41,225,137,
/* 0x0190 */ 49,248,131,240, 8,131,224, 8, 72, 41,199, 73,137,254, 72,131, /* 0x0190 */ 200, 49,248,131,240, 8,131,224, 8, 72, 41,199, 73,137,254, 72,
/* 0x01a0 */ 239, 8, 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141,103, /* 0x01a0 */ 131,239, 8, 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141,
/* 0x01b0 */ 8,252, 75,141, 12, 38,139, 67,252,131,224, 1, 72, 1,193, 65, /* 0x01b0 */ 103, 8,252, 75,141, 12, 38,139, 67,252,131,224, 1, 72, 1,193,
/* 0x01c0 */ 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80, 73, /* 0x01c0 */ 65, 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80,
/* 0x01d0 */ 137,232,232,172, 5, 0, 0, 72,129,196, 8, 8, 0, 0, 72,137, /* 0x01d0 */ 73,137,232,204,232,241, 5, 0, 0,204, 72,129,196, 8, 8, 0,
/* 0x01e0 */ 68, 36, 32, 91, 69, 41,201, 65,137,216,106, 2, 65, 90,106, 1, /* 0x01e0 */ 0, 72,137, 68, 36, 32, 91, 69, 41,201, 65,137,216,106, 2, 65,
/* 0x01f0 */ 90,190, 0, 16, 0, 0,106, 0, 95,106, 9, 88, 15, 5,137,223, /* 0x01f0 */ 90,106, 1, 90,190, 0, 16, 0, 0,106, 0, 95,106, 9, 88, 15,
/* 0x0200 */ 106, 3, 88, 15, 5, 95, 94,106, 11, 88, 65,255,102,248,176, 9, /* 0x0200 */ 5,137,223,106, 3, 88, 15, 5, 95, 94,106, 11, 88, 65,255,102,
/* 0x0210 */ 73,137,202, 15,182,192, 15, 5, 72, 61, 0,240,255,255,114, 4, /* 0x0210 */ 248,204,176, 9, 73,137,202, 15,182,192, 15, 5, 72, 61, 0,240,
/* 0x0220 */ 72,131,200,255,195,176, 60,235, 2,176, 12,235, 2,176, 3,235, /* 0x0220 */ 255,255,114, 4, 72,131,200,255,195,176, 60,235, 2,176, 12,235,
/* 0x0230 */ 2,176, 2,235, 2,176, 11,235, 2,176, 10,235, 2,176, 1,235, /* 0x0230 */ 2,176, 3,235, 2,176, 2,235, 2,176, 11,235, 2,176, 10,235,
/* 0x0240 */ 2,176, 0,235,206, 0, 0, 0, 81, 72, 57, 23, 76,139, 71, 8, /* 0x0240 */ 2,176, 1,235, 2,176, 0,235,206, 0, 0, 0, 81, 72, 57, 23,
/* 0x0250 */ 72,141, 74,255,115, 10,191,127, 0, 0, 0,232,197,255,255,255, /* 0x0250 */ 76,139, 71, 8, 72,141, 74,255,115, 10,191,127, 0, 0, 0,232,
/* 0x0260 */ 72,131,249,255,116, 17, 65, 15,182, 0, 72,255,201, 73,255,192, /* 0x0260 */ 197,255,255,255, 72,131,249,255,116, 17, 65, 15,182, 0, 72,255,
/* 0x0270 */ 136, 6, 72,255,198,235,233, 72, 1, 87, 8, 72, 41, 23, 88,195, /* 0x0270 */ 201, 73,255,192,136, 6, 72,255,198,235,233, 72, 1, 87, 8, 72,
/* 0x0280 */ 65, 85, 73,137,213, 65, 84, 73,137,204, 85, 72,137,253, 83, 72, /* 0x0280 */ 41, 23, 88,195, 65, 85, 73,137,213, 65, 84, 73,137,204, 85, 72,
/* 0x0290 */ 137,243, 72,131,236, 40, 72,131, 62, 0, 15,132,230, 0, 0, 0, /* 0x0290 */ 137,253, 83, 72,137,243, 72,131,236, 40, 72,131, 62, 0, 15,132,
/* 0x02a0 */ 72,141,116, 36, 16,186, 12, 0, 0, 0, 72,137,239,232,150,255, /* 0x02a0 */ 230, 0, 0, 0, 72,141,116, 36, 16,186, 12, 0, 0, 0, 72,137,
/* 0x02b0 */ 255,255,139, 68, 36, 16,139,116, 36, 20,133,192,117, 21,129,254, /* 0x02b0 */ 239,232,150,255,255,255,139, 68, 36, 16,139,116, 36, 20,133,192,
/* 0x02c0 */ 85, 80, 88, 33,117, 17, 72,131,125, 0, 0, 15,132,181, 0, 0, /* 0x02c0 */ 117, 21,129,254, 85, 80, 88, 33,117, 17, 72,131,125, 0, 0, 15,
/* 0x02d0 */ 0,235, 4,133,246,117, 10,191,127, 0, 0, 0,232, 68,255,255, /* 0x02d0 */ 132,181, 0, 0, 0,235, 4,133,246,117, 10,191,127, 0, 0, 0,
/* 0x02e0 */ 255, 57,198,119,242,137,194, 72, 59, 19,119,235, 57,198, 72,139, /* 0x02e0 */ 232, 68,255,255,255, 57,198,119,242,137,194, 72, 59, 19,119,235,
/* 0x02f0 */ 67, 8,115,108, 72,137, 84, 36, 8, 72,139,125, 8, 72,141, 76, /* 0x02f0 */ 57,198, 72,139, 67, 8,115,108, 72,137, 84, 36, 8, 72,139,125,
/* 0x0300 */ 36, 8, 68,139, 68, 36, 24, 72,137,194, 65,255,213,133,192,117, /* 0x0300 */ 8, 72,141, 76, 36, 8, 68,139, 68, 36, 24, 72,137,194, 65,255,
/* 0x0310 */ 198,139, 68, 36, 16, 72,139,116, 36, 8, 72, 57,198,117,184, 15, /* 0x0310 */ 213,133,192,117,198,139, 68, 36, 16, 72,139,116, 36, 8, 72, 57,
/* 0x0320 */ 182, 76, 36, 25,132,201, 15,149,194, 49,192, 77,133,228, 15,149, /* 0x0320 */ 198,117,184, 15,182, 76, 36, 25,132,201, 15,149,194, 49,192, 77,
/* 0x0330 */ 192,133,194,116, 29, 72,129,254, 0, 2, 0, 0,119, 5, 72, 57, /* 0x0330 */ 133,228, 15,149,192,133,194,116, 29, 72,129,254, 0, 2, 0, 0,
/* 0x0340 */ 51,117, 15, 15,182, 84, 36, 26, 15,182,201, 72,139,123, 8, 65, /* 0x0340 */ 119, 5, 72, 57, 51,117, 15, 15,182, 84, 36, 26, 15,182,201, 72,
/* 0x0350 */ 255,212,139, 68, 36, 20, 72, 1, 69, 8, 72, 41, 69, 0,235, 13, /* 0x0350 */ 139,123, 8, 65,255,212,139, 68, 36, 20, 72, 1, 69, 8, 72, 41,
/* 0x0360 */ 137,242, 72,137,239, 72,137,198,232,219,254,255,255,139, 84, 36, /* 0x0360 */ 69, 0,235, 13,137,242, 72,137,239, 72,137,198,232,219,254,255,
/* 0x0370 */ 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137, /* 0x0370 */ 255,139, 84, 36, 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72,
/* 0x0380 */ 3,233, 20,255,255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93, /* 0x0380 */ 133,192, 72,137, 3,233, 20,255,255,255, 72,131,196, 40, 91, 93,
/* 0x0390 */ 195, 72,133,255, 73,137,209,116, 54, 64,246,199, 1,117, 48, 72, /* 0x0390 */ 65, 92, 65, 93,195, 72,133,255, 73,137,209,116, 54, 64,246,199,
/* 0x03a0 */ 139, 15, 65,137,240, 76, 57,193,116, 18, 72,131,249, 1, 15,148, /* 0x03a0 */ 1,117, 48, 72,139, 15, 65,137,240, 76, 57,193,116, 18, 72,131,
/* 0x03b0 */ 194, 49,192,133,246, 15,149,192,133,194,116, 8, 76,137, 7, 76, /* 0x03b0 */ 249, 1, 15,148,194, 49,192,133,246, 15,149,192,133,194,116, 8,
/* 0x03c0 */ 137, 79, 8,195, 72,133,201,116, 6, 72,131,199, 16,235,208,195, /* 0x03c0 */ 76,137, 7, 76,137, 79, 8,195, 72,133,201,116, 6, 72,131,199,
/* 0x03d0 */ 65, 87,184, 0, 0, 0, 0, 73,137,255, 65, 86, 65, 85, 73,137, /* 0x03d0 */ 16,235,208,195, 65, 87, 73,137,255, 65, 86, 65, 85, 73,137,253,
/* 0x03e0 */ 253, 65, 84, 85, 83, 72,131,236,104, 76, 3,111, 32,102,131,127, /* 0x03e0 */ 65, 84, 85, 83, 72,131,236,104, 76, 3,111, 32, 72,133,246, 72,
/* 0x03f0 */ 16, 3, 72,137, 76, 36, 48,185, 16, 0, 0, 0, 76,137, 68, 36, /* 0x03f0 */ 137,116, 36, 64,137, 84, 36, 60, 72,137, 76, 36, 48, 76,137, 68,
/* 0x0400 */ 40, 72,137,116, 36, 64,137, 84, 36, 60, 76,137, 76, 36, 32, 15, /* 0x0400 */ 36, 40, 76,137, 76, 36, 32,116, 62, 72,139,132, 36,160, 0, 0,
/* 0x0410 */ 183, 87, 56, 15, 68,200, 72,139,132, 36,160, 0, 0, 0, 76,137, /* 0x0410 */ 0, 69, 49,201, 65,131,200,255,185, 50, 0, 0, 0, 49,210, 72,
/* 0x0420 */ 238, 72,131,205,255, 49,219, 49,255,131,193, 34, 76,139, 0,255, /* 0x0420 */ 139, 56, 72,139, 71, 32, 72, 1,248, 72, 43,120, 72, 72,139,112,
/* 0x0430 */ 202,120, 33,131, 62, 1,117, 22, 72,139, 70, 16, 72, 57,232, 72, /* 0x0430 */ 40, 72,141, 4, 62, 72,137, 68, 36, 72,232,210,253,255,255, 73,
/* 0x0440 */ 15, 66,232, 72, 3, 70, 40, 72, 57,195, 72, 15, 66,216, 72,131, /* 0x0440 */ 137,198,233,172, 0, 0, 0,102,131,127, 16, 3,184, 0, 0, 0,
/* 0x0450 */ 198, 56,235,219, 72,129,229, 0,240,255,255, 72, 41,235, 72,129, /* 0x0450 */ 0,185, 16, 0, 0, 0, 15,183, 87, 56, 76,137,238, 15, 68,200,
/* 0x0460 */ 195,255, 15, 0, 0, 72,129,227, 0,240,255,255,246,193, 16,116, /* 0x0460 */ 72,139,132, 36,160, 0, 0, 0, 72,131,205,255, 49,219, 49,255,
/* 0x0470 */ 5, 72,137,239,235, 19, 72,133,237,117, 14,137,200, 76,137,199, /* 0x0470 */ 131,193, 34, 76,139, 0,255,202,120, 33,131, 62, 1,117, 22, 72,
/* 0x0480 */ 131,200, 16, 77,133,192, 15, 69,200, 69, 49,201, 65,131,200,255, /* 0x0480 */ 139, 70, 16, 72, 57,232, 72, 15, 66,232, 72, 3, 70, 40, 72, 57,
/* 0x0490 */ 49,210, 72,137,222,232,116,253,255,255, 72,137,199, 72,141, 4, /* 0x0490 */ 195, 72, 15, 66,216, 72,131,198, 56,235,219, 72,129,229, 0,240,
/* 0x04a0 */ 3,199, 68, 36, 28, 0, 0, 0, 0, 73,137,254, 73, 41,238,102, /* 0x04a0 */ 255,255, 72, 41,235, 72,129,195,255, 15, 0, 0, 72,129,227, 0,
/* 0x04b0 */ 65,131,127, 56, 0, 72,137, 68, 36, 72, 15,132,162, 2, 0, 0, /* 0x04b0 */ 240,255,255,246,193, 16,116, 5, 72,137,239,235, 19, 72,133,237,
/* 0x04c0 */ 72,131,124, 36, 64, 0,116, 34, 65,131,125, 0, 6,117, 27, 73, /* 0x04c0 */ 117, 14,137,200, 76,137,199,131,200, 16, 77,133,192, 15, 69,200,
/* 0x04d0 */ 139, 85, 16, 72,139,124, 36, 48,190, 3, 0, 0, 0, 76, 1,242, /* 0x04d0 */ 69, 49,201, 65,131,200,255, 49,210, 72,137,222,232, 48,253,255,
/* 0x04e0 */ 232,172,254,255,255,233, 97, 2, 0, 0, 65,131,125, 0, 1, 15, /* 0x04e0 */ 255, 72,137,199, 72,141, 4, 3, 73,137,254, 72,137, 68, 36, 72,
/* 0x04f0 */ 133, 86, 2, 0, 0, 72,131,124, 36, 64, 0,116, 73, 73,131,125, /* 0x04f0 */ 73, 41,238,102, 65,131,127, 56, 0,199, 68, 36, 28, 0, 0, 0,
/* 0x0500 */ 8, 0,117, 66, 73,139, 85, 16, 72,139,124, 36, 48,190, 3, 0, /* 0x0500 */ 0, 15,132,162, 2, 0, 0, 72,131,124, 36, 64, 0,116, 34, 65,
/* 0x0510 */ 0, 0, 76, 1,242, 73, 3, 87, 32,232,115,254,255,255, 73, 15, /* 0x0510 */ 131,125, 0, 6,117, 27, 73,139, 85, 16, 72,139,124, 36, 48,190,
/* 0x0520 */ 183, 87, 56, 72,139,124, 36, 48,190, 5, 0, 0, 0,232, 95,254, /* 0x0520 */ 3, 0, 0, 0, 76, 1,242,232,105,254,255,255,233, 97, 2, 0,
/* 0x0530 */ 255,255, 73, 15,183, 87, 54, 72,139,124, 36, 48,190, 4, 0, 0, /* 0x0530 */ 0, 65,131,125, 0, 1, 15,133, 86, 2, 0, 0, 72,131,124, 36,
/* 0x0540 */ 0,232, 75,254,255,255, 73,139, 69, 16, 65,139, 77, 4, 65,131, /* 0x0540 */ 64, 0,116, 73, 73,131,125, 8, 0,117, 66, 73,139, 85, 16, 72,
/* 0x0550 */ 200,255, 73,139, 85, 32,199, 68, 36, 24, 64, 98, 81,115, 76, 1, /* 0x0550 */ 139,124, 36, 48,190, 3, 0, 0, 0, 76, 1,242, 73, 3, 87, 32,
/* 0x0560 */ 240,131,225, 7, 73,137,196, 72,137, 68, 36, 88, 73,139, 69, 40, /* 0x0560 */ 232, 48,254,255,255, 73, 15,183, 87, 56, 72,139,124, 36, 48,190,
/* 0x0570 */ 76,137,229,193,225, 2,211,108, 36, 24,129,229,255, 15, 0, 0, /* 0x0570 */ 5, 0, 0, 0,232, 28,254,255,255, 73, 15,183, 87, 54, 72,139,
/* 0x0580 */ 131,100, 36, 24, 7, 72,137, 84, 36, 80, 76, 1,224, 72, 1,234, /* 0x0580 */ 124, 36, 48,190, 4, 0, 0, 0,232, 8,254,255,255, 73,139, 69,
/* 0x0590 */ 73, 41,236, 72,137, 68, 36, 8,185, 50, 0, 0, 0, 73,139, 69, /* 0x0590 */ 16, 65,139, 77, 4, 65,131,200,255, 73,139, 85, 32,199, 68, 36,
/* 0x05a0 */ 8, 72,137, 84, 36, 16, 72, 41,232, 72,131,124, 36, 64, 0,117, /* 0x05a0 */ 24, 64, 98, 81,115, 76, 1,240,131,225, 7, 73,137,196, 72,137,
/* 0x05b0 */ 7, 68,139, 68, 36, 60,177, 18,139, 84, 36, 24, 72,139,116, 36, /* 0x05b0 */ 68, 36, 88, 73,139, 69, 40, 76,137,229,193,225, 2,211,108, 36,
/* 0x05c0 */ 16, 73,137,193, 76,137,231,131,202, 2, 72,131,124, 36, 64, 0, /* 0x05c0 */ 24,129,229,255, 15, 0, 0,131,100, 36, 24, 7, 72,137, 84, 36,
/* 0x05d0 */ 15, 68, 84, 36, 24,232, 52,252,255,255, 73, 57,196, 15,133, 37, /* 0x05d0 */ 80, 76, 1,224, 72, 1,234, 73, 41,236, 72,137, 68, 36, 8,185,
/* 0x05e0 */ 1, 0, 0, 72,131,124, 36, 64, 0,116, 25, 72,139, 76, 36, 32, /* 0x05e0 */ 50, 0, 0, 0, 73,139, 69, 8, 72,137, 84, 36, 16, 72, 41,232,
/* 0x05f0 */ 72,139, 84, 36, 40, 72,141,116, 36, 80, 72,139,124, 36, 64,232, /* 0x05f0 */ 72,131,124, 36, 64, 0,117, 7, 68,139, 68, 36, 60,177, 18,139,
/* 0x0600 */ 124,252,255,255, 72,139,108, 36, 16, 72,247,221,129,229,255, 15, /* 0x0600 */ 84, 36, 24, 72,139,116, 36, 16, 73,137,193, 76,137,231,131,202,
/* 0x0610 */ 0, 0,246, 68, 36, 24, 2,116, 17, 72,139, 68, 36, 16, 72,137, /* 0x0610 */ 2, 72,131,124, 36, 64, 0, 15, 68, 84, 36, 24,232,240,251,255,
/* 0x0620 */ 233,252, 73,141, 60, 4, 49,192,243,170, 72,131,124, 36, 64, 0, /* 0x0620 */ 255, 73, 57,196, 15,133, 37, 1, 0, 0, 72,131,124, 36, 64, 0,
/* 0x0630 */ 15,132,220, 0, 0, 0,199, 68, 36, 4, 0, 0, 0, 0, 72,184, /* 0x0630 */ 116, 25, 72,139, 76, 36, 32, 72,139, 84, 36, 40, 72,141,116, 36,
/* 0x0640 */ 255,255,255,255, 1, 0, 0, 0, 73, 35, 69, 0, 72,186, 1, 0, /* 0x0640 */ 80, 72,139,124, 36, 64,232, 57,252,255,255, 72,139,108, 36, 16,
/* 0x0650 */ 0, 0, 1, 0, 0, 0, 72, 57,208, 15,133,148, 0, 0, 0, 73, /* 0x0650 */ 72,247,221,129,229,255, 15, 0, 0,246, 68, 36, 24, 2,116, 17,
/* 0x0660 */ 139, 85, 40, 73,139, 77, 16, 73, 59, 85, 32, 72,141, 4, 10, 74, /* 0x0660 */ 72,139, 68, 36, 16, 72,137,233,252, 73,141, 60, 4, 49,192,243,
/* 0x0670 */ 141, 28, 48,117, 14,137,216,247,216, 37,255, 15, 0, 0,131,248, /* 0x0670 */ 170, 72,131,124, 36, 64, 0, 15,132,220, 0, 0, 0,199, 68, 36,
/* 0x0680 */ 3,119, 57, 73,131,125, 8, 0, 74,141, 92, 49, 12,116, 45, 69, /* 0x0680 */ 4, 0, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0, 73,
/* 0x0690 */ 49,201, 65,131,200,255, 49,255,185, 34, 0, 0, 0,186, 3, 0, /* 0x0690 */ 35, 69, 0, 72,186, 1, 0, 0, 0, 1, 0, 0, 0, 72, 57,208,
/* 0x06a0 */ 0, 0,190, 0, 16, 0, 0,199, 68, 36, 4, 1, 0, 0, 0,232, /* 0x06a0 */ 15,133,148, 0, 0, 0, 73,139, 85, 40, 73,139, 77, 16, 73, 59,
/* 0x06b0 */ 90,251,255,255, 72,133,192, 72,137,195,116, 55,131,124, 36, 4, /* 0x06b0 */ 85, 32, 72,141, 4, 10, 74,141, 28, 48,117, 14,137,216,247,216,
/* 0x06c0 */ 0,199, 3, 15, 5, 90,195,116, 18,186, 5, 0, 0, 0,190, 4, /* 0x06c0 */ 37,255, 15, 0, 0,131,248, 3,119, 57, 73,131,125, 8, 0, 74,
/* 0x06d0 */ 0, 0, 0, 72,137,223,232, 94,251,255,255, 72,133,219,116, 19, /* 0x06d0 */ 141, 92, 49, 12,116, 45, 69, 49,201, 65,131,200,255, 49,255,185,
/* 0x06e0 */ 72,139,124, 36, 48, 72,137,218, 49,246, 72,131,231,254,232,158, /* 0x06e0 */ 34, 0, 0, 0,186, 3, 0, 0, 0,190, 0, 16, 0, 0,199, 68,
/* 0x06f0 */ 252,255,255,139, 84, 36, 24, 72,139,116, 36, 16, 76,137,231,232, /* 0x06f0 */ 36, 4, 1, 0, 0, 0,232, 22,251,255,255, 72,133,192, 72,137,
/* 0x0700 */ 53,251,255,255,133,192,116, 10,191,127, 0, 0, 0,232, 19,251, /* 0x0700 */ 195,116, 55,131,124, 36, 4, 0,199, 3, 15, 5, 90,195,116, 18,
/* 0x0710 */ 255,255, 72,139, 68, 36, 16, 72, 1,232, 73, 1,196, 76, 59,100, /* 0x0710 */ 186, 5, 0, 0, 0,190, 4, 0, 0, 0, 72,137,223,232, 27,251,
/* 0x0720 */ 36, 8,115, 39, 76, 41,100, 36, 8,139, 84, 36, 24, 69, 49,201, /* 0x0720 */ 255,255, 72,133,219,116, 19, 72,139,124, 36, 48, 72,137,218, 49,
/* 0x0730 */ 72,139,116, 36, 8, 65,131,200,255,185, 50, 0, 0, 0, 76,137, /* 0x0730 */ 246, 72,131,231,254,232, 91,252,255,255,139, 84, 36, 24, 72,139,
/* 0x0740 */ 231,232,200,250,255,255, 73, 57,196,117,189,255, 68, 36, 28, 65, /* 0x0740 */ 116, 36, 16, 76,137,231,232,242,250,255,255,133,192,116, 10,191,
/* 0x0750 */ 15,183, 71, 56, 73,131,197, 56, 57, 68, 36, 28, 15,140, 94,253, /* 0x0750 */ 127, 0, 0, 0,232,208,250,255,255, 72,139, 68, 36, 16, 72, 1,
/* 0x0760 */ 255,255, 72,139,132, 36,160, 0, 0, 0, 76,137, 48, 77, 3,119, /* 0x0760 */ 232, 73, 1,196, 76, 59,100, 36, 8,115, 39, 76, 41,100, 36, 8,
/* 0x0770 */ 24, 72,131,196,104, 91, 93, 65, 92, 65, 93, 76,137,240, 65, 94, /* 0x0770 */ 139, 84, 36, 24, 69, 49,201, 72,139,116, 36, 8, 65,131,200,255,
/* 0x0780 */ 65, 95,195, 65, 87, 65, 86, 73,137,206, 49,201, 65, 85, 65, 84, /* 0x0780 */ 185, 50, 0, 0, 0, 76,137,231,232,132,250,255,255, 73, 57,196,
/* 0x0790 */ 77,137,204, 85, 72,137,213, 76,141,109, 64, 83, 76,137,195, 72, /* 0x0790 */ 117,189,255, 68, 36, 28, 65, 15,183, 71, 56, 73,131,197, 56, 57,
/* 0x07a0 */ 131,236, 72,139, 7, 72,137,124, 36, 24, 72,137,124, 36, 40, 76, /* 0x07a0 */ 68, 36, 28, 15,140, 94,253,255,255, 72,139,132, 36,160, 0, 0,
/* 0x07b0 */ 141,188, 36,128, 0, 0, 0, 72,137,116, 36, 32, 72,141,116, 36, /* 0x07b0 */ 0, 76,137, 48, 77, 3,119, 24, 72,131,196,104, 91, 93, 65, 92,
/* 0x07c0 */ 48, 72,137, 84, 36, 56, 76,137,194, 72,137, 68, 36, 48,139, 71, /* 0x07c0 */ 65, 93, 76,137,240, 65, 94, 65, 95,195, 65, 87, 65, 86, 73,137,
/* 0x07d0 */ 4, 72,141,124, 36, 16, 72,131,192, 12, 72,137, 68, 36, 16,232, /* 0x07d0 */ 206, 49,201, 65, 85, 65, 84, 77,137,204, 85, 72,137,213, 76,141,
/* 0x07e0 */ 156,250,255,255, 65, 83, 77,137,225, 49,210, 73,137,216, 76,137, /* 0x07e0 */ 109, 64, 83, 76,137,195, 72,131,236, 72,139, 7, 72,137,124, 36,
/* 0x07f0 */ 241, 72,137,239, 72,141,116, 36, 40, 65, 87,232,208,251,255,255, /* 0x07f0 */ 24, 72,137,124, 36, 40, 76,141,188, 36,128, 0, 0, 0, 72,137,
/* 0x0800 */ 190, 9, 0, 0, 0, 72,137,194, 76,137,247, 73,137,196,232,126, /* 0x0800 */ 116, 36, 32, 72,141,116, 36, 48, 72,137, 84, 36, 56, 76,137,194,
/* 0x0810 */ 251,255,255, 65, 89, 65, 90,102,131,125, 56, 0,199, 68, 36, 12, /* 0x0810 */ 72,137, 68, 36, 48,139, 71, 4, 72,141,124, 36, 16, 72,131,192,
/* 0x0820 */ 0, 0, 0, 0, 15,132,143, 0, 0, 0, 65,131,125, 0, 3,117, /* 0x0820 */ 12, 72,137, 68, 36, 16,232, 89,250,255,255, 65, 83, 77,137,225,
/* 0x0830 */ 114, 73,139, 63, 73, 3,125, 16, 49,210, 49,246,232,240,249,255, /* 0x0830 */ 49,210, 73,137,216, 76,137,241, 72,137,239, 72,141,116, 36, 40,
/* 0x0840 */ 255,133,192,137,195,120, 23,186, 0, 4, 0, 0, 72,137,238,137, /* 0x0840 */ 65, 87,232,141,251,255,255,190, 9, 0, 0, 0, 72,137,194, 76,
/* 0x0850 */ 199,232,235,249,255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, /* 0x0850 */ 137,247, 73,137,196,232, 59,251,255,255, 65, 89, 65, 90,102,131,
/* 0x0860 */ 0, 0, 0,232,189,249,255,255, 73,199, 7, 0, 0, 0, 0, 65, /* 0x0860 */ 125, 56, 0,199, 68, 36, 12, 0, 0, 0, 0, 15,132,143, 0, 0,
/* 0x0870 */ 80, 69, 49,201, 69, 49,192, 49,201, 65, 87,137,218, 49,246, 72, /* 0x0870 */ 0, 65,131,125, 0, 3,117,114, 73,139, 63, 73, 3,125, 16, 49,
/* 0x0880 */ 137,239,232, 73,251,255,255, 73,139, 23,190, 7, 0, 0, 0, 76, /* 0x0880 */ 210, 49,246,232,173,249,255,255,133,192,137,195,120, 23,186, 0,
/* 0x0890 */ 137,247, 73,137,196,232,247,250,255,255,137,223,232,140,249,255, /* 0x0890 */ 4, 0, 0, 72,137,238,137,199,232,168,249,255,255, 72, 61, 0,
/* 0x08a0 */ 255, 94, 95,255, 68, 36, 12, 15,183, 69, 56, 73,131,197, 56, 57, /* 0x08a0 */ 4, 0, 0,116, 10,191,127, 0, 0, 0,232,122,249,255,255, 73,
/* 0x08b0 */ 68, 36, 12, 15,130,113,255,255,255, 72,131,196, 72, 76,137,224, /* 0x08b0 */ 199, 7, 0, 0, 0, 0, 65, 80, 69, 49,201, 69, 49,192, 49,201,
/* 0x08c0 */ 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195 /* 0x08c0 */ 65, 87,137,218, 49,246, 72,137,239,232, 6,251,255,255, 73,139,
/* 0x08d0 */ 23,190, 7, 0, 0, 0, 76,137,247, 73,137,196,232,180,250,255,
/* 0x08e0 */ 255,137,223,232, 73,249,255,255, 94, 95,255, 68, 36, 12, 15,183,
/* 0x08f0 */ 69, 56, 73,131,197, 56, 57, 68, 36, 12, 15,130,113,255,255,255,
/* 0x0900 */ 72,131,196, 72, 76,137,224, 91, 93, 65, 92, 65, 93, 65, 94, 65,
/* 0x0910 */ 95,195
}; };
File diff suppressed because it is too large Load Diff
+97 -93
View File
@@ -1,5 +1,5 @@
/* arm64-linux.elf-fold.h /* arm64-linux.elf-fold.h
created from arm64-linux.elf-fold.bin, 2608 (0xa30) bytes created from arm64-linux.elf-fold.bin, 2672 (0xa70) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,20 +31,20 @@
*/ */
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2608 #define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2672
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xe9f98e42 #define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x3b16a767
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x309ddfb4 #define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x456496b0
unsigned char stub_arm64_linux_elf_fold[2608] = { unsigned char stub_arm64_linux_elf_fold[2672] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 48, 10, 0, 0, 0, 0, 0, 0, 48, 10, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 112, 10, 0, 0, 0, 0, 0, 0,112, 10, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 48, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 */ 112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146,
@@ -61,7 +61,7 @@ unsigned char stub_arm64_linux_elf_fold[2608] = {
/* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170, /* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170,
/* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170, /* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170,
/* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170, /* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170,
/* 0x0190 */ 206, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, /* 0x0190 */ 222, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210,
/* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210, /* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210,
/* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148, /* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148,
/* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248, /* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248,
@@ -114,89 +114,93 @@ unsigned char stub_arm64_linux_elf_fold[2608] = {
/* 0x04b0 */ 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20,127, 4, 0,241, /* 0x04b0 */ 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20,127, 4, 0,241,
/* 0x04c0 */ 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23, 99, 0, 0,180, /* 0x04c0 */ 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23, 99, 0, 0,180,
/* 0x04d0 */ 0, 64, 0,145,244,255,255, 23,192, 3, 95,214,253,123,181,169, /* 0x04d0 */ 0, 64, 0,145,244,255,255, 23,192, 3, 95,214,253,123,181,169,
/* 0x04e0 */ 253, 3, 0,145,236, 55, 8,109,204, 0,103,158, 6, 16, 64,249, /* 0x04e0 */ 253, 3, 0,145,234, 47, 7,109,202, 0,103,158, 6, 16, 64,249,
/* 0x04f0 */ 238, 63, 9,109,251,115, 5,169,232, 39, 6,109, 27, 0, 6,139, /* 0x04f0 */ 238, 63, 9,109,247, 99, 3,169,236, 55, 8,109,251,115, 5,169,
/* 0x0500 */ 234, 47, 7,109,245, 91, 2,169,246, 3, 0,170, 0, 32, 64,121, /* 0x0500 */ 232, 39, 6,109,247, 3, 0,170, 28, 0, 6,139, 64, 1,102,158,
/* 0x0510 */ 247, 99, 3,169, 31, 12, 0,113,248, 3, 3,170,128, 1,102,158, /* 0x0510 */ 248, 3, 3,170,245, 91, 2,169,249,107, 4,169,243, 83, 1,169,
/* 0x0520 */ 3, 2,128, 82,142, 0,103,158, 99, 16,159, 26,175, 0,103,158, /* 0x0520 */ 77, 0, 39, 30,246, 3, 1,170,142, 0,103,158,250, 3, 7,170,
/* 0x0530 */ 197,114, 64,121,243, 83, 1,169, 0, 0, 64,249,247, 3, 1,170, /* 0x0530 */ 175, 0,103,158, 2, 0, 64,249,161, 1, 0,180, 65, 16, 64,249,
/* 0x0540 */ 77, 0, 39, 30,252, 3, 7,170,249,107, 4,169, 99,136, 0, 17, /* 0x0540 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 65, 0, 1,139,
/* 0x0550 */ 226, 3, 27,170, 1, 0,128,210, 19, 0,128,146,165, 4, 0, 81, /* 0x0550 */ 32, 36, 64,249, 33, 20, 64,249, 64, 0, 0,203, 2, 0,128, 82,
/* 0x0560 */ 191, 4, 0, 49,160, 1, 0, 84, 68, 0, 64,185,159, 4, 0,113, /* 0x0560 */ 79,255,255,151,243, 3, 0,170, 43, 0, 0, 20,224, 34, 64,121,
/* 0x0570 */ 1, 1, 0, 84, 71, 8, 64,249, 68, 20, 64,249,127, 2, 7,235, /* 0x0570 */ 3, 2,128, 82,231,114, 64,121,228, 3, 28,170, 31, 12, 0,113,
/* 0x0580 */ 228, 0, 4,139,115,146,135,154, 63, 0, 4,235, 33, 32,132,154, /* 0x0580 */ 19, 0,128,146, 99, 16,159, 26,224, 3, 2,170, 99,136, 0, 17,
/* 0x0590 */ 66,224, 0,145,242,255,255, 23,226, 3, 60,170,115, 2, 28,138, /* 0x0590 */ 231, 4, 0, 81,255, 4, 0, 49,160, 1, 0, 84,133, 0, 64,185,
/* 0x05a0 */ 65, 0, 1,139, 33, 0, 19,203, 74, 0,103,158, 33, 0, 28,138, /* 0x05a0 */ 191, 4, 0,113, 1, 1, 0, 84,136, 8, 64,249,133, 20, 64,249,
/* 0x05b0 */ 163, 0, 32, 55, 83, 0, 0,181,160, 0, 0,181, 0, 0,128,210, /* 0x05b0 */ 127, 2, 8,235, 5, 1, 5,139,115,146,136,154, 63, 0, 5,235,
/* 0x05c0 */ 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82, /* 0x05c0 */ 33, 32,133,154,132,224, 0,145,242,255,255, 23,228, 3, 58,170,
/* 0x05d0 */ 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, 48,255,255,151, /* 0x05d0 */ 115, 2, 26,138,129, 0, 1,139, 33, 0, 19,203, 33, 0, 26,138,
/* 0x05e0 */ 19, 0, 19,203,232, 3, 39, 30, 1, 1, 38, 30,192,114, 64,121, /* 0x05e0 */ 163, 0, 32, 55, 83, 0, 0,181,162, 0, 0,181, 0, 0,128,210,
/* 0x05f0 */ 63, 0, 0,107,202, 20, 0, 84, 96, 3, 64,185, 55, 1, 0,180, /* 0x05f0 */ 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82,
/* 0x0600 */ 31, 24, 0,113,225, 0, 0, 84, 98, 11, 64,249,224, 3, 24,170, /* 0x0600 */ 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, 36,255,255,151,
/* 0x0610 */ 97, 0,128, 82, 98, 2, 2,139,160,255,255,151,148, 0, 0, 20, /* 0x0610 */ 19, 0, 19,203,224, 3, 58,170,232, 3, 39, 30, 12, 0,103,158,
/* 0x0620 */ 31, 4, 0,113, 65, 18, 0, 84, 87, 2, 0,180, 96, 7, 64,249, /* 0x0620 */ 1, 1, 38, 30,224,114, 64,121, 63, 0, 0,107,106, 20, 0, 84,
/* 0x0630 */ 0, 2, 0,181,194, 18, 64,249,224, 3, 24,170, 99, 11, 64,249, /* 0x0630 */ 128, 3, 64,185, 54, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84,
/* 0x0640 */ 97, 0,128, 82, 98, 2, 2,139, 66, 0, 3,139,147,255,255,151, /* 0x0640 */ 130, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0650 */ 194,114, 64,121,224, 3, 24,170,161, 0,128, 82,143,255,255,151, /* 0x0650 */ 146,255,255,151,148, 0, 0, 20, 31, 4, 0,113, 65, 18, 0, 84,
/* 0x0660 */ 194,110, 64,121,224, 3, 24,170,129, 0,128, 82,139,255,255,151, /* 0x0660 */ 86, 2, 0,180,128, 7, 64,249, 0, 2, 0,181,226, 18, 64,249,
/* 0x0670 */ 122, 7, 64,185, 0, 72,140, 82, 32,106,174,114,117, 11, 64,249, /* 0x0670 */ 224, 3, 24,170,131, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0680 */ 90, 11, 30, 83,255, 2, 31,235, 26, 36,218, 26,117, 2, 21,139, /* 0x0680 */ 66, 0, 3,139,133,255,255,151,226,114, 64,121,224, 3, 24,170,
/* 0x0690 */ 64, 11, 0, 18,116, 19, 64,249,103, 7, 64,249, 70, 6,128, 82, /* 0x0690 */ 161, 0,128, 82,129,255,255,151,226,110, 64,121,224, 3, 24,170,
/* 0x06a0 */ 9, 0, 39, 30, 96, 23, 64,249,180, 83, 0,249,160, 2, 0,139, /* 0x06a0 */ 129, 0,128, 82,125,255,255,151,155, 7, 64,185, 0, 72,140, 82,
/* 0x06b0 */ 181, 87, 0,249, 11, 0,103,158, 64, 1,102,158, 35, 1, 38, 30, /* 0x06b0 */ 32,106,174,114,149, 11, 64,249,123, 11, 30, 83,223, 2, 31,235,
/* 0x06c0 */ 165, 2, 0,138, 64, 0,128, 82, 2, 16,159, 26,255, 2, 31,235, /* 0x06c0 */ 27, 36,219, 26,117, 2, 21,139, 96, 11, 0, 18,148, 19, 64,249,
/* 0x06d0 */ 160, 1, 38, 30,181, 2, 5,203,180, 0, 20,139, 66, 0, 3, 42, /* 0x06d0 */ 135, 7, 64,249, 67, 6,128, 82, 9, 0, 39, 30,128, 23, 64,249,
/* 0x06e0 */ 67, 2,128, 82,225, 3, 20,170,229, 0, 5,203, 4, 0,159, 90, /* 0x06e0 */ 180, 83, 0,249,160, 2, 0,139,181, 87, 0,249, 11, 0,103,158,
/* 0x06f0 */ 255, 2, 31,235,195, 16,131, 26,224, 3, 21,170,232,254,255,151, /* 0x06f0 */ 128, 1,102,158, 36, 1, 38, 30,165, 2, 0,138, 64, 0,128, 82,
/* 0x0700 */ 191, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,201,254,255,151, /* 0x0700 */ 2, 16,159, 26,223, 2, 31,235, 66, 0, 4, 42, 64, 2,128, 82,
/* 0x0710 */ 215, 0, 0,180,194, 1,102,158,224, 3, 23,170,227, 1,102,158, /* 0x0710 */ 164, 1, 38, 30,181, 2, 5,203, 3, 0,131, 26,180, 0, 20,139,
/* 0x0720 */ 161,131, 2,145, 11,255,255,151, 64, 1,102,158,249, 3, 20,203, /* 0x0720 */ 223, 2, 31,235,224, 3, 21,170,225, 3, 20,170,229, 0, 5,203,
/* 0x0730 */ 57, 3, 0,138,122, 0, 8, 55, 87, 1, 0,181, 61, 0, 0, 20, /* 0x0730 */ 132, 0,159, 90,218,254,255,151,191, 2, 0,235, 96, 0, 0, 84,
/* 0x0740 */ 217,255,255,180,161, 2, 20,139, 0, 0,128,210, 63,104, 32, 56, /* 0x0740 */ 224, 15,128, 82,187,254,255,151,214, 0, 0,180,194, 1,102,158,
/* 0x0750 */ 0, 4, 0,145, 31, 0, 25,235,161,255,255, 84,247,255,255, 23, /* 0x0750 */ 224, 3, 22,170,227, 1,102,158,161,131, 2,145,253,254,255,151,
/* 0x0760 */ 96, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, /* 0x0760 */ 128, 1,102,158,249, 3, 20,203, 57, 3, 0,138,123, 0, 8, 55,
/* 0x0770 */ 97, 5, 0, 84, 96, 23, 64,249, 98, 19, 64,249, 97, 11, 64,249, /* 0x0770 */ 86, 1, 0,181, 61, 0, 0, 20,217,255,255,180,161, 2, 20,139,
/* 0x0780 */ 31, 0, 2,235, 97, 1, 0, 84,122, 14, 0,145, 90, 3, 0,139, /* 0x0780 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 25,235,
/* 0x0790 */ 90, 3, 1,139, 90,247,126,146,224, 3, 26, 75, 0, 0, 60, 10, /* 0x0790 */ 161,255,255, 84,247,255,255, 23,128, 3, 64,249,225, 3, 0,178,
/* 0x07a0 */ 31, 28, 0,113,105, 0, 0, 84, 0, 0,128, 82, 13, 0, 0, 20, /* 0x07a0 */ 0,128, 64,146, 31, 0, 1,235, 97, 5, 0, 84,128, 23, 64,249,
/* 0x07b0 */ 96, 7, 64,249, 96, 6, 0,180, 0, 0,128,210, 1, 0,130,210, /* 0x07b0 */ 130, 19, 64,249,129, 11, 64,249, 31, 0, 2,235, 97, 1, 0, 84,
/* 0x07c0 */ 98, 0,128, 82, 67, 4,128, 82, 4, 0,128, 18,229, 3, 0,170, /* 0x07c0 */ 123, 14, 0,145,123, 3, 0,139,123, 3, 1,139,123,247,126,146,
/* 0x07d0 */ 179,254,255,151,250, 3, 0,170, 32, 2, 0,180, 32, 0,128, 82, /* 0x07d0 */ 224, 3, 27, 75, 0, 0, 58, 10, 31, 28, 0,113,105, 0, 0, 84,
/* 0x07e0 */ 33, 0,128, 82, 1,128,186,114, 65, 3, 0,185, 1,120,128, 82, /* 0x07e0 */ 0, 0,128, 82, 13, 0, 0, 20,128, 7, 64,249,224, 6, 0,180,
/* 0x07f0 */ 225,203,186,114, 65, 7, 0,185,160, 0, 0, 52,224, 3, 26,170, /* 0x07f0 */ 0, 0,128,210, 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82,
/* 0x0800 */ 1, 1,128,210,162, 0,128, 82,158,254,255,151, 0,251,127,146, /* 0x0800 */ 4, 0,128, 18,229, 3, 0,170,165,254,255,151,251, 3, 0,170,
/* 0x0810 */ 1, 0,128, 82,226, 3, 26,170, 32,255,255,151, 34, 1, 38, 30, /* 0x0810 */ 32, 2, 0,180, 32, 0,128, 82, 33, 0,128, 82, 1,128,186,114,
/* 0x0820 */ 224, 3, 21,170,225, 3, 20,170,150,254,255,151,224,246,255, 53, /* 0x0820 */ 97, 3, 0,185, 1,120,128, 82,225,203,186,114, 97, 7, 0,185,
/* 0x0830 */ 96, 1,102,158, 52, 3, 20,139,181, 2, 20,139,191, 2, 0,235, /* 0x0830 */ 160, 0, 0, 52,224, 3, 27,170, 1, 1,128,210,162, 0,128, 82,
/* 0x0840 */ 98, 1, 0, 84, 97, 1,102,158,224, 3, 21,170, 34, 1, 38, 30, /* 0x0840 */ 144,254,255,151, 0,251,127,146, 1, 0,128, 82,226, 3, 27,170,
/* 0x0850 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 33, 0, 21,203, /* 0x0850 */ 18,255,255,151, 34, 1, 38, 30,224, 3, 21,170,225, 3, 20,170,
/* 0x0860 */ 143,254,255,151,191, 2, 0,235, 1,245,255, 84, 0, 1, 38, 30, /* 0x0860 */ 136,254,255,151,224,246,255, 53, 96, 1,102,158, 52, 3, 20,139,
/* 0x0870 */ 123,227, 0,145, 0, 4, 0, 17, 8, 0, 39, 30, 91,255,255, 23, /* 0x0870 */ 181, 2, 20,139,191, 2, 0,235, 98, 1, 0, 84, 97, 1,102,158,
/* 0x0880 */ 58, 0, 19,139, 90, 35, 0,145,214,255,255, 23,128, 1,102,158, /* 0x0880 */ 224, 3, 21,170, 34, 1, 38, 30, 67, 6,128, 82, 4, 0,128, 18,
/* 0x0890 */ 232, 39, 70,109,247, 99, 67,169,234, 47, 71,109,249,107, 68,169, /* 0x0890 */ 5, 0,128,210, 33, 0, 21,203,129,254,255,151,191, 2, 0,235,
/* 0x08a0 */ 236, 55, 72,109,251,115, 69,169,238, 63, 73,109, 19, 0, 0,249, /* 0x08a0 */ 1,245,255, 84, 0, 1, 38, 30,156,227, 0,145, 0, 4, 0, 17,
/* 0x08b0 */ 192, 14, 64,249,245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169, /* 0x08b0 */ 8, 0, 39, 30, 91,255,255, 23, 64, 1,102,158,192, 0, 0,180,
/* 0x08c0 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145, /* 0x08c0 */ 19, 0, 0,249, 4, 0, 0, 20, 59, 0, 19,139,123, 35, 0,145,
/* 0x08d0 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169, /* 0x08d0 */ 210,255,255, 23,224, 14, 64,249,232, 39, 70,109,245, 91, 66,169,
/* 0x08e0 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185, /* 0x08e0 */ 234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109,243, 83, 65,169,
/* 0x08f0 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145, /* 0x08f0 */ 238, 63, 73,109,247, 99, 67,169,249,107, 68,169,251,115, 69,169,
/* 0x0900 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145, /* 0x0900 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145,
/* 0x0910 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249, /* 0x0910 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169,
/* 0x0920 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249, /* 0x0920 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185,
/* 0x0930 */ 164, 51, 0,249,135,254,255,151,164, 51, 64,249,161, 3, 2,145, /* 0x0930 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145,
/* 0x0940 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, /* 0x0940 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145,
/* 0x0950 */ 231, 3, 25,170,224, 3, 19,170,225,254,255,151,245, 3, 0,170, /* 0x0950 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249,
/* 0x0960 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,203,254,255,151, /* 0x0960 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249,
/* 0x0970 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, /* 0x0970 */ 164, 51, 0,249,119,254,255,151,164, 51, 64,249,161, 3, 2,145,
/* 0x0980 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, /* 0x0980 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145,
/* 0x0990 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 74,254,255,151, /* 0x0990 */ 231, 3, 25,170,224, 3, 19,170,209,254,255,151,245, 3, 0,170,
/* 0x09a0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 33,254,255,151, /* 0x09a0 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,187,254,255,151,
/* 0x09b0 */ 225, 3, 19,170, 2,128,128,210, 32,254,255,151, 31, 0, 16,241, /* 0x09b0 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185,
/* 0x09c0 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, /* 0x09c0 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249,
/* 0x09d0 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, /* 0x09d0 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 58,254,255,151,
/* 0x09e0 */ 224, 3, 19,170,191, 55, 0,249,189,254,255,151,245, 3, 0,170, /* 0x09e0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 17,254,255,151,
/* 0x09f0 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,167,254,255,151, /* 0x09f0 */ 225, 3, 19,170, 2,128,128,210, 16,254,255,151, 31, 0, 16,241,
/* 0x0a00 */ 224, 3, 24, 42, 19,254,255,151,148,226, 0,145,214, 6, 0, 17, /* 0x0a00 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,
/* 0x0a10 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, /* 0x0a10 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170,
/* 0x0a20 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 /* 0x0a20 */ 224, 3, 19,170,191, 55, 0,249,173,254,255,151,245, 3, 0,170,
/* 0x0a30 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,151,254,255,151,
/* 0x0a40 */ 224, 3, 24, 42, 3,254,255,151,148,226, 0,145,214, 6, 0, 17,
/* 0x0a50 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169,
/* 0x0a60 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214
}; };
+121 -117
View File
@@ -1,5 +1,5 @@
/* powerpc64-linux.elf-fold.h /* powerpc64-linux.elf-fold.h
created from powerpc64-linux.elf-fold.bin, 3256 (0xcb8) bytes created from powerpc64-linux.elf-fold.bin, 3328 (0xd00) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,21 +31,21 @@
*/ */
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3256 #define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3328
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xc74d6188 #define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xa80f84a4
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x728a945d #define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x0c970d6e
unsigned char stub_powerpc64_linux_elf_fold[3256] = { unsigned char stub_powerpc64_linux_elf_fold[3328] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 12,104, /* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 12,176,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 12,100, 0, 0, 0, 0, 0, 0, 12,100, /* 0x0060 */ 0, 0, 0, 0, 0, 0, 12,172, 0, 0, 0, 0, 0, 0, 12,172,
/* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, /* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 12,104, 0, 0, 0, 0, 0, 16, 12,104, /* 0x0080 */ 0, 0, 0, 0, 0, 0, 12,176, 0, 0, 0, 0, 0, 16, 12,176,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 12,104, 0, 0, 0, 0, 0, 0, 0, 80, /* 0x0090 */ 0, 0, 0, 0, 0, 16, 12,176, 0, 0, 0, 0, 0, 0, 0, 80,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248,
/* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125, /* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125,
@@ -75,7 +75,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = {
/* 0x0240 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120, /* 0x0240 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120,
/* 0x0250 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112, /* 0x0250 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112,
/* 0x0260 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136, /* 0x0260 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136,
/* 0x0270 */ 127,202,243,120, 72, 0, 7,217, 56, 33, 8,144,126,162,171,120, /* 0x0270 */ 127,202,243,120, 72, 0, 8, 33, 56, 33, 8,144,126,162,171,120,
/* 0x0280 */ 112, 96, 0, 7, 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0, /* 0x0280 */ 112, 96, 0, 7, 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0,
/* 0x0290 */ 64,130, 0, 24,232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20, /* 0x0290 */ 64,130, 0, 24,232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20,
/* 0x02a0 */ 232, 99, 0, 0,124, 99, 2, 20,248,117, 0, 0,124,127, 27,120, /* 0x02a0 */ 232, 99, 0, 0,124, 99, 2, 20,248,117, 0, 0,124,127, 27,120,
@@ -104,7 +104,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = {
/* 0x0410 */ 233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,233, 67, 0, 0, /* 0x0410 */ 233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,233, 67, 0, 0,
/* 0x0420 */ 125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32, 0, 0, 0, 0, /* 0x0420 */ 125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32, 0, 0, 0, 0,
/* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,124, 8, 2,166, /* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,124, 8, 2,166,
/* 0x0440 */ 145,129, 0, 8, 72, 0, 7,181,248, 33,255, 81,124,126, 27,120, /* 0x0440 */ 145,129, 0, 8, 72, 0, 7,253,248, 33,255, 81,124,126, 27,120,
/* 0x0450 */ 124,159, 35,120,124,189, 43,120,124,220, 51,120, 46, 38, 0, 0, /* 0x0450 */ 124,159, 35,120,124,189, 43,120,124,220, 51,120, 46, 38, 0, 0,
/* 0x0460 */ 233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 84,127,195,243,120, /* 0x0460 */ 233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 84,127,195,243,120,
/* 0x0470 */ 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,129, 65, 0,112, /* 0x0470 */ 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,129, 65, 0,112,
@@ -128,116 +128,120 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = {
/* 0x0590 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 49,129, 1, 0,112, /* 0x0590 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 49,129, 1, 0,112,
/* 0x05a0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80, /* 0x05a0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80,
/* 0x05b0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,168, 56, 33, 0,176, /* 0x05b0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,168, 56, 33, 0,176,
/* 0x05c0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 6,128, 0, 0, 0, 0, /* 0x05c0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 6,200, 0, 0, 0, 0,
/* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 44, 35, 0, 0, 77,130, 0, 32, /* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 44, 35, 0, 0, 77,130, 0, 32,
/* 0x05e0 */ 120,105, 7,225, 76,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0, /* 0x05e0 */ 120,105, 7,225, 76,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0,
/* 0x05f0 */ 127,170, 32, 64, 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, /* 0x05f0 */ 127,170, 32, 64, 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8,
/* 0x0600 */ 78,128, 0, 32, 43,170, 0, 1, 64,158, 0, 12, 65,154, 0, 16, /* 0x0600 */ 78,128, 0, 32, 43,170, 0, 1, 64,158, 0, 12, 65,154, 0, 16,
/* 0x0610 */ 75,255,255,232, 47,170, 0, 0, 77,158, 0, 32, 56, 99, 0, 16, /* 0x0610 */ 75,255,255,232, 47,170, 0, 0, 77,158, 0, 32, 56, 99, 0, 16,
/* 0x0620 */ 75,255,255,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0620 */ 75,255,255,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0630 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,133, /* 0x0630 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,205,
/* 0x0640 */ 248, 33,254,225,125, 14, 67,120,161, 3, 0, 16,125, 49, 75,120, /* 0x0640 */ 125, 52, 75,120,233, 35, 0, 32, 46, 36, 0, 0,248, 33,254,209,
/* 0x0650 */ 233, 35, 0, 32,125, 90, 83,120,124,124, 27,120,124,146, 35,120, /* 0x0650 */ 125, 90, 83,120,124,124, 27,120,124,176, 43,120,124,215, 51,120,
/* 0x0660 */ 47,136, 0, 3,248,161, 1, 96,124,215, 51,120,124,239, 59,120, /* 0x0660 */ 124,239, 59,120,233, 84, 0, 0,125, 14, 67,120,126, 35, 74, 20,
/* 0x0670 */ 126, 3, 74, 20, 57, 64, 0, 16, 64,158, 0, 8, 57, 64, 0, 0, /* 0x0670 */ 248,129, 0,128, 65,146, 0, 56,233, 10, 0, 32, 56,160, 0, 0,
/* 0x0680 */ 161, 28, 0, 56,232,113, 0, 0, 57, 74, 0, 34,126, 7,131,120, /* 0x0680 */ 56,192, 0, 50, 56,224,255,255,125, 10, 66, 20,232,104, 0, 72,
/* 0x0690 */ 121, 70, 0, 32, 56,128, 0, 0, 57, 8, 0, 1, 59,192,255,255, /* 0x0690 */ 232,136, 0, 40, 57, 0, 0, 0,124, 99, 80, 80, 75,255,252,205,
/* 0x06a0 */ 125, 9, 3,166, 66, 64, 0, 60,129, 7, 0, 0, 47,136, 0, 1, /* 0x06a0 */ 96, 0, 0, 0,124,127, 27,120, 72, 0, 0,212,161, 3, 0, 16,
/* 0x06b0 */ 64,158, 0, 40,232,167, 0, 16,127,190, 40, 64, 64,157, 0, 8, /* 0x06b0 */ 56,224, 0, 16, 47,136, 0, 3, 64,158, 0, 8, 56,224, 0, 0,
/* 0x06c0 */ 124,190, 43,120,233, 7, 0, 40,125, 5, 66, 20,127,164, 64, 64, /* 0x06c0 */ 160,188, 0, 56, 56,231, 0, 34,125, 67, 83,120,120,230, 0, 32,
/* 0x06d0 */ 64,156, 0, 8,125, 4, 67,120, 56,231, 0, 56, 75,255,255,200, /* 0x06d0 */ 126, 36,139,120, 56,165, 0, 1, 57, 0, 0, 0,124,169, 3,166,
/* 0x06e0 */ 127, 84,208,248,127,222,208, 56,124,148, 34, 20,121, 73,231,227, /* 0x06e0 */ 59,224,255,255, 66, 64, 0, 60,128,164, 0, 0, 47,133, 0, 1,
/* 0x06f0 */ 124,158, 32, 80,124,132,208, 56, 64,130, 0, 28, 47,190, 0, 0, /* 0x06f0 */ 64,158, 0, 40,233,100, 0, 16,127,191, 88, 64, 64,157, 0, 8,
/* 0x0700 */ 64,158, 0, 28, 47,163, 0, 0, 65,158, 0, 24, 56,192, 0, 50, /* 0x0700 */ 125,127, 91,120,232,164, 0, 40,124,171, 42, 20,127,168, 40, 64,
/* 0x0710 */ 72, 0, 0, 16,127,195,243,120, 72, 0, 0, 8, 56, 96, 0, 0, /* 0x0710 */ 64,156, 0, 8,124,168, 43,120, 56,132, 0, 56, 75,255,255,200,
/* 0x0720 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0, /* 0x0720 */ 127, 68,208,248,127,255,208, 56,125, 4, 66, 20,120,233,231,227,
/* 0x0730 */ 75,255,252, 57, 96, 0, 0, 0, 62,192, 0, 1, 59, 32, 0, 0, /* 0x0730 */ 125, 31, 64, 80,125, 4,208, 56, 64,130, 0, 28, 47,191, 0, 0,
/* 0x0740 */ 122,214,131,228,127,222, 24, 80, 46, 50, 0, 0, 57, 62, 0,120, /* 0x0740 */ 64,158, 0, 28, 47,170, 0, 0, 65,158, 0, 24, 56,192, 0, 50,
/* 0x0750 */ 98,214, 0, 1,249, 33, 0,128,122,233, 7,164,127, 90,208,248, /* 0x0750 */ 72, 0, 0, 16,127,227,251,120, 72, 0, 0, 8, 56, 96, 0, 0,
/* 0x0760 */ 249, 33, 0,136,161, 92, 0, 56,127,138,200, 0, 64,157, 2,168, /* 0x0760 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0,
/* 0x0770 */ 129, 80, 0, 0, 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28, /* 0x0770 */ 75,255,251,249, 96, 0, 0, 0,127,255, 24, 80, 57, 63, 0,120,
/* 0x0780 */ 232,176, 0, 16,126,227,187,120, 56,128, 0, 3,124,190, 42, 20, /* 0x0780 */ 62,192, 0, 1,249, 33, 0,136,122,233, 7,164,122,214,131,228,
/* 0x0790 */ 75,255,254, 73, 72, 0, 2,112, 47,138, 0, 1, 64,158, 2,104, /* 0x0790 */ 249, 33, 0,144,127, 82,208,248, 59, 32, 0, 0, 98,214, 0, 1,
/* 0x07a0 */ 65,146, 0, 76,233, 80, 0, 8, 47,170, 0, 0, 64,158, 0, 64, /* 0x07a0 */ 127, 90,208,248,161, 92, 0, 56,127,138,200, 0, 64,157, 2,168,
/* 0x07b0 */ 233, 92, 0, 32,232,176, 0, 16,126,227,187,120, 56,128, 0, 3, /* 0x07b0 */ 129, 81, 0, 0, 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28,
/* 0x07c0 */ 125, 94, 82, 20,124,170, 42, 20, 75,255,254, 17,160,188, 0, 56, /* 0x07c0 */ 232,177, 0, 16,126,227,187,120, 56,128, 0, 3,124,191, 42, 20,
/* 0x07d0 */ 126,227,187,120, 56,128, 0, 5, 75,255,254, 1,160,188, 0, 54, /* 0x07d0 */ 75,255,254, 9, 72, 0, 2,112, 47,138, 0, 1, 64,158, 2,104,
/* 0x07e0 */ 126,227,187,120, 56,128, 0, 4, 75,255,253,241,131,112, 0, 4, /* 0x07e0 */ 65,146, 0, 76,233, 81, 0, 8, 47,170, 0, 0, 64,158, 0, 64,
/* 0x07f0 */ 235,176, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,235,240, 0, 32, /* 0x07f0 */ 233, 92, 0, 32,232,177, 0, 16,126,227,187,120, 56,128, 0, 3,
/* 0x0800 */ 234,176, 0, 40, 87,123, 22,250,127,190,234, 20,251,225, 0,112, /* 0x0800 */ 125, 95, 82, 20,124,170, 42, 20, 75,255,253,209,160,188, 0, 56,
/* 0x0810 */ 125, 59,220, 48,127,170,160, 56,251,161, 0,120,126,189,170, 20, /* 0x0810 */ 126,227,187,120, 56,128, 0, 5, 75,255,253,193,160,188, 0, 54,
/* 0x0820 */ 127,234,250, 20,127,170,232, 80, 87,115, 7,126, 64,146, 0, 12, /* 0x0820 */ 126,227,187,120, 56,128, 0, 4, 75,255,253,177,131,113, 0, 4,
/* 0x0830 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,155,120, /* 0x0830 */ 235,177, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,235,209, 0, 32,
/* 0x0840 */ 124,165, 7,180, 64,146, 0, 16,232,225, 1, 96, 56,192, 0, 18, /* 0x0840 */ 234,177, 0, 40, 87,123, 22,250,127,191,234, 20,251,193, 0,112,
/* 0x0850 */ 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,233, 16, 0, 8, /* 0x0850 */ 125, 59,220, 48,127,170,144, 56,251,161, 0,120,126,189,170, 20,
/* 0x0860 */ 127,163,235,120,127,228,251,120,125, 10, 64, 80, 75,255,250,253, /* 0x0860 */ 127,202,242, 20,127,170,232, 80, 87,115, 7,126, 64,146, 0, 12,
/* 0x0870 */ 96, 0, 0, 0,127,189, 24, 0, 65,254, 0, 16, 56, 96, 0,127, /* 0x0870 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,155,120,
/* 0x0880 */ 75,255,251, 1, 96, 0, 0, 0, 65,146, 0, 24,126, 67,147,120, /* 0x0880 */ 124,165, 7,180, 65,146, 0, 16, 56,192, 0, 50, 56,224,255,255,
/* 0x0890 */ 56,129, 0,112,125,229,123,120,125,198,115,120, 75,255,251,157, /* 0x0890 */ 72, 0, 0, 12,126, 7,131,120, 56,192, 0, 18,233, 17, 0, 8,
/* 0x08a0 */ 127, 31, 0,208,123,105,255,227,127, 24,160, 56, 64,130, 0, 12, /* 0x08a0 */ 127,163,235,120,127,196,243,120,125, 10, 64, 80, 75,255,250,189,
/* 0x08b0 */ 64,146, 0, 48, 72, 0, 1, 24, 47,184, 0, 0, 65,158,255,244, /* 0x08b0 */ 96, 0, 0, 0,127,189, 24, 0, 65,254, 0, 16, 56, 96, 0,127,
/* 0x08c0 */ 127, 9, 3,166,125, 29,250, 20, 57, 64, 0, 0, 57, 32, 0, 0, /* 0x08c0 */ 75,255,250,193, 96, 0, 0, 0, 65,146, 0, 24,232, 97, 0,128,
/* 0x08d0 */ 125, 40, 81,174, 57, 74, 0, 1, 66, 0,255,244, 75,255,255,212, /* 0x08d0 */ 56,129, 0,112,125,229,123,120,125,198,115,120, 75,255,251, 93,
/* 0x08e0 */ 233, 80, 0, 0,121, 74, 7,194,121, 74, 0, 2,127,170,176, 0, /* 0x08e0 */ 127, 30, 0,208,123,105,255,227,127, 24,144, 56, 64,130, 0, 12,
/* 0x08f0 */ 64,158, 0,192,235,112, 0, 40,233, 80, 0, 32,233, 16, 0, 16, /* 0x08f0 */ 64,146, 0, 48, 72, 0, 1, 24, 47,184, 0, 0, 65,158,255,244,
/* 0x0900 */ 127,187, 80, 0, 64,158, 0, 36,127,123, 66, 20,127,123,242, 20, /* 0x0900 */ 127, 9, 3,166,125, 29,242, 20, 57, 64, 0, 0, 57, 32, 0, 0,
/* 0x0910 */ 125, 91, 0,208,125, 74,208, 56, 43,138, 0, 11, 64,157, 0, 12, /* 0x0910 */ 125, 40, 81,174, 57, 74, 0, 1, 66, 0,255,244, 75,255,255,212,
/* 0x0920 */ 57, 64, 0, 0, 72, 0, 0, 60,233, 80, 0, 8, 47,170, 0, 0, /* 0x0920 */ 233, 81, 0, 0,121, 74, 7,194,121, 74, 0, 2,127,170,176, 0,
/* 0x0930 */ 65,158, 1, 0, 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3, /* 0x0930 */ 64,158, 0,192,235,113, 0, 40,233, 81, 0, 32,233, 17, 0, 16,
/* 0x0940 */ 56,192, 0, 34, 56,224,255,255, 57, 0, 0, 0, 75,255,250, 29, /* 0x0940 */ 127,187, 80, 0, 64,158, 0, 36,127,123, 66, 20,127,123,250, 20,
/* 0x0950 */ 96, 0, 0, 0,124,123, 27,121, 65,130, 0, 88, 57, 64, 0, 1, /* 0x0950 */ 125, 91, 0,208,125, 74,208, 56, 43,138, 0, 11, 64,157, 0, 12,
/* 0x0960 */ 61, 32, 68, 0, 47,170, 0, 0, 97, 41, 0, 2,145, 59, 0, 0, /* 0x0960 */ 57, 64, 0, 0, 72, 0, 0, 60,233, 81, 0, 8, 47,170, 0, 0,
/* 0x0970 */ 61, 32,127,236, 97, 41,251,120,145, 59, 0, 4, 61, 32, 78,128, /* 0x0970 */ 65,158, 1, 8, 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3,
/* 0x0980 */ 97, 41, 0, 32,145, 59, 0, 8, 65,158, 0, 24,127, 99,219,120, /* 0x0980 */ 56,192, 0, 34, 56,224,255,255, 57, 0, 0, 0, 75,255,249,221,
/* 0x0990 */ 56,128, 0, 12, 56,160, 0, 5, 75,255,250, 25, 96, 0, 0, 0, /* 0x0990 */ 96, 0, 0, 0,124,123, 27,121, 65,130, 0, 88, 57, 64, 0, 1,
/* 0x09a0 */ 232, 97, 0,136, 56,128, 0, 0,127,101,219,120, 75,255,252, 45, /* 0x09a0 */ 61, 32, 68, 0, 47,170, 0, 0, 97, 41, 0, 2,145, 59, 0, 0,
/* 0x09b0 */ 127,163,235,120,127,228,251,120,126,101, 7,180, 75,255,249,245, /* 0x09b0 */ 61, 32,127,236, 97, 41,251,120,145, 59, 0, 4, 61, 32, 78,128,
/* 0x09c0 */ 96, 0, 0, 0, 47,163, 0, 0, 64,222,254,180,127,248,250, 20, /* 0x09c0 */ 97, 41, 0, 32,145, 59, 0, 8, 65,158, 0, 24,127, 99,219,120,
/* 0x09d0 */ 127,189,250, 20,127,189,168, 64, 64,156, 0, 44,127,163,235,120, /* 0x09d0 */ 56,128, 0, 12, 56,160, 0, 5, 75,255,249,217, 96, 0, 0, 0,
/* 0x09e0 */ 124,157,168, 80,126,101, 7,180, 56,192, 0, 50, 56,224,255,255, /* 0x09e0 */ 232, 97, 0,144, 56,128, 0, 0,127,101,219,120, 75,255,251,237,
/* 0x09f0 */ 57, 0, 0, 0, 75,255,249,117, 96, 0, 0, 0,127,189, 24, 0, /* 0x09f0 */ 127,163,235,120,127,196,243,120,126,101, 7,180, 75,255,249,181,
/* 0x0a00 */ 64,222,254,124, 59, 57, 0, 1, 58, 16, 0, 56,127, 57, 7,180, /* 0x0a00 */ 96, 0, 0, 0, 47,163, 0, 0, 64,222,254,180,127,216,242, 20,
/* 0x0a10 */ 75,255,253, 84,251,209, 0, 0, 56, 33, 1, 32,129,129, 0, 8, /* 0x0a10 */ 127,189,242, 20,127,189,168, 64, 64,156, 0, 44,127,163,235,120,
/* 0x0a20 */ 125,144,129, 32,232,124, 0, 24,124,126, 26, 20, 72, 0, 1,228, /* 0x0a20 */ 124,157,168, 80,126,101, 7,180, 56,192, 0, 50, 56,224,255,255,
/* 0x0a30 */ 233, 33, 0,128,127,105, 66, 20, 59,123, 0, 24, 75,255,255, 36, /* 0x0a30 */ 57, 0, 0, 0, 75,255,249, 53, 96, 0, 0, 0,127,189, 24, 0,
/* 0x0a40 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166, /* 0x0a40 */ 64,222,254,124, 59, 57, 0, 1, 58, 49, 0, 56,127, 57, 7,180,
/* 0x0a50 */ 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120,129, 35, 0, 0, /* 0x0a50 */ 75,255,253, 84, 47,180, 0, 0, 65,158, 0, 8,251,244, 0, 0,
/* 0x0a60 */ 124,191, 43,120,124,218, 51,120, 56,192, 0, 0,125, 88, 83,120, /* 0x0a60 */ 56, 33, 1, 48,232,124, 0, 24,124,127, 26, 20,129,129, 0, 8,
/* 0x0a70 */ 249, 33, 0,144,248,161, 0,152,124,229, 59,120, 59,159, 0, 64, /* 0x0a70 */ 125,144,129, 32, 72, 0, 1,228,233, 33, 0,136,127,105, 66, 20,
/* 0x0a80 */ 129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0,248, 97, 0,136, /* 0x0a80 */ 59,123, 0, 24, 75,255,255, 28, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0a90 */ 248,129, 0,128, 57, 41, 0, 12,248,225, 0,160,249, 1, 0,168, /* 0x0a90 */ 128, 18, 0, 0,124, 8, 2,166, 72, 0, 1,153,248, 33,255, 17,
/* 0x0aa0 */ 249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144, 75,255,249,141, /* 0x0aa0 */ 125, 61, 75,120,129, 35, 0, 0,124,191, 43,120,124,218, 51,120,
/* 0x0ab0 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0, /* 0x0ab0 */ 56,192, 0, 0,125, 88, 83,120,249, 33, 0,144,248,161, 0,152,
/* 0x0ac0 */ 127, 70,211,120,127,169,235,120,127, 10,195,120,127,227,251,120, /* 0x0ac0 */ 124,229, 59,120, 59,159, 0, 64,129, 35, 0, 4,248, 97, 0,120,
/* 0x0ad0 */ 75,255,251, 97, 56,128, 0, 9,124,123, 27,120,127, 67,211,120, /* 0x0ad0 */ 59,192, 0, 0,248, 97, 0,136,248,129, 0,128, 57, 41, 0, 12,
/* 0x0ae0 */ 127,101,219,120, 75,255,250,245,161, 63, 0, 56,127,137,240, 64, /* 0x0ae0 */ 248,225, 0,160,249, 1, 0,168,249, 33, 0,112, 56, 97, 0,112,
/* 0x0af0 */ 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,156, /* 0x0af0 */ 56,129, 0,144, 75,255,249, 69,232,225, 0,160,233, 1, 0,168,
/* 0x0b00 */ 232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0, 56,160, 0, 0, /* 0x0b00 */ 56,129, 0,128, 56,160, 0, 0,127, 70,211,120,127,169,235,120,
/* 0x0b10 */ 124, 99, 74, 20, 75,255,248,141, 96, 0, 0, 0, 47,131, 0, 0, /* 0x0b10 */ 127, 10,195,120,127,227,251,120, 75,255,251, 25, 56,128, 0, 9,
/* 0x0b20 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,248, 85, /* 0x0b20 */ 124,123, 27,120,127, 67,211,120,127,101,219,120, 75,255,250,173,
/* 0x0b30 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,248, 93, /* 0x0b30 */ 161, 63, 0, 56,127,137,240, 64, 64,157, 0,184,129, 60, 0, 0,
/* 0x0b40 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 57, 32, 0, 0, /* 0x0b40 */ 47,137, 0, 3, 64,158, 0,156,232,124, 0, 16,233, 61, 0, 0,
/* 0x0b50 */ 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120, 56,192, 0, 0, /* 0x0b50 */ 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20, 75,255,248, 69,
/* 0x0b60 */ 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120,127, 10,195,120, /* 0x0b60 */ 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120, 64,252, 0, 16,
/* 0x0b70 */ 127,227,251,120, 75,255,250,189,232,189, 0, 0, 56,128, 0, 7, /* 0x0b70 */ 56, 96, 0,127, 75,255,248, 13, 96, 0, 0, 0,127,228,251,120,
/* 0x0b80 */ 124,123, 27,120,127, 67,211,120, 75,255,250, 81,127, 35,203,120, /* 0x0b80 */ 56,160, 4, 0, 75,255,248, 21, 96, 0, 0, 0, 47,163, 4, 0,
/* 0x0b90 */ 75,255,248, 25, 96, 0, 0, 0, 59,222, 0, 1, 59,156, 0, 56, /* 0x0b90 */ 64,222,255,224, 57, 32, 0, 0, 56,128, 0, 0,249, 61, 0, 0,
/* 0x0ba0 */ 123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240,127, 99,219,120, /* 0x0ba0 */ 127, 37,203,120, 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,
/* 0x0bb0 */ 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0, /* 0x0bb0 */ 127,169,235,120,127, 10,195,120,127,227,251,120, 75,255,250,117,
/* 0x0bc0 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136, /* 0x0bc0 */ 232,189, 0, 0, 56,128, 0, 7,124,123, 27,120,127, 67,211,120,
/* 0x0bd0 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168, /* 0x0bd0 */ 75,255,250, 9,127, 35,203,120, 75,255,247,209, 96, 0, 0, 0,
/* 0x0be0 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200, /* 0x0be0 */ 59,222, 0, 1, 59,156, 0, 56,123,222, 0, 32, 75,255,255, 68,
/* 0x0bf0 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232, /* 0x0bf0 */ 56, 33, 0,240,127, 99,219,120, 72, 0, 0,136, 0, 0, 0, 0,
/* 0x0c00 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32, /* 0x0c00 */ 0, 0, 0, 1,128, 8, 0, 0,249,193,255,112,249,225,255,120,
/* 0x0c10 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136, /* 0x0c10 */ 250, 1,255,128,250, 33,255,136,250, 65,255,144,250, 97,255,152,
/* 0x0c20 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168, /* 0x0c20 */ 250,129,255,160,250,161,255,168,250,193,255,176,250,225,255,184,
/* 0x0c30 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200, /* 0x0c30 */ 251, 1,255,192,251, 33,255,200,251, 65,255,208,251, 97,255,216,
/* 0x0c40 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16, /* 0x0c40 */ 251,129,255,224,251,161,255,232,251,193,255,240,251,225,255,248,
/* 0x0c50 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248, /* 0x0c50 */ 248, 1, 0, 16, 78,128, 0, 32,233,193,255,112,233,225,255,120,
/* 0x0c60 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,200, /* 0x0c60 */ 234, 1,255,128,234, 33,255,136,234, 65,255,144,234, 97,255,152,
/* 0x0c70 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 4, 56, /* 0x0c70 */ 234,129,255,160,234,161,255,168,234,193,255,176,234,225,255,184,
/* 0x0c80 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 5,216, /* 0x0c80 */ 235, 1,255,192,235, 33,255,200,235, 65,255,208,235, 97,255,216,
/* 0x0c90 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 6, 48, /* 0x0c90 */ 235,129,255,224,232, 1, 0, 16,235,161,255,232,124, 8, 3,166,
/* 0x0ca0 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 10, 76, /* 0x0ca0 */ 235,193,255,240,235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0,
/* 0x0cb0 */ 0, 0, 0, 0, 0, 16,140,104 /* 0x0cb0 */ 0, 0, 0, 0, 0, 16, 3,200, 0, 0, 0, 0, 0, 16,140,176,
/* 0x0cc0 */ 0, 0, 0, 0, 0, 16, 4, 56, 0, 0, 0, 0, 0, 16,140,176,
/* 0x0cd0 */ 0, 0, 0, 0, 0, 16, 5,216, 0, 0, 0, 0, 0, 16,140,176,
/* 0x0ce0 */ 0, 0, 0, 0, 0, 16, 6, 48, 0, 0, 0, 0, 0, 16,140,176,
/* 0x0cf0 */ 0, 0, 0, 0, 0, 16, 10,148, 0, 0, 0, 0, 0, 16,140,176
}; };
+121 -116
View File
@@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-fold.h /* powerpc64le-linux.elf-fold.h
created from powerpc64le-linux.elf-fold.bin, 3243 (0xcab) bytes created from powerpc64le-linux.elf-fold.bin, 3315 (0xcf3) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,21 +31,21 @@
*/ */
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3243 #define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3315
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xfe54608b #define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x282983a7
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x5332aff2 #define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x731943b3
unsigned char stub_powerpc64le_linux_elf_fold[3243] = { unsigned char stub_powerpc64le_linux_elf_fold[3315] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0, 96, 12, 16, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,168, 12, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 96, 12, 0, 0, 0, 0, 0, 0, 96, 12, 0, 0, 0, 0, 0, 0, /* 0x0060 */ 168, 12, 0, 0, 0, 0, 0, 0,168, 12, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0080 */ 96, 12, 0, 0, 0, 0, 0, 0, 96, 12, 16, 0, 0, 0, 0, 0, /* 0x0080 */ 168, 12, 0, 0, 0, 0, 0, 0,168, 12, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 96, 12, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 168, 12, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56,
/* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72, /* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72,
@@ -75,7 +75,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = {
/* 0x0240 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127, /* 0x0240 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127,
/* 0x0250 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56, /* 0x0250 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56,
/* 0x0260 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248, /* 0x0260 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248,
/* 0x0270 */ 120,243,202,127,213, 7, 0, 72,144, 8, 33, 56,120,171,162,126, /* 0x0270 */ 120,243,202,127, 29, 8, 0, 72,144, 8, 33, 56,120,171,162,126,
/* 0x0280 */ 7, 0, 96,112, 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40, /* 0x0280 */ 7, 0, 96,112, 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40,
/* 0x0290 */ 24, 0,130, 64,136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124, /* 0x0290 */ 24, 0,130, 64,136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124,
/* 0x02a0 */ 0, 0, 99,232, 20, 2, 99,124, 0, 0,117,248,120, 27,127,124, /* 0x02a0 */ 0, 0, 99,232, 20, 2, 99,124, 0, 0,117,248,120, 27,127,124,
@@ -104,7 +104,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = {
/* 0x0410 */ 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233, /* 0x0410 */ 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233,
/* 0x0420 */ 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0, /* 0x0420 */ 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0,
/* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124, /* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124,
/* 0x0440 */ 8, 0,129,145,177, 7, 0, 72, 81,255, 33,248,120, 27,126,124, /* 0x0440 */ 8, 0,129,145,249, 7, 0, 72, 81,255, 33,248,120, 27,126,124,
/* 0x0450 */ 120, 35,159,124,120, 43,189,124,120, 51,220,124, 0, 0, 38, 46, /* 0x0450 */ 120, 35,159,124,120, 43,189,124,120, 51,220,124, 0, 0, 38, 46,
/* 0x0460 */ 0, 0, 63,233, 0, 0,169, 47, 84, 1,158, 65,120,243,195,127, /* 0x0460 */ 0, 0, 63,233, 0, 0,169, 47, 84, 1,158, 65,120,243,195,127,
/* 0x0470 */ 112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129, /* 0x0470 */ 112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129,
@@ -128,115 +128,120 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = {
/* 0x0590 */ 120,243,195,127,120, 75, 37,125, 49,254,255, 75,112, 0, 1,129, /* 0x0590 */ 120,243,195,127,120, 75, 37,125, 49,254,255, 75,112, 0, 1,129,
/* 0x05a0 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125, /* 0x05a0 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125,
/* 0x05b0 */ 8, 0, 95,249, 0, 0, 63,249,168,254,255, 75,176, 0, 33, 56, /* 0x05b0 */ 8, 0, 95,249, 0, 0, 63,249,168,254,255, 75,176, 0, 33, 56,
/* 0x05c0 */ 8, 0,129,129, 32,129,144,125,124, 6, 0, 72, 0, 0, 0, 0, /* 0x05c0 */ 8, 0,129,129, 32,129,144,125,196, 6, 0, 72, 0, 0, 0, 0,
/* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 0, 0, 35, 44, 32, 0,130, 77, /* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 0, 0, 35, 44, 32, 0,130, 77,
/* 0x05e0 */ 225, 7,105,120, 32, 0,130, 76, 0, 0, 36, 47, 0, 0, 67,233, /* 0x05e0 */ 225, 7,105,120, 32, 0,130, 76, 0, 0, 36, 47, 0, 0, 67,233,
/* 0x05f0 */ 64, 32,170,127, 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, /* 0x05f0 */ 64, 32,170,127, 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248,
/* 0x0600 */ 32, 0,128, 78, 1, 0,170, 43, 12, 0,158, 64, 16, 0,154, 65, /* 0x0600 */ 32, 0,128, 78, 1, 0,170, 43, 12, 0,158, 64, 16, 0,154, 65,
/* 0x0610 */ 232,255,255, 75, 0, 0,170, 47, 32, 0,158, 77, 16, 0, 99, 56, /* 0x0610 */ 232,255,255, 75, 0, 0,170, 47, 32, 0,158, 77, 16, 0, 99, 56,
/* 0x0620 */ 204,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0620 */ 204,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0630 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,129, 5, 0, 72, /* 0x0630 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,201, 5, 0, 72,
/* 0x0640 */ 225,254, 33,248,120, 67, 14,125, 16, 0, 3,161,120, 75, 49,125, /* 0x0640 */ 120, 75, 52,125, 32, 0, 35,233, 0, 0, 36, 46,209,254, 33,248,
/* 0x0650 */ 32, 0, 35,233,120, 83, 90,125,120, 27,124,124,120, 35,146,124, /* 0x0650 */ 120, 83, 90,125,120, 27,124,124,120, 43,176,124,120, 51,215,124,
/* 0x0660 */ 3, 0,136, 47, 96, 1,161,248,120, 51,215,124,120, 59,239,124, /* 0x0660 */ 120, 59,239,124, 0, 0, 84,233,120, 67, 14,125, 20, 74, 35,126,
/* 0x0670 */ 20, 74, 3,126, 16, 0, 64, 57, 8, 0,158, 64, 0, 0, 64, 57, /* 0x0670 */ 128, 0,129,248, 56, 0,146, 65, 32, 0, 10,233, 0, 0,160, 56,
/* 0x0680 */ 56, 0, 28,161, 0, 0,113,232, 34, 0, 74, 57,120,131, 7,126, /* 0x0680 */ 50, 0,192, 56,255,255,224, 56, 20, 66, 10,125, 72, 0,104,232,
/* 0x0690 */ 32, 0, 70,121, 0, 0,128, 56, 1, 0, 8, 57,255,255,192, 59, /* 0x0690 */ 40, 0,136,232, 0, 0, 0, 57, 80, 80, 99,124,205,252,255, 75,
/* 0x06a0 */ 166, 3, 9,125, 60, 0, 64, 66, 0, 0, 7,129, 1, 0,136, 47, /* 0x06a0 */ 0, 0, 0, 96,120, 27,127,124,212, 0, 0, 72, 16, 0, 3,161,
/* 0x06b0 */ 40, 0,158, 64, 16, 0,167,232, 64, 40,190,127, 8, 0,157, 64, /* 0x06b0 */ 16, 0,224, 56, 3, 0,136, 47, 8, 0,158, 64, 0, 0,224, 56,
/* 0x06c0 */ 120, 43,190,124, 40, 0, 7,233, 20, 66, 5,125, 64, 64,164,127, /* 0x06c0 */ 56, 0,188,160, 34, 0,231, 56,120, 83, 67,125, 32, 0,230,120,
/* 0x06d0 */ 8, 0,156, 64,120, 67, 4,125, 56, 0,231, 56,200,255,255, 75, /* 0x06d0 */ 120,139, 36,126, 1, 0,165, 56, 0, 0, 0, 57,166, 3,169,124,
/* 0x06e0 */ 248,208, 84,127, 56,208,222,127, 20, 34,148,124,227,231, 73,121, /* 0x06e0 */ 255,255,224, 59, 60, 0, 64, 66, 0, 0,164,128, 1, 0,133, 47,
/* 0x06f0 */ 80, 32,158,124, 56,208,132,124, 28, 0,130, 64, 0, 0,190, 47, /* 0x06f0 */ 40, 0,158, 64, 16, 0,100,233, 64, 88,191,127, 8, 0,157, 64,
/* 0x0700 */ 28, 0,158, 64, 0, 0,163, 47, 24, 0,158, 65, 50, 0,192, 56, /* 0x0700 */ 120, 91,127,125, 40, 0,164,232, 20, 42,171,124, 64, 40,168,127,
/* 0x0710 */ 16, 0, 0, 72,120,243,195,127, 8, 0, 0, 72, 0, 0, 96, 56, /* 0x0710 */ 8, 0,156, 64,120, 43,168,124, 56, 0,132, 56,200,255,255, 75,
/* 0x0720 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57, /* 0x0720 */ 248,208, 68,127, 56,208,255,127, 20, 66, 4,125,227,231,233,120,
/* 0x0730 */ 57,252,255, 75, 0, 0, 0, 96, 1, 0,192, 62, 0, 0, 32, 59, /* 0x0730 */ 80, 64, 31,125, 56,208, 4,125, 28, 0,130, 64, 0, 0,191, 47,
/* 0x0740 */ 228,131,214,122, 80, 24,222,127, 0, 0, 50, 46,120, 0, 62, 57, /* 0x0740 */ 28, 0,158, 64, 0, 0,170, 47, 24, 0,158, 65, 50, 0,192, 56,
/* 0x0750 */ 1, 0,214, 98,128, 0, 33,249,164, 7,233,122,248,208, 90,127, /* 0x0750 */ 16, 0, 0, 72,120,251,227,127, 8, 0, 0, 72, 0, 0, 96, 56,
/* 0x0760 */ 136, 0, 33,249, 56, 0, 92,161, 0,200,138,127,164, 2,157, 64, /* 0x0760 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57,
/* 0x0770 */ 0, 0, 80,129, 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, /* 0x0770 */ 249,251,255, 75, 0, 0, 0, 96, 80, 24,255,127,120, 0, 63, 57,
/* 0x0780 */ 16, 0,176,232,120,187,227,126, 3, 0,128, 56, 20, 42,190,124, /* 0x0780 */ 1, 0,192, 62,136, 0, 33,249,164, 7,233,122,228,131,214,122,
/* 0x0790 */ 73,254,255, 75,108, 2, 0, 72, 1, 0,138, 47,100, 2,158, 64, /* 0x0790 */ 144, 0, 33,249,248,208, 82,127, 0, 0, 32, 59, 1, 0,214, 98,
/* 0x07a0 */ 76, 0,146, 65, 8, 0, 80,233, 0, 0,170, 47, 64, 0,158, 64, /* 0x07a0 */ 248,208, 90,127, 56, 0, 92,161, 0,200,138,127,164, 2,157, 64,
/* 0x07b0 */ 32, 0, 92,233, 16, 0,176,232,120,187,227,126, 3, 0,128, 56, /* 0x07b0 */ 0, 0, 81,129, 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64,
/* 0x07c0 */ 20, 82, 94,125, 20, 42,170,124, 17,254,255, 75, 56, 0,188,160, /* 0x07c0 */ 16, 0,177,232,120,187,227,126, 3, 0,128, 56, 20, 42,191,124,
/* 0x07d0 */ 120,187,227,126, 5, 0,128, 56, 1,254,255, 75, 54, 0,188,160, /* 0x07d0 */ 9,254,255, 75,108, 2, 0, 72, 1, 0,138, 47,100, 2,158, 64,
/* 0x07e0 */ 120,187,227,126, 4, 0,128, 56,241,253,255, 75, 4, 0,112,131, /* 0x07e0 */ 76, 0,146, 65, 8, 0, 81,233, 0, 0,170, 47, 64, 0,158, 64,
/* 0x07f0 */ 16, 0,176,235, 81,115, 32, 61, 64, 98, 41, 97, 32, 0,240,235, /* 0x07f0 */ 32, 0, 92,233, 16, 0,177,232,120,187,227,126, 3, 0,128, 56,
/* 0x0800 */ 40, 0,176,234,250, 22,123, 87, 20,234,190,127,112, 0,225,251, /* 0x0800 */ 20, 82, 95,125, 20, 42,170,124,209,253,255, 75, 56, 0,188,160,
/* 0x0810 */ 48,220, 59,125, 56,160,170,127,120, 0,161,251, 20,170,189,126, /* 0x0810 */ 120,187,227,126, 5, 0,128, 56,193,253,255, 75, 54, 0,188,160,
/* 0x0820 */ 20,250,234,127, 80,232,170,127,126, 7,115, 87, 12, 0,146, 64, /* 0x0820 */ 120,187,227,126, 4, 0,128, 56,177,253,255, 75, 4, 0,113,131,
/* 0x0830 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,155,165,124, /* 0x0830 */ 16, 0,177,235, 81,115, 32, 61, 64, 98, 41, 97, 32, 0,209,235,
/* 0x0840 */ 180, 7,165,124, 16, 0,146, 64, 96, 1,225,232, 18, 0,192, 56, /* 0x0840 */ 40, 0,177,234,250, 22,123, 87, 20,234,191,127,112, 0,193,251,
/* 0x0850 */ 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, 8, 0, 16,233, /* 0x0850 */ 48,220, 59,125, 56,144,170,127,120, 0,161,251, 20,170,189,126,
/* 0x0860 */ 120,235,163,127,120,251,228,127, 80, 64, 10,125,253,250,255, 75, /* 0x0860 */ 20,242,202,127, 80,232,170,127,126, 7,115, 87, 12, 0,146, 64,
/* 0x0870 */ 0, 0, 0, 96, 0, 24,189,127, 16, 0,254, 65,127, 0, 96, 56, /* 0x0870 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,155,165,124,
/* 0x0880 */ 1,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65,120,147, 67,126, /* 0x0880 */ 180, 7,165,124, 16, 0,146, 65, 50, 0,192, 56,255,255,224, 56,
/* 0x0890 */ 112, 0,129, 56,120,123,229,125,120,115,198,125,157,251,255, 75, /* 0x0890 */ 12, 0, 0, 72,120,131, 7,126, 18, 0,192, 56, 8, 0, 17,233,
/* 0x08a0 */ 208, 0, 31,127,227,255,105,123, 56,160, 24,127, 12, 0,130, 64, /* 0x08a0 */ 120,235,163,127,120,243,196,127, 80, 64, 10,125,189,250,255, 75,
/* 0x08b0 */ 48, 0,146, 64, 20, 1, 0, 72, 0, 0,184, 47,244,255,158, 65, /* 0x08b0 */ 0, 0, 0, 96, 0, 24,189,127, 16, 0,254, 65,127, 0, 96, 56,
/* 0x08c0 */ 166, 3, 9,127, 20,250, 29,125, 0, 0, 64, 57, 0, 0, 32, 57, /* 0x08c0 */ 193,250,255, 75, 0, 0, 0, 96, 24, 0,146, 65,128, 0, 97,232,
/* 0x08d0 */ 174, 81, 40,125, 1, 0, 74, 57,244,255, 0, 66,212,255,255, 75, /* 0x08d0 */ 112, 0,129, 56,120,123,229,125,120,115,198,125, 93,251,255, 75,
/* 0x08e0 */ 0, 0, 80,233,192, 7, 74,121, 0,176,170,127,192, 0,158, 64, /* 0x08e0 */ 208, 0, 30,127,227,255,105,123, 56,144, 24,127, 12, 0,130, 64,
/* 0x08f0 */ 40, 0,112,235, 32, 0, 80,233, 16, 0, 16,233, 0, 80,187,127, /* 0x08f0 */ 48, 0,146, 64, 20, 1, 0, 72, 0, 0,184, 47,244,255,158, 65,
/* 0x0900 */ 36, 0,158, 64, 20, 66,123,127, 20,242,123,127,208, 0, 91,125, /* 0x0900 */ 166, 3, 9,127, 20,242, 29,125, 0, 0, 64, 57, 0, 0, 32, 57,
/* 0x0910 */ 56,208, 74,125, 11, 0,138, 43, 12, 0,157, 64, 0, 0, 64, 57, /* 0x0910 */ 174, 81, 40,125, 1, 0, 74, 57,244,255, 0, 66,212,255,255, 75,
/* 0x0920 */ 60, 0, 0, 72, 8, 0, 80,233, 0, 0,170, 47, 0, 1,158, 65, /* 0x0920 */ 0, 0, 81,233,192, 7, 74,121, 0,176,170,127,192, 0,158, 64,
/* 0x0930 */ 0, 0, 96, 56, 0, 16,128, 56, 3, 0,160, 56, 34, 0,192, 56, /* 0x0930 */ 40, 0,113,235, 32, 0, 81,233, 16, 0, 17,233, 0, 80,187,127,
/* 0x0940 */ 255,255,224, 56, 0, 0, 0, 57, 33,250,255, 75, 0, 0, 0, 96, /* 0x0940 */ 36, 0,158, 64, 20, 66,123,127, 20,250,123,127,208, 0, 91,125,
/* 0x0950 */ 121, 27,123,124, 88, 0,130, 65, 1, 0, 64, 57, 0, 68, 32, 61, /* 0x0950 */ 56,208, 74,125, 11, 0,138, 43, 12, 0,157, 64, 0, 0, 64, 57,
/* 0x0960 */ 0, 0,170, 47, 2, 0, 41, 97, 0, 0, 59,145,236,127, 32, 61, /* 0x0960 */ 60, 0, 0, 72, 8, 0, 81,233, 0, 0,170, 47, 8, 1,158, 65,
/* 0x0970 */ 120,251, 41, 97, 4, 0, 59,145,128, 78, 32, 61, 32, 0, 41, 97, /* 0x0970 */ 0, 0, 96, 56, 0, 16,128, 56, 3, 0,160, 56, 34, 0,192, 56,
/* 0x0980 */ 8, 0, 59,145, 24, 0,158, 65,120,219, 99,127, 12, 0,128, 56, /* 0x0980 */ 255,255,224, 56, 0, 0, 0, 57,225,249,255, 75, 0, 0, 0, 96,
/* 0x0990 */ 5, 0,160, 56, 29,250,255, 75, 0, 0, 0, 96,136, 0, 97,232, /* 0x0990 */ 121, 27,123,124, 88, 0,130, 65, 1, 0, 64, 57, 0, 68, 32, 61,
/* 0x09a0 */ 0, 0,128, 56,120,219,101,127, 49,252,255, 75,120,235,163,127, /* 0x09a0 */ 0, 0,170, 47, 2, 0, 41, 97, 0, 0, 59,145,236,127, 32, 61,
/* 0x09b0 */ 120,251,228,127,180, 7,101,126,249,249,255, 75, 0, 0, 0, 96, /* 0x09b0 */ 120,251, 41, 97, 4, 0, 59,145,128, 78, 32, 61, 32, 0, 41, 97,
/* 0x09c0 */ 0, 0,163, 47,184,254,222, 64, 20,250,248,127, 20,250,189,127, /* 0x09c0 */ 8, 0, 59,145, 24, 0,158, 65,120,219, 99,127, 12, 0,128, 56,
/* 0x09d0 */ 64,168,189,127, 44, 0,156, 64,120,235,163,127, 80,168,157,124, /* 0x09d0 */ 5, 0,160, 56,221,249,255, 75, 0, 0, 0, 96,144, 0, 97,232,
/* 0x09e0 */ 180, 7,101,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, /* 0x09e0 */ 0, 0,128, 56,120,219,101,127,241,251,255, 75,120,235,163,127,
/* 0x09f0 */ 121,249,255, 75, 0, 0, 0, 96, 0, 24,189,127,128,254,222, 64, /* 0x09f0 */ 120,243,196,127,180, 7,101,126,185,249,255, 75, 0, 0, 0, 96,
/* 0x0a00 */ 1, 0, 57, 59, 56, 0, 16, 58,180, 7, 57,127, 88,253,255, 75, /* 0x0a00 */ 0, 0,163, 47,184,254,222, 64, 20,242,216,127, 20,242,189,127,
/* 0x0a10 */ 0, 0,209,251, 32, 1, 33, 56, 8, 0,129,129, 32,129,144,125, /* 0x0a10 */ 64,168,189,127, 44, 0,156, 64,120,235,163,127, 80,168,157,124,
/* 0x0a20 */ 24, 0,124,232, 20, 26,126,124,228, 1, 0, 72,128, 0, 33,233, /* 0x0a20 */ 180, 7,101,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57,
/* 0x0a30 */ 20, 66,105,127, 24, 0,123, 59, 36,255,255, 75, 0, 0, 0, 0, /* 0x0a30 */ 57,249,255, 75, 0, 0, 0, 96, 0, 24,189,127,128,254,222, 64,
/* 0x0a40 */ 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,153, 1, 0, 72, /* 0x0a40 */ 1, 0, 57, 59, 56, 0, 49, 58,180, 7, 57,127, 88,253,255, 75,
/* 0x0a50 */ 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129,120, 43,191,124, /* 0x0a50 */ 0, 0,180, 47, 8, 0,158, 65, 0, 0,244,251, 48, 1, 33, 56,
/* 0x0a60 */ 120, 51,218,124, 0, 0,192, 56,120, 83, 88,125,144, 0, 33,249, /* 0x0a60 */ 24, 0,124,232, 20, 26,127,124, 8, 0,129,129, 32,129,144,125,
/* 0x0a70 */ 152, 0,161,248,120, 59,229,124, 64, 0,159, 59, 4, 0, 35,129, /* 0x0a70 */ 228, 1, 0, 72,136, 0, 33,233, 20, 66,105,127, 24, 0,123, 59,
/* 0x0a80 */ 120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248,128, 0,129,248, /* 0x0a80 */ 28,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,
/* 0x0a90 */ 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249,112, 0, 33,249, /* 0x0a90 */ 166, 2, 8,124,153, 1, 0, 72, 17,255, 33,248,120, 75, 61,125,
/* 0x0aa0 */ 112, 0, 97, 56,144, 0,129, 56,145,249,255, 75,160, 0,225,232, /* 0x0aa0 */ 0, 0, 35,129,120, 43,191,124,120, 51,218,124, 0, 0,192, 56,
/* 0x0ab0 */ 168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56,120,211, 70,127, /* 0x0ab0 */ 120, 83, 88,125,144, 0, 33,249,152, 0,161,248,120, 59,229,124,
/* 0x0ac0 */ 120,235,169,127,120,195, 10,127,120,251,227,127,101,251,255, 75, /* 0x0ac0 */ 64, 0,159, 59, 4, 0, 35,129,120, 0, 97,248, 0, 0,192, 59,
/* 0x0ad0 */ 9, 0,128, 56,120, 27,123,124,120,211, 67,127,120,219,101,127, /* 0x0ad0 */ 136, 0, 97,248,128, 0,129,248, 12, 0, 41, 57,160, 0,225,248,
/* 0x0ae0 */ 249,250,255, 75, 56, 0, 63,161, 64,240,137,127,184, 0,157, 64, /* 0x0ae0 */ 168, 0, 1,249,112, 0, 33,249,112, 0, 97, 56,144, 0,129, 56,
/* 0x0af0 */ 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64, 16, 0,124,232, /* 0x0af0 */ 73,249,255, 75,160, 0,225,232,168, 0, 1,233,128, 0,129, 56,
/* 0x0b00 */ 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124, /* 0x0b00 */ 0, 0,160, 56,120,211, 70,127,120,235,169,127,120,195, 10,127,
/* 0x0b10 */ 145,248,255, 75, 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, /* 0x0b10 */ 120,251,227,127, 29,251,255, 75, 9, 0,128, 56,120, 27,123,124,
/* 0x0b20 */ 16, 0,252, 64,127, 0, 96, 56, 89,248,255, 75, 0, 0, 0, 96, /* 0x0b20 */ 120,211, 67,127,120,219,101,127,177,250,255, 75, 56, 0, 63,161,
/* 0x0b30 */ 120,251,228,127, 0, 4,160, 56, 97,248,255, 75, 0, 0, 0, 96, /* 0x0b30 */ 64,240,137,127,184, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47,
/* 0x0b40 */ 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57, 0, 0,128, 56, /* 0x0b40 */ 156, 0,158, 64, 16, 0,124,232, 0, 0, 61,233, 0, 0,128, 56,
/* 0x0b50 */ 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56, /* 0x0b50 */ 0, 0,160, 56, 20, 74, 99,124, 73,248,255, 75, 0, 0, 0, 96,
/* 0x0b60 */ 0, 0, 0, 57,120,235,169,127,120,195, 10,127,120,251,227,127, /* 0x0b60 */ 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56,
/* 0x0b70 */ 193,250,255, 75, 0, 0,189,232, 7, 0,128, 56,120, 27,123,124, /* 0x0b70 */ 17,248,255, 75, 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56,
/* 0x0b80 */ 120,211, 67,127, 85,250,255, 75,120,203, 35,127, 29,248,255, 75, /* 0x0b80 */ 25,248,255, 75, 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64,
/* 0x0b90 */ 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59, 32, 0,222,123, /* 0x0b90 */ 0, 0, 32, 57, 0, 0,128, 56, 0, 0, 61,249,120,203, 37,127,
/* 0x0ba0 */ 68,255,255, 75,240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72, /* 0x0ba0 */ 0, 0,192, 56, 0, 0,224, 56, 0, 0, 0, 57,120,235,169,127,
/* 0x0bb0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249, /* 0x0bb0 */ 120,195, 10,127,120,251,227,127,121,250,255, 75, 0, 0,189,232,
/* 0x0bc0 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250, /* 0x0bc0 */ 7, 0,128, 56,120, 27,123,124,120,211, 67,127, 13,250,255, 75,
/* 0x0bd0 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250, /* 0x0bd0 */ 120,203, 35,127,213,247,255, 75, 0, 0, 0, 96, 1, 0,222, 59,
/* 0x0be0 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251, /* 0x0be0 */ 56, 0,156, 59, 32, 0,222,123, 68,255,255, 75,240, 0, 33, 56,
/* 0x0bf0 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251, /* 0x0bf0 */ 120,219, 99,127,136, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0c00 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233, /* 0x0c00 */ 128, 8, 0, 0,112,255,193,249,120,255,225,249,128,255, 1,250,
/* 0x0c10 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234, /* 0x0c10 */ 136,255, 33,250,144,255, 65,250,152,255, 97,250,160,255,129,250,
/* 0x0c20 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234, /* 0x0c20 */ 168,255,161,250,176,255,193,250,184,255,225,250,192,255, 1,251,
/* 0x0c30 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235, /* 0x0c30 */ 200,255, 33,251,208,255, 65,251,216,255, 97,251,224,255,129,251,
/* 0x0c40 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235, /* 0x0c40 */ 232,255,161,251,240,255,193,251,248,255,225,251, 16, 0, 1,248,
/* 0x0c50 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78, /* 0x0c50 */ 32, 0,128, 78,112,255,193,233,120,255,225,233,128,255, 1,234,
/* 0x0c60 */ 200, 3, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, /* 0x0c60 */ 136,255, 33,234,144,255, 65,234,152,255, 97,234,160,255,129,234,
/* 0x0c70 */ 56, 4, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, /* 0x0c70 */ 168,255,161,234,176,255,193,234,184,255,225,234,192,255, 1,235,
/* 0x0c80 */ 216, 5, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, /* 0x0c80 */ 200,255, 33,235,208,255, 65,235,216,255, 97,235,224,255,129,235,
/* 0x0c90 */ 48, 6, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, /* 0x0c90 */ 16, 0, 1,232,232,255,161,235,166, 3, 8,124,240,255,193,235,
/* 0x0ca0 */ 72, 10, 16, 0, 0, 0, 0, 0, 96,140, 16 /* 0x0ca0 */ 248,255,225,235, 32, 0,128, 78,200, 3, 16, 0, 0, 0, 0, 0,
/* 0x0cb0 */ 168,140, 16, 0, 0, 0, 0, 0, 56, 4, 16, 0, 0, 0, 0, 0,
/* 0x0cc0 */ 168,140, 16, 0, 0, 0, 0, 0,216, 5, 16, 0, 0, 0, 0, 0,
/* 0x0cd0 */ 168,140, 16, 0, 0, 0, 0, 0, 48, 6, 16, 0, 0, 0, 0, 0,
/* 0x0ce0 */ 168,140, 16, 0, 0, 0, 0, 0,144, 10, 16, 0, 0, 0, 0, 0,
/* 0x0cf0 */ 168,140, 16
}; };
+9 -31
View File
@@ -239,21 +239,20 @@ unfold: // IN: rbp= &f_exp; rsp/ &proc_self_exe,%entry
lea -4+ FOLD - proc_self_exe(%arg1),%rsi // &O_BINFO | is_ptinterp lea -4+ FOLD - proc_self_exe(%arg1),%rsi // &O_BINFO | is_ptinterp
lodsl; and $~1,%eax; movl %eax,%r14d // O_BINFO lodsl; and $~1,%eax; movl %eax,%r14d // O_BINFO
push %rsi; pop %rbx // &b_info of folded decompressor push %rsi; pop %rbx // &b_info of folded decompressor
lodsl; xchg %eax,%edx; add %rbx,%rdx // .sz_unc; last of unfolded movl (%rsi),%edx // .sz_unc
lodsl; xchg %eax,%r13d; lodsl; add %rsi,%r13 // .sz_cpr; last of folded
lea sz_pack2 - f_exp(%rbp),%rcx // &sz_pack2 lea sz_pack2 - f_exp(%rbp),%rcx // &sz_pack2
movl (%rcx),%r15d // sz_pack2: length before stub movl (%rcx),%r15d // sz_pack2: length before stub
subq %r15,%rcx // elfaddr= &Elf64_Ehdr of this stub subq %r15,%rcx // elfaddr= &Elf64_Ehdr of this stub
subl %r14d,%r15d // LENX= sz_pack2 - O_BINFO subl %r14d,%r15d // LENX= sz_pack2 - O_BINFO
addq %rcx,%r14 // ADRX= elfaddr + O_BINFO
pop %rdi // fd pop %rdi // fd
subq %rcx,%rdx; push %rdx // LENU push %rdx // LENU
push %rax // %ADRU push %rax // %ADRU
subq %rcx,%r13 // LENF
push %rdi // fd push %rdi // fd
push %rcx // elfaddr push %rcx // elfaddr
// Reserve space for input file and unfolded stub. // Reserve space for unfolded stub.
subq %arg6,%arg6 // 0 offset subq %arg6,%arg6 // 0 offset
orl $-1,%arg5l // fd orl $-1,%arg5l // fd
push $MAP_PRIVATE|MAP_ANONYMOUS; pop %sys4 push $MAP_PRIVATE|MAP_ANONYMOUS; pop %sys4
@@ -261,44 +260,23 @@ unfold: // IN: rbp= &f_exp; rsp/ &proc_self_exe,%entry
push $PROT_READ|PROT_WRITE; pop %arg3 push $PROT_READ|PROT_WRITE; pop %arg3
subl %arg1l,%arg1l // 0; kernel chooses addr subl %arg1l,%arg1l // 0; kernel chooses addr
push $__NR_mmap; pop %rax; syscall push $__NR_mmap; pop %rax; syscall
addq %rax,%r14 // + O_BINFO = ADRX
movq %rax,2*8(%rsp) // ADRU movq %rax,2*8(%rsp) // ADRU
// Duplicate the input data.
xchgq %rax,%arg1 // same address
//subq %arg6,%arg6 // 0 offset
movl 1*8(%rsp),%arg5l // fd
push $MAP_PRIVATE|MAP_FIXED; pop %sys4
//push $PROT_READ|PROT_WRITE; pop %arg3
movq %r13,%arg2 // len
push $__NR_mmap; pop %rax; syscall
// Remember new f_exp region for PROT_EXEC.
movq 3*8(%rsp),%rdx // LENU
pop %rcx; push %rcx // elfaddr
addq %rax,%rdx // new last of unfoded
subq %rcx,%rax // new - old
movq %rax,%r12 // relocation constant
addq %rbp,%rax; push %rax // P_10 new f_exp
andq $PAGE_MASK,%rax; push %rax // P_11 address
subq %rax,%rdx; push %rdx // P_12 length
// Unfold // Unfold
movq %rbx,%rsi push %rax; pop %arg3 // dst= new unfold
push %rbx; pop %rsi
lodsl; push %rax; movq %rsp,%arg4 // P_13 .sz_unc; &dstlen lodsl; push %rax; movq %rsp,%arg4 // P_13 .sz_unc; &dstlen
lea (%rbx,%r12),%arg3 // dst= new unfold
movq %arg3,%r13 // execute here movq %arg3,%r13 // execute here
lodsl; push %rax // P_14 tmp= .sz_cpr lodsl; push %rax // P_14 tmp= .sz_cpr
lodsl; xchg %eax,%arg5l // .b_method lodsl; xchg %eax,%arg5l // .b_method
movq %rsi,%arg1 // src movq %rsi,%arg1 // src
pop %arg2 // P_14 srclen pop %arg2 // P_14 srclen
call *%rbp // old f_exp call *%rbp // f_exp
pop %rcx // P_13 toss .sz_unc pop %rcx // P_13 toss .sz_unc
// PROT_EXEC // PROT_EXEC
pop %arg2 // P_12 length movq 3*8(%rsp),%arg2 // LENU
pop %arg1 // P_11 addr movq 2*8(%rsp),%arg1 // ADRU
pop %rbp // P_10 new f_exp
push $PROT_READ|PROT_EXEC; pop %arg3 push $PROT_READ|PROT_EXEC; pop %arg3
push $__NR_mprotect; pop %rax; syscall push $__NR_mprotect; pop %rax; syscall
+5 -3
View File
@@ -68,11 +68,11 @@ __NR_exit= 60
__NR_readlink= 89 __NR_readlink= 89
// IN: // IN:
// %rbx= &O_BINFO; %rbp= f_exp; %r14= ADRX; %r15= LENX; // %rbx= 4+ &O_BINFO; %rbp= f_exp; %r14= ADRX; %r15= LENX;
// rsp/ elfaddr,fd,ADRU,LENU,rdx,%entry, argc,argv,0,envp,0,auxv,0,strings // rsp/ elfaddr,fd,ADRU,LENU,rdx,%entry, argc,argv,0,envp,0,auxv,0,strings
fold_begin: fold_begin:
//// int3 // DEBUG only int3 // DEBUG only
call L90 call L90
#include "arch/amd64/bxx.S" #include "arch/amd64/bxx.S"
L90: L90:
@@ -142,11 +142,13 @@ L90:
push %rax # elfaddr 7th arg push %rax # elfaddr 7th arg
movq %rbp,%arg5 # &decompress: f_expand movq %rbp,%arg5 # &decompress: f_expand
int3
call upx_main # Out: %rax= entry call upx_main # Out: %rax= entry
/* entry= upx_main(b_info *arg1, total_size arg2, Elf64_Ehdr *arg3, /* entry= upx_main(b_info *arg1, total_size arg2, Elf64_Ehdr *arg3,
Elf32_Auxv_t *arg4, f_decompr arg5, f_unf arg6, Elf32_Auxv_t *arg4, f_decompr arg5, f_unf arg6,
Elf64_Addr elfaddr ) Elf64_Addr elfaddr )
*/ */
int3
addq $1*NBPW+OVERHEAD,%rsp # toss elfaddr, too addq $1*NBPW+OVERHEAD,%rsp # toss elfaddr, too
movq %rax,4*NBPW(%rsp) # entry movq %rax,4*NBPW(%rsp) # entry
pop %rbx # fd pop %rbx # fd
@@ -169,8 +171,8 @@ L90:
jmp *-8(%r14) # goto: syscall; pop %rdx; ret jmp *-8(%r14) # goto: syscall; pop %rdx; ret
mmap: .globl mmap mmap: .globl mmap
int3
movb $ __NR_mmap,%al movb $ __NR_mmap,%al
sysarg4:
movq %arg4,%sys4 movq %arg4,%sys4
sysgo: # NOTE: kernel demands 4th arg in %sys4, NOT %arg4 sysgo: # NOTE: kernel demands 4th arg in %sys4, NOT %arg4
movzbl %al,%eax movzbl %al,%eax
+17 -5
View File
@@ -458,13 +458,25 @@ do_xmap(
Elf64_Phdr const *phdr = (Elf64_Phdr const *)(void const *)(ehdr->e_phoff + Elf64_Phdr const *phdr = (Elf64_Phdr const *)(void const *)(ehdr->e_phoff +
(char const *)ehdr); (char const *)ehdr);
Elf64_Addr v_brk; Elf64_Addr v_brk;
Elf64_Addr const reloc = xfind_pages( Elf64_Addr reloc;
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk if (xi) { // compressed main program:
, *p_reloc // C_BASE space reservation, C_TEXT compressed data and stub
Elf64_Addr ehdr0 = *p_reloc; // the 'hi' copy!
Elf64_Phdr *phdr0 = (Elf64_Phdr *)(((Elf64_Ehdr *)ehdr0)->e_phoff + ehdr0);
// Clear the 'lo' space reservation for use by PT_LOADs
ehdr0 -= phdr0[1].p_vaddr; // the 'lo' copy
v_brk = phdr0->p_memsz + ehdr0;
reloc = (Elf64_Addr)mmap((void *)ehdr0, phdr0->p_memsz, PROT_NONE,
MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
}
else { // PT_INTERP
reloc = xfind_pages(
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk, *p_reloc
#if defined(__powerpc64__) || defined(__aarch64__) #if defined(__powerpc64__) || defined(__aarch64__)
, PAGE_MASK , PAGE_MASK
#endif #endif
); );
}
DPRINTF("do_xmap reloc=%%p\\n", reloc); DPRINTF("do_xmap reloc=%%p\\n", reloc);
int j; int j;
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
+1 -1
View File
@@ -75,7 +75,7 @@ M_NRV2E_LE32=8
// .long offset({l_info; p_info; b_info; compressed data}) // .long offset({l_info; p_info; b_info; compressed data})
section ELFMAINX section ELFMAINX
_start: .globl _start _start: .globl _start
//// nop; int3; int3 nop; int3; int3
push %rax // space for &DT_INIT push %rax // space for &DT_INIT
o_uinit= 5*8 o_uinit= 5*8
push %arg2; push %arg1 // save first two args to DT_INIT() push %arg2; push %arg1 // save first two args to DT_INIT()
+3 -3
View File
@@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn
8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016f5 2**0 CONTENTS, READONLY 8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016f5 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, READONLY 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003a 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, RELOC, READONLY 10 ELFMAINY 0000003a 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000ef 0000000000000000 0000000000000000 00001747 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINZ 000000b1 0000000000000000 0000000000000000 00001747 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
@@ -32,7 +32,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000000000000003 R_X86_64_PC32 ELFMAINZ+0x00000000000000d2 0000000000000003 R_X86_64_PC32 ELFMAINZ+0x0000000000000094
RELOCATION RECORDS FOR [NRV2E]: RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -59,4 +59,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000000000000eb R_X86_64_32 O_BINFO 00000000000000ad R_X86_64_32 O_BINFO
+21 -21
View File
@@ -8,33 +8,33 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x810 .text 0x00000000001000bc 0x858
*(.text) *(.text)
.text 0x00000000001000bc 0x189 tmp/amd64-linux.elf-fold.o .text 0x00000000001000bc 0x18d tmp/amd64-linux.elf-fold.o
0x0000000000100235 munmap 0x0000000000100239 munmap
0x000000000010020e mmap 0x0000000000100211 mmap
0x000000000010023d write 0x0000000000100241 write
0x0000000000100241 read 0x0000000000100245 read
0x0000000000100225 exit 0x0000000000100229 exit
0x0000000000100229 brk 0x000000000010022d brk
0x0000000000100231 open 0x0000000000100235 open
0x0000000000100239 mprotect 0x000000000010023d mprotect
0x000000000010022d close 0x0000000000100231 close
*fill* 0x0000000000100245 0x3 00 *fill* 0x0000000000100249 0x3 00
.text 0x0000000000100248 0x683 tmp/amd64-linux.elf-main.o .text 0x000000000010024c 0x6c6 tmp/amd64-linux.elf-main.o
0x0000000000100783 upx_main 0x00000000001007ca upx_main
*(.data) *(.data)
*fill* 0x00000000001008cb 0x1 00 *fill* 0x0000000000100912 0x2 00
.data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o .data 0x0000000000100914 0x0 tmp/amd64-linux.elf-fold.o
.data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o .data 0x0000000000100914 0x0 tmp/amd64-linux.elf-main.o
.data .data
.bss 0x00000000001008cc 0x0 .bss 0x0000000000100914 0x0
.bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o .bss 0x0000000000100914 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o .bss 0x0000000000100914 0x0 tmp/amd64-linux.elf-main.o
.rela.dyn 0x00000000001008d0 0x0 .rela.dyn 0x0000000000100918 0x0
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o .rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-main.o LOAD tmp/amd64-linux.elf-main.o
+13 -13
View File
@@ -2,18 +2,18 @@ file format elf64-x86-64
Sections: Sections:
Idx Name Size VMA LMA File off Algn Flags Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000016 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY 0 ELFMAINX 00000019 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000066 0000000000000000 0000000000000000 00000056 2**0 CONTENTS, READONLY 1 NRV_HEAD 00000066 0000000000000000 0000000000000000 00000059 2**0 CONTENTS, READONLY
2 NRV2E 000000ba 0000000000000000 0000000000000000 000000bc 2**0 CONTENTS, RELOC, READONLY 2 NRV2E 000000ba 0000000000000000 0000000000000000 000000bf 2**0 CONTENTS, RELOC, READONLY
3 NRV2D 000000a1 0000000000000000 0000000000000000 00000176 2**0 CONTENTS, RELOC, READONLY 3 NRV2D 000000a1 0000000000000000 0000000000000000 00000179 2**0 CONTENTS, RELOC, READONLY
4 NRV2B 00000093 0000000000000000 0000000000000000 00000217 2**0 CONTENTS, RELOC, READONLY 4 NRV2B 00000093 0000000000000000 0000000000000000 0000021a 2**0 CONTENTS, RELOC, READONLY
5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 000002aa 2**0 CONTENTS, RELOC, READONLY 5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 000002ad 2**0 CONTENTS, RELOC, READONLY
6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 0000030e 2**0 CONTENTS, READONLY 6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000311 2**0 CONTENTS, READONLY
7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d05 2**0 CONTENTS, READONLY 7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d08 2**0 CONTENTS, READONLY
8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016fc 2**0 CONTENTS, READONLY 8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001714 2**0 CONTENTS, READONLY 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, READONLY
10 ELFMAINY 0000003a 0000000000000000 0000000000000000 00001714 2**0 CONTENTS, RELOC, READONLY 10 ELFMAINY 0000003a 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000001b5 0000000000000000 0000000000000000 0000174e 2**0 CONTENTS, READONLY 11 ELFMAINZ 000001b5 0000000000000000 0000000000000000 00001751 2**0 CONTENTS, READONLY
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
@@ -31,7 +31,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
000000000000000a R_X86_64_PC32 ELFMAINZ+0x000000000000000d 000000000000000d R_X86_64_PC32 ELFMAINZ+0x000000000000000d
RELOCATION RECORDS FOR [NRV2E]: RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
+14 -14
View File
@@ -8,7 +8,7 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x974 .text 0x00000000001000bc 0x9b4
*(.text) *(.text)
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o .text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
0x0000000000100228 my_bkpt 0x0000000000100228 my_bkpt
@@ -26,26 +26,26 @@ Linker script and memory map
0x00000000001002bc readlink 0x00000000001002bc readlink
0x00000000001002c4 open 0x00000000001002c4 open
0x00000000001002e0 __clear_cache 0x00000000001002e0 __clear_cache
.text 0x00000000001002f4 0x73c tmp/arm64-linux.elf-main.o .text 0x00000000001002f4 0x77c tmp/arm64-linux.elf-main.o
0x00000000001008c8 upx_main 0x0000000000100908 upx_main
*(.data) *(.data)
.data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x0000000000100a30 0x0 .iplt 0x0000000000100a70 0x0
.iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o .iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100a30 0x0 .rela.dyn 0x0000000000100a70 0x0
.rela.iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o .rela.iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o
.data .data
LOAD tmp/arm64-linux.elf-fold.o LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o LOAD tmp/arm64-linux.elf-main.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x0000000000100a30 0x0 .igot.plt 0x0000000000100a70 0x0
.igot.plt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o .igot.plt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100a30 0x0 .bss 0x0000000000100a70 0x0
.bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpc) TARGET(elf64-powerpc)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xb04 .text 0x00000000001000bc 0xb4c
*(.text) *(.text)
.text 0x00000000001000bc 0x30c tmp/powerpc64-linux.elf-fold.o .text 0x00000000001000bc 0x30c tmp/powerpc64-linux.elf-fold.o
0x00000000001000bc get_page_mask 0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpc)
0x00000000001003b0 mprotect 0x00000000001003b0 mprotect
0x00000000001003b8 munmap 0x00000000001003b8 munmap
0x00000000001003c0 my_bkpt 0x00000000001003c0 my_bkpt
.text 0x00000000001003c8 0x7f8 tmp/powerpc64-linux.elf-main.o .text 0x00000000001003c8 0x840 tmp/powerpc64-linux.elf-main.o
*(.data) *(.data)
.data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-fold.o .data 0x0000000000100c08 0x0 tmp/powerpc64-linux.elf-fold.o
.data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-main.o .data 0x0000000000100c08 0x0 tmp/powerpc64-linux.elf-main.o
.sfpr 0x0000000000100bc0 0xa4 .sfpr 0x0000000000100c08 0xa4
.sfpr 0x0000000000100bc0 0xa4 linker stubs .sfpr 0x0000000000100c08 0xa4 linker stubs
0x0000000000100bc0 _savegpr0_14 0x0000000000100c08 _savegpr0_14
0x0000000000100be8 _savegpr0_24 0x0000000000100c30 _savegpr0_24
0x0000000000100bf8 _savegpr0_28 0x0000000000100c40 _savegpr0_28
0x0000000000100c10 _restgpr0_14 0x0000000000100c58 _restgpr0_14
0x0000000000100c38 _restgpr0_24 0x0000000000100c80 _restgpr0_24
0x0000000000100c48 _restgpr0_28 0x0000000000100c90 _restgpr0_28
.glink 0x0000000000100c68 0x0 .glink 0x0000000000100cb0 0x0
.glink 0x0000000000100c68 0x0 linker stubs .glink 0x0000000000100cb0 0x0 linker stubs
.eh_frame 0x0000000000100c64 0x0 .eh_frame 0x0000000000100cac 0x0
.eh_frame 0x0000000000100c64 0x0 linker stubs .eh_frame 0x0000000000100cac 0x0 linker stubs
.rela.dyn 0x0000000000100c68 0x0 .rela.dyn 0x0000000000100cb0 0x0
.rela.iplt 0x0000000000100c68 0x0 linker stubs .rela.iplt 0x0000000000100cb0 0x0 linker stubs
.data .data
LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-fold.o
LOAD tmp/powerpc64-linux.elf-main.o LOAD tmp/powerpc64-linux.elf-main.o
OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.branch_lt 0x0000000000100c68 0x0 .branch_lt 0x0000000000100cb0 0x0
.branch_lt 0x0000000000100c68 0x0 linker stubs .branch_lt 0x0000000000100cb0 0x0 linker stubs
.toc 0x0000000000100c68 0x0 .toc 0x0000000000100cb0 0x0
.toc 0x0000000000100c68 0x0 tmp/powerpc64-linux.elf-main.o .toc 0x0000000000100cb0 0x0 tmp/powerpc64-linux.elf-main.o
.opd 0x0000000000100c68 0x58 .opd 0x0000000000100cb0 0x58
.opd 0x0000000000100c68 0x58 tmp/powerpc64-linux.elf-main.o .opd 0x0000000000100cb0 0x58 tmp/powerpc64-linux.elf-main.o
0x0000000000100ca8 upx_main 0x0000000000100cf0 upx_main
.iplt 0x0000000000100cc0 0x0 .iplt 0x0000000000100d08 0x0
.iplt 0x0000000000100cc0 0x0 linker stubs .iplt 0x0000000000100d08 0x0 linker stubs
.bss 0x0000000000100cc0 0x0 .bss 0x0000000000100d08 0x0
.bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-fold.o .bss 0x0000000000100d08 0x0 tmp/powerpc64-linux.elf-fold.o
.bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-main.o .bss 0x0000000000100d08 0x0 tmp/powerpc64-linux.elf-main.o
+30 -30
View File
@@ -9,7 +9,7 @@ Linker script and memory map
TARGET(elf64-powerpcle) TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xb00 .text 0x00000000001000bc 0xb48
*(.text) *(.text)
.text 0x00000000001000bc 0x30c tmp/powerpc64le-linux.elf-fold.o .text 0x00000000001000bc 0x30c tmp/powerpc64le-linux.elf-fold.o
0x00000000001000bc get_page_mask 0x00000000001000bc get_page_mask
@@ -23,47 +23,47 @@ TARGET(elf64-powerpcle)
0x00000000001003b0 mprotect 0x00000000001003b0 mprotect
0x00000000001003b8 munmap 0x00000000001003b8 munmap
0x00000000001003c0 my_bkpt 0x00000000001003c0 my_bkpt
.text 0x00000000001003c8 0x7f4 tmp/powerpc64le-linux.elf-main.o .text 0x00000000001003c8 0x83c tmp/powerpc64le-linux.elf-main.o
*(.data) *(.data)
.data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-fold.o .data 0x0000000000100c04 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-main.o .data 0x0000000000100c04 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x0000000000100bbc 0xa4 .sfpr 0x0000000000100c04 0xa4
.sfpr 0x0000000000100bbc 0xa4 linker stubs .sfpr 0x0000000000100c04 0xa4 linker stubs
0x0000000000100bbc _savegpr0_14 0x0000000000100c04 _savegpr0_14
0x0000000000100be4 _savegpr0_24 0x0000000000100c2c _savegpr0_24
0x0000000000100bf4 _savegpr0_28 0x0000000000100c3c _savegpr0_28
0x0000000000100c0c _restgpr0_14 0x0000000000100c54 _restgpr0_14
0x0000000000100c34 _restgpr0_24 0x0000000000100c7c _restgpr0_24
0x0000000000100c44 _restgpr0_28 0x0000000000100c8c _restgpr0_28
.glink 0x0000000000100c60 0x0 .glink 0x0000000000100ca8 0x0
.glink 0x0000000000100c60 0x0 linker stubs .glink 0x0000000000100ca8 0x0 linker stubs
.eh_frame 0x0000000000100c60 0x0 .eh_frame 0x0000000000100ca8 0x0
.eh_frame 0x0000000000100c60 0x0 linker stubs .eh_frame 0x0000000000100ca8 0x0 linker stubs
.rela.dyn 0x0000000000100c60 0x0 .rela.dyn 0x0000000000100ca8 0x0
.rela.iplt 0x0000000000100c60 0x0 linker stubs .rela.iplt 0x0000000000100ca8 0x0 linker stubs
.data .data
LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-fold.o
LOAD tmp/powerpc64le-linux.elf-main.o LOAD tmp/powerpc64le-linux.elf-main.o
OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.branch_lt 0x0000000000100c60 0x0 .branch_lt 0x0000000000100ca8 0x0
.branch_lt 0x0000000000100c60 0x0 linker stubs .branch_lt 0x0000000000100ca8 0x0 linker stubs
.toc 0x0000000000100c60 0x0 .toc 0x0000000000100ca8 0x0
.toc 0x0000000000100c60 0x0 tmp/powerpc64le-linux.elf-main.o .toc 0x0000000000100ca8 0x0 tmp/powerpc64le-linux.elf-main.o
.opd 0x0000000000100c60 0x58 .opd 0x0000000000100ca8 0x58
.opd 0x0000000000100c60 0x58 tmp/powerpc64le-linux.elf-main.o .opd 0x0000000000100ca8 0x58 tmp/powerpc64le-linux.elf-main.o
0x0000000000100ca0 upx_main 0x0000000000100ce8 upx_main
.iplt 0x0000000000100cb8 0x0 .iplt 0x0000000000100d00 0x0
.iplt 0x0000000000100cb8 0x0 linker stubs .iplt 0x0000000000100d00 0x0 linker stubs
.bss 0x0000000000100cb8 0x0 .bss 0x0000000000100d00 0x0
.bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-fold.o .bss 0x0000000000100d00 0x0 tmp/powerpc64le-linux.elf-fold.o
.bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-main.o .bss 0x0000000000100d00 0x0 tmp/powerpc64le-linux.elf-main.o