adb0ca8250
Handling more than 2 PT_LOAD (and thus more than 1 executable PT_LOAD) required extensive changes. But the bonus is the infrastructure to support a different (de-)compression algorithm for each PT_LOAD. https://github.com/upx/upx/issues/341 i386 .so decompression https://github.com/upx/upx/issues/609 armv7 .so on Android https://github.com/upx/upx/issues/625 amd64 .so execution https://github.com/upx/upx/issues/654 armv7 .exe Not yet: .so on MIPS, PowerPC, PowerPC64
98 lines
5.8 KiB
C++
98 lines
5.8 KiB
C++
/* amd64-linux.elf-so_entry.h
|
|
created from amd64-linux.elf-so_entry.bin, 915 (0x393) bytes
|
|
|
|
This file is part of the UPX executable compressor.
|
|
|
|
Copyright (C) 1996-2023 Markus Franz Xaver Johannes Oberhumer
|
|
Copyright (C) 1996-2023 Laszlo Molnar
|
|
Copyright (C) 2000-2023 John F. Reiser
|
|
All Rights Reserved.
|
|
|
|
UPX and the UCL library are free software; you can redistribute them
|
|
and/or modify them under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of
|
|
the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; see the file COPYING.
|
|
If not, write to the Free Software Foundation, Inc.,
|
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
Markus F.X.J. Oberhumer Laszlo Molnar
|
|
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
|
|
|
John F. Reiser
|
|
<jreiser@users.sourceforge.net>
|
|
*/
|
|
|
|
|
|
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_SIZE 915
|
|
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_ADLER32 0xb551f69c
|
|
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_CRC32 0xc3e067a5
|
|
|
|
unsigned char stub_amd64_linux_elf_so_entry[915] = {
|
|
/* 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,
|
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 0, 0, 0, 0, 0, 0,
|
|
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
|
/* 0x0040 */ 144, 82, 86, 87, 85, 83,232, 0, 0, 0, 0, 1,219,116, 2,243,
|
|
/* 0x0050 */ 195,139, 30, 72,131,238,252, 17,219,195, 91, 77, 41,201, 90, 77,
|
|
/* 0x0060 */ 41,192,139, 51,106, 34, 65, 90, 86, 82,106, 3, 90, 41,255,106,
|
|
/* 0x0070 */ 9, 88, 15, 5, 72, 61, 0,240,255,255,114, 1,204, 90, 80, 80,
|
|
/* 0x0080 */ 95,139, 75, 4, 72,141,115, 12, 72, 1,241, 81, 49,219, 49,201,
|
|
/* 0x0090 */ 106,255, 93,252,168,164,255,210,114,251,141, 65, 1,255,210, 17,
|
|
/* 0x00a0 */ 192,255,210,115,248,131,232, 3,114, 12,193,224, 8,172,131,240,
|
|
/* 0x00b0 */ 255,116, 47, 72, 99,232,141, 65, 1,255,210, 17,201,255,210, 17,
|
|
/* 0x00c0 */ 201,117, 13,137,193,131,192, 2,255,210, 17,201,255,210,115,248,
|
|
/* 0x00d0 */ 129,253, 0,243,255,255, 17,193, 86, 72,141, 52, 47,243,164, 94,
|
|
/* 0x00e0 */ 235,180, 89, 72, 57,206,116, 1,244, 72,141, 82,229, 95, 94, 82,
|
|
/* 0x00f0 */ 86, 87,106, 5, 90,106, 10, 88, 15, 5, 72, 61, 0,240,255,255,
|
|
/* 0x0100 */ 114, 1,204, 88, 80,255,224,232, 0, 0, 0, 0,102,105,108,101,
|
|
/* 0x0110 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,120, 56,
|
|
/* 0x0120 */ 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10,
|
|
/* 0x0130 */ 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
/* 0x0140 */ 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32,
|
|
/* 0x0150 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77,
|
|
/* 0x0160 */ 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
/* 0x0170 */ 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32,
|
|
/* 0x0180 */ 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73,
|
|
/* 0x0190 */ 78, 88, 32, 32, 32, 32, 32, 32, 48, 99, 55, 32, 32, 48, 32, 32,
|
|
/* 0x01a0 */ 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
|
/* 0x01b0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65,
|
|
/* 0x01c0 */ 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32,
|
|
/* 0x01d0 */ 48, 32, 32, 48, 49, 48, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
|
/* 0x01e0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
|
|
/* 0x01f0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
/* 0x0200 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
|
|
/* 0x0210 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73,
|
|
/* 0x0220 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
/* 0x0230 */ 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
|
|
/* 0x0240 */ 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48,
|
|
/* 0x0250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
|
/* 0x0260 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
|
|
/* 0x0270 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79,
|
|
/* 0x0280 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
|
|
/* 0x0290 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79,
|
|
/* 0x02a0 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
/* 0x02b0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
|
/* 0x02c0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
/* 0x02d0 */ 48, 48, 48, 48, 48, 48, 48, 55, 32, 82, 95, 88, 56, 54, 95, 54,
|
|
/* 0x02e0 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
|
|
/* 0x02f0 */ 73, 78, 90, 43, 48,120,102,102,102,102,102,102,102,102,102,102,
|
|
/* 0x0300 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
|
|
/* 0x0310 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
|
|
/* 0x0320 */ 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69,
|
|
/* 0x0330 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
|
|
/* 0x0340 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
|
|
/* 0x0350 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
/* 0x0360 */ 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
|
|
/* 0x0370 */ 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 43,
|
|
/* 0x0380 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
|
/* 0x0390 */ 49, 54, 10
|
|
};
|