mirror of
https://github.com/upx/upx.git
synced 2025-02-25 10:31:15 +00:00
Fix reloc of stub for amd64-linux.elf
modified: stub/src/arm64-linux.elf-main.c modified: stub/arm64-linux.elf-fold.h modified: stub/tmp/arm64-linux.elf-fold.map
This commit is contained in:
parent
143c4e3322
commit
f496010273
@ -1,5 +1,5 @@
|
||||
/* arm64-linux.elf-fold.h
|
||||
created from arm64-linux.elf-fold.bin, 2364 (0x93c) bytes
|
||||
created from arm64-linux.elf-fold.bin, 2356 (0x934) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -31,20 +31,20 @@
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2364
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x05744b33
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x9b059cc1
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2356
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x0cc94769
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x8f081e00
|
||||
|
||||
unsigned char stub_arm64_linux_elf_fold[2364] = {
|
||||
unsigned char stub_arm64_linux_elf_fold[2356] = {
|
||||
/* 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,
|
||||
/* 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,
|
||||
/* 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,
|
||||
/* 0x0060 */ 60, 9, 0, 0, 0, 0, 0, 0, 60, 9, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0060 */ 52, 9, 0, 0, 0, 0, 0, 0, 52, 9, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0080 */ 60, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0080 */ 52, 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,
|
||||
/* 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,229, 35, 65,169,
|
||||
@ -164,24 +164,24 @@ unsigned char stub_arm64_linux_elf_fold[2364] = {
|
||||
/* 0x07d0 */ 243, 3, 2,170, 84, 0, 1,145,162, 63, 0,249, 2, 0, 64,185,
|
||||
/* 0x07e0 */ 245, 91, 2,169,162, 59, 0,249,245, 3, 3,170,226, 3, 4,170,
|
||||
/* 0x07f0 */ 3, 0,128,210,160, 79, 0,249,161, 75, 0,249,160, 71, 0,249,
|
||||
/* 0x0800 */ 160, 67, 2,145,161, 67, 0,249,161,195, 1,145,165, 43, 0,249,
|
||||
/* 0x0810 */ 164, 47, 0,249,247, 99, 3,169,249, 35, 0,249,249, 3, 6,170,
|
||||
/* 0x0820 */ 218,254,255,151, 23, 0,128, 82,130, 10, 64,249,224, 3, 21,170,
|
||||
/* 0x0830 */ 97, 0,128, 82, 66, 0, 1,145,175,254,255,151, 98,114, 64,121,
|
||||
/* 0x0840 */ 224, 3, 21,170,161, 0,128, 82,171,254,255,151,164, 47, 64,249,
|
||||
/* 0x0850 */ 161, 3, 2,145,165, 43, 64,249, 2, 0,128, 82,227, 3, 21,170,
|
||||
/* 0x0860 */ 230, 3, 25,170,224, 3, 19,170, 25,255,255,151,246, 3, 0,170,
|
||||
/* 0x0870 */ 33, 1,128, 82,224, 3, 21,170,226, 3, 22,170,158,254,255,151,
|
||||
/* 0x0880 */ 96,114, 64,121,255, 2, 0,107,202, 4, 0, 84,128, 2, 64,185,
|
||||
/* 0x0890 */ 31, 12, 0,113, 1, 4, 0, 84,129, 10, 64,249, 32, 3, 64,249,
|
||||
/* 0x08a0 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42,134,254,255,151,
|
||||
/* 0x08b0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 95,254,255,151,
|
||||
/* 0x08c0 */ 225, 3, 19,170, 2,128,128,210, 94,254,255,151, 31, 0, 16,241,
|
||||
/* 0x08d0 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,
|
||||
/* 0x08e0 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,224, 3, 19,170,
|
||||
/* 0x08f0 */ 191, 55, 0,249,246,254,255,151,246, 3, 0,170,162, 55, 64,249,
|
||||
/* 0x0900 */ 224, 3, 21,170,225, 0,128, 82,123,254,255,151,224, 3, 24, 42,
|
||||
/* 0x0910 */ 82,254,255,151,148,226, 0,145,247, 6, 0, 17,217,255,255, 23,
|
||||
/* 0x0920 */ 224, 3, 22,170,249, 35, 64,249,243, 83, 65,169,245, 91, 66,169,
|
||||
/* 0x0930 */ 247, 99, 67,169,253,123,202,168,192, 3, 95,214
|
||||
/* 0x0800 */ 160, 67, 2,145,161, 67, 0,249,161,195, 1,145,165, 39, 0,249,
|
||||
/* 0x0810 */ 166, 47, 0,249,164, 43, 0,249,247, 99, 3,169,219,254,255,151,
|
||||
/* 0x0820 */ 23, 0,128, 82,130, 10, 64,249,224, 3, 21,170, 97, 0,128, 82,
|
||||
/* 0x0830 */ 66, 0, 1,145,176,254,255,151, 98,114, 64,121,224, 3, 21,170,
|
||||
/* 0x0840 */ 161, 0,128, 82,172,254,255,151,164, 43, 64,249,161, 3, 2,145,
|
||||
/* 0x0850 */ 165, 39, 64,249, 2, 0,128, 82,227, 3, 21,170,166, 99, 1,145,
|
||||
/* 0x0860 */ 224, 3, 19,170, 26,255,255,151,246, 3, 0,170, 33, 1,128, 82,
|
||||
/* 0x0870 */ 224, 3, 21,170,226, 3, 22,170,159,254,255,151, 96,114, 64,121,
|
||||
/* 0x0880 */ 255, 2, 0,107,202, 4, 0, 84,128, 2, 64,185, 31, 12, 0,113,
|
||||
/* 0x0890 */ 1, 4, 0, 84,129, 10, 64,249,160, 47, 64,249, 32, 0, 0,139,
|
||||
/* 0x08a0 */ 1, 0,128, 82,226, 3, 1, 42,135,254,255,151,248, 3, 0, 42,
|
||||
/* 0x08b0 */ 96, 0,248, 54,224, 15,128, 82, 96,254,255,151,225, 3, 19,170,
|
||||
/* 0x08c0 */ 2,128,128,210, 95,254,255,151, 31, 0, 16,241, 65,255,255, 84,
|
||||
/* 0x08d0 */ 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,228, 3, 1,170,
|
||||
/* 0x08e0 */ 229, 3, 1,170,166,163, 1,145,224, 3, 19,170,191, 55, 0,249,
|
||||
/* 0x08f0 */ 247,254,255,151,246, 3, 0,170,162, 55, 64,249,224, 3, 21,170,
|
||||
/* 0x0900 */ 225, 0,128, 82,124,254,255,151,224, 3, 24, 42, 83,254,255,151,
|
||||
/* 0x0910 */ 148,226, 0,145,247, 6, 0, 17,217,255,255, 23,224, 3, 22,170,
|
||||
/* 0x0920 */ 243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,253,123,202,168,
|
||||
/* 0x0930 */ 192, 3, 95,214
|
||||
};
|
||||
|
@ -355,7 +355,7 @@ upx_main( // returns entry address
|
||||
/*x3*/ Elf64_auxv_t *const av,
|
||||
/*x4*/ f_expand *const f_decompress,
|
||||
/*x5*/ f_unfilter *const f_unf,
|
||||
/*x6*/ Elf64_Addr *preloc // IN OUT; value result for ET_DYN
|
||||
/*x6*/ Elf64_Addr reloc // IN OUT; value result for ET_DYN
|
||||
)
|
||||
{
|
||||
Elf64_Phdr const *phdr = (Elf64_Phdr const *)(1+ ehdr);
|
||||
@ -376,13 +376,13 @@ upx_main( // returns entry address
|
||||
//auxv_up(av, AT_PHENT , ehdr->e_phentsize); /* this can never change */
|
||||
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
|
||||
|
||||
entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, preloc); // "rewind"
|
||||
entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, &reloc); // "rewind"
|
||||
auxv_up(av, AT_ENTRY , entry);
|
||||
|
||||
{ // Map PT_INTERP program interpreter
|
||||
int j;
|
||||
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) if (PT_INTERP==phdr->p_type) {
|
||||
char const *const iname = *preloc + (char const *)phdr->p_vaddr;
|
||||
char const *const iname = reloc + (char const *)phdr->p_vaddr;
|
||||
int const fdi = open(iname, O_RDONLY, 0);
|
||||
if (0 > fdi) {
|
||||
err_exit(18);
|
||||
|
@ -8,7 +8,7 @@ Linker script and memory map
|
||||
|
||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x00000000001000bc 0x880
|
||||
.text 0x00000000001000bc 0x878
|
||||
*(.text)
|
||||
.text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o
|
||||
0x0000000000100230 my_bkpt
|
||||
@ -26,26 +26,26 @@ Linker script and memory map
|
||||
0x00000000001002bc readlink
|
||||
0x00000000001002c4 open
|
||||
0x00000000001002e0 __clear_cache
|
||||
.text 0x00000000001002f4 0x648 tmp/arm64-linux.elf-main.o
|
||||
.text 0x00000000001002f4 0x640 tmp/arm64-linux.elf-main.o
|
||||
0x00000000001007c4 upx_main
|
||||
*(.data)
|
||||
.data 0x000000000010093c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x000000000010093c 0x0 tmp/arm64-linux.elf-main.o
|
||||
.data 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100934 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
.iplt 0x000000000010093c 0x0
|
||||
.iplt 0x000000000010093c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.iplt 0x0000000000100934 0x0
|
||||
.iplt 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.rela.dyn 0x0000000000100940 0x0
|
||||
.rela.iplt 0x0000000000100940 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.rela.dyn 0x0000000000100938 0x0
|
||||
.rela.iplt 0x0000000000100938 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.data
|
||||
LOAD tmp/arm64-linux.elf-fold.o
|
||||
LOAD tmp/arm64-linux.elf-main.o
|
||||
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
|
||||
|
||||
.igot.plt 0x0000000000100940 0x0
|
||||
.igot.plt 0x0000000000100940 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.igot.plt 0x0000000000100938 0x0
|
||||
.igot.plt 0x0000000000100938 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.bss 0x000000000010093c 0x0
|
||||
.bss 0x000000000010093c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x000000000010093c 0x0 tmp/arm64-linux.elf-main.o
|
||||
.bss 0x0000000000100934 0x0
|
||||
.bss 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100934 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
Loading…
x
Reference in New Issue
Block a user