ELF2: memcheck avoids extra safety bytes
modified: stub/src/amd64-linux.elf-entry.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h and .dump
This commit is contained in:
Generated
+60
-59
@@ -1,5 +1,5 @@
|
||||
/* amd64-linux.elf-entry.h
|
||||
created from amd64-linux.elf-entry.bin, 1101 (0x44d) bytes
|
||||
created from amd64-linux.elf-entry.bin, 1105 (0x451) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@@ -32,78 +32,79 @@
|
||||
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 1101
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x6aa33a05
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x424cb481
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 1105
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0xbd0f3bb4
|
||||
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x69ac5629
|
||||
|
||||
unsigned char stub_amd64_linux_elf_entry[1101] = {
|
||||
unsigned char stub_amd64_linux_elf_entry[1105] = {
|
||||
/* 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,232, 1, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,240, 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 */ 89, 84, 95, 81,232, 47, 1, 0, 0,232, 42, 1, 0, 0, 72,139,
|
||||
/* 0x0040 */ 89, 84, 95, 81,232, 51, 1, 0, 0,232, 46, 1, 0, 0, 72,139,
|
||||
/* 0x0050 */ 7, 72,139, 79, 8, 72,131,199, 16, 72,131,248, 6,116, 12, 72,
|
||||
/* 0x0060 */ 199,193, 0, 16, 0, 0, 72,133,192,117,227, 72,247,217, 81, 82,
|
||||
/* 0x0070 */ 104,117,112,120, 0, 84, 95, 41,246,184, 63, 1, 0, 0,232, 2,
|
||||
/* 0x0070 */ 104,117,112,120, 0, 84, 95, 41,246,184, 63, 1, 0, 0,232, 6,
|
||||
/* 0x0080 */ 1, 0, 0, 73,137,196, 89, 72,141, 61,174,255,255,255,139, 15,
|
||||
/* 0x0090 */ 72, 41,207, 72,141, 53, 0, 0, 0, 0,173,147, 65,137,221,173,
|
||||
/* 0x00a0 */ 146,131,194, 16, 82,106,255, 87, 72, 41,217, 81, 72, 1,251, 83,
|
||||
/* 0x00b0 */ 84, 93, 72, 41,212, 72,131,228,192, 84, 95,173, 80,173,102,131,
|
||||
/* 0x00c0 */ 248, 2,116, 1,244, 88, 72, 1,240, 80, 85, 49,219, 49,201, 72,
|
||||
/* 0x00d0 */ 141, 21,196, 0, 0, 0,106,255, 93,252,168,164,255,210,114,251,
|
||||
/* 0x00d0 */ 141, 21,200, 0, 0, 0,106,255, 93,252,168,164,255,210,114,251,
|
||||
/* 0x00e0 */ 141, 65, 1,255,210, 17,192,255,210,115,248,131,232, 3,114, 12,
|
||||
/* 0x00f0 */ 193,224, 8,172,131,240,255,116, 47, 72, 99,232,141, 65, 1,255,
|
||||
/* 0x0100 */ 210, 17,201,255,210, 17,201,117, 13,137,193,131,192, 2,255,210,
|
||||
/* 0x0110 */ 17,201,255,210,115,248,129,253, 0,243,255,255, 17,193, 86, 72,
|
||||
/* 0x0120 */ 141, 52, 47,243,164, 94,235,180, 93, 89, 72, 57,206,116, 1,244,
|
||||
/* 0x0130 */ 72,139, 69, 48, 72,137, 4, 36, 72,139, 85, 32, 84, 94, 76,137,
|
||||
/* 0x0140 */ 231,106, 1, 88,232, 60, 0, 0, 0, 85, 92, 69, 41,201, 77,137,
|
||||
/* 0x0150 */ 224,106, 1, 65, 90, 82, 94,106, 7, 90, 41,255,106, 9, 88,232,
|
||||
/* 0x0160 */ 33, 0, 0, 0, 80, 72,137, 69, 24, 65, 80, 95,106, 3, 88, 15,
|
||||
/* 0x0170 */ 5, 88, 72,131,192, 8,255,224, 72,139, 7, 72,131,199, 8, 72,
|
||||
/* 0x0180 */ 133,192,117,244,195, 80, 15, 5, 89, 72, 61, 0,240,255,255,114,
|
||||
/* 0x0190 */ 1,244,195, 72,139, 60, 36,102,175,195, 1,219,116, 2,243,195,
|
||||
/* 0x01a0 */ 139, 30, 72,131,238,252, 17,219,243,195, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x01b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
|
||||
/* 0x01c0 */ 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,
|
||||
/* 0x01d0 */ 110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32,
|
||||
/* 0x01e0 */ 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x01f0 */ 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0200 */ 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0210 */ 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,
|
||||
/* 0x0220 */ 103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76,
|
||||
/* 0x0230 */ 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 54, 97,
|
||||
/* 0x0240 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42,
|
||||
/* 0x0250 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32,
|
||||
/* 0x0260 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 52,
|
||||
/* 0x0270 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 97, 99, 32, 32, 50, 42,
|
||||
/* 0x0280 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77,
|
||||
/* 0x0290 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x02a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x02b0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69,
|
||||
/* 0x02c0 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x02d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
||||
/* 0x02e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77,
|
||||
/* 0x02f0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0300 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
|
||||
/* 0x0310 */ 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10,
|
||||
/* 0x0320 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0330 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48,
|
||||
/* 0x0340 */ 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65,
|
||||
/* 0x0350 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
|
||||
/* 0x0360 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
|
||||
/* 0x0370 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
|
||||
/* 0x0380 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0390 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x03a0 */ 48, 48, 48, 48, 53, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x03b0 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
|
||||
/* 0x03c0 */ 90, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,
|
||||
/* 0x03d0 */ 102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
||||
/* 0x03e0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
|
||||
/* 0x03f0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x0400 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x0410 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x0420 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0430 */ 48, 48, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
|
||||
/* 0x0440 */ 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
|
||||
/* 0x0130 */ 72,139, 69, 48, 72,137, 4, 36, 72,139, 85, 32, 72,131,234, 16,
|
||||
/* 0x0140 */ 84, 94, 76,137,231,106, 1, 88,232, 60, 0, 0, 0, 85, 92, 69,
|
||||
/* 0x0150 */ 41,201, 77,137,224,106, 1, 65, 90, 82, 94,106, 7, 90, 41,255,
|
||||
/* 0x0160 */ 106, 9, 88,232, 33, 0, 0, 0, 80, 72,137, 69, 24, 65, 80, 95,
|
||||
/* 0x0170 */ 106, 3, 88, 15, 5, 88, 72,131,192, 8,255,224, 72,139, 7, 72,
|
||||
/* 0x0180 */ 131,199, 8, 72,133,192,117,244,195, 80, 15, 5, 89, 72, 61, 0,
|
||||
/* 0x0190 */ 240,255,255,114, 1,244,195, 72,139, 60, 36,102,175,195, 1,219,
|
||||
/* 0x01a0 */ 116, 2,243,195,139, 30, 72,131,238,252, 17,219,243,195, 0, 0,
|
||||
/* 0x01b0 */ 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
|
||||
/* 0x01c0 */ 101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101,
|
||||
/* 0x01d0 */ 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101,
|
||||
/* 0x01e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32,
|
||||
/* 0x01f0 */ 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0200 */ 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0210 */ 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102,
|
||||
/* 0x0220 */ 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32,
|
||||
/* 0x0230 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0240 */ 48, 49, 54,101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32,
|
||||
/* 0x0250 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
||||
/* 0x0260 */ 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32,
|
||||
/* 0x0270 */ 32, 32, 48, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 98, 48,
|
||||
/* 0x0280 */ 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x0290 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
|
||||
/* 0x02a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x02b0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
|
||||
/* 0x02c0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48,
|
||||
/* 0x02d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
||||
/* 0x02e0 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
|
||||
/* 0x02f0 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
|
||||
/* 0x0310 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116,
|
||||
/* 0x0320 */ 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0330 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
|
||||
/* 0x0340 */ 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69,
|
||||
/* 0x0350 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
|
||||
/* 0x0360 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58,
|
||||
/* 0x0370 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0380 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0390 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x03a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 54, 32, 82, 95, 88, 56, 54,
|
||||
/* 0x03b0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70,
|
||||
/* 0x03c0 */ 77, 65, 73, 78, 90, 43, 48,120,102,102,102,102,102,102,102,102,
|
||||
/* 0x03d0 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65,
|
||||
/* 0x03e0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
|
||||
/* 0x03f0 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70,
|
||||
/* 0x0400 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
|
||||
/* 0x0410 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0420 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0430 */ 48, 48, 48, 48, 48, 48, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x0440 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79,
|
||||
/* 0x0450 */ 10
|
||||
};
|
||||
|
||||
@@ -128,7 +128,9 @@ AT_PAGESZ= 6 // /usr/include/elf.h
|
||||
sub %rcx,%rdi // elfaddr
|
||||
lea o_binfo(%rip),%rsi
|
||||
lodsl; xchg %eax,%ebx; mov %ebx,%r13d // O_BINFO; advance to &b_info
|
||||
lodsl; xchg %eax,%edx; add $0x10,%edx; push %rdx // F_LENU = sz_unc + x86_overrun + insurance
|
||||
INSURANCE= 0x10
|
||||
lodsl; xchg %eax,%edx
|
||||
add $INSURANCE,%edx; push %rdx // F_LENU = sz_unc + x86_overrun + insurance
|
||||
push $-1 // space for F_ADRU
|
||||
push %rdi // F_ELFA
|
||||
sub %rbx,%rcx; push %rcx // F_LENX = sz_pack2 - O_BINFO
|
||||
@@ -235,6 +237,7 @@ eof_n2b:
|
||||
// Write de-compressed 'fold' to file
|
||||
mov F_PMASK(old_sp),%rax; mov %rax,(%rsp) // propagate PAGE_MASK
|
||||
mov F_LENU(old_sp),%arg3 // LENU
|
||||
sub $INSURANCE,%arg3 // memcheck limit
|
||||
push %rsp; pop %arg2 // buffer
|
||||
mov %r12,%arg1 // mfd
|
||||
push $__NR_write; pop %rax; call sys_check
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@ file format elf64-x86-64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 016a 0 0 040 2**0 CONTENTS
|
||||
1 ELFMAINZ 04 0 0 01ac 2**2 CONTENTS
|
||||
0 ELFMAINX 016e 0 0 040 2**0 CONTENTS
|
||||
1 ELFMAINZ 04 0 0 01b0 2**2 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
|
||||
0000000000000000 l d ELFMAINX 0 ELFMAINX
|
||||
|
||||
Reference in New Issue
Block a user