ARM64 hacking
modified: p_lx_elf.cpp modified: stub/src/arch/arm64/v8/macros.S modified: stub/src/arm64-darwin.macho-fold.S modified: stub/src/arm64-linux.elf-entry.S modified: stub/arm64-darwin.macho-entry.h modified: stub/arm64-darwin.macho-fold.h modified: stub/arm64-linux.elf-entry.h modified: stub/arm64-linux.elf-fold.h modified: stub/tmp/arm64-darwin.macho-fold.map modified: stub/tmp/arm64-linux.elf-entry.bin.dump modified: stub/tmp/arm64-linux.elf-fold.map
This commit is contained in:
@@ -67,35 +67,35 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
*(.iplt)
|
||||
.iplt 0x0000000000400080 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
|
||||
.text 0x0000000000400078 0x6a8
|
||||
.text 0x0000000000400078 0x680
|
||||
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
.text 0x0000000000400078 0x188 tmp/arm64-darwin.macho-fold.o
|
||||
.text 0x0000000000400078 0x160 tmp/arm64-darwin.macho-fold.o
|
||||
0x0000000000400078 _start
|
||||
0x0000000000400134 spin
|
||||
0x0000000000400138 exit
|
||||
0x0000000000400144 read
|
||||
0x0000000000400154 write
|
||||
0x0000000000400164 open
|
||||
0x0000000000400174 close
|
||||
0x0000000000400184 brk
|
||||
0x0000000000400194 munmap
|
||||
0x00000000004001a4 mprotect
|
||||
0x00000000004001b4 mmap
|
||||
0x00000000004001c4 pread
|
||||
0x00000000004001d4 bswap
|
||||
.text 0x0000000000400200 0x520 tmp/arm64-darwin.macho-main.o
|
||||
0x0000000000400578 upx_main
|
||||
0x0000000000400140 read
|
||||
0x000000000040014c write
|
||||
0x0000000000400158 open
|
||||
0x0000000000400164 close
|
||||
0x0000000000400170 brk
|
||||
0x000000000040017c munmap
|
||||
0x0000000000400188 mprotect
|
||||
0x0000000000400194 mmap
|
||||
0x00000000004001a0 pread
|
||||
0x00000000004001ac bswap
|
||||
.text 0x00000000004001d8 0x520 tmp/arm64-darwin.macho-main.o
|
||||
0x0000000000400550 upx_main
|
||||
*(.gnu.warning)
|
||||
|
||||
.fini
|
||||
*(SORT(.fini))
|
||||
0x0000000000400720 PROVIDE (__etext, .)
|
||||
0x0000000000400720 PROVIDE (_etext, .)
|
||||
0x0000000000400720 PROVIDE (etext, .)
|
||||
0x00000000004006f8 PROVIDE (__etext, .)
|
||||
0x00000000004006f8 PROVIDE (_etext, .)
|
||||
0x00000000004006f8 PROVIDE (etext, .)
|
||||
|
||||
.rodata
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
@@ -106,9 +106,9 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
.eh_frame_hdr
|
||||
*(.eh_frame_hdr)
|
||||
|
||||
.eh_frame 0x0000000000400720 0x100
|
||||
.eh_frame 0x00000000004006f8 0x100
|
||||
*(.eh_frame)
|
||||
.eh_frame 0x0000000000400720 0x100 tmp/arm64-darwin.macho-main.o
|
||||
.eh_frame 0x00000000004006f8 0x100 tmp/arm64-darwin.macho-main.o
|
||||
0xf8 (size before relaxing)
|
||||
|
||||
.gcc_except_table
|
||||
@@ -116,8 +116,8 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
|
||||
.exception_ranges
|
||||
*(.exception_ranges .exception_ranges*)
|
||||
0x0000000000400820 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff))
|
||||
0x0000000000410820 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000)
|
||||
0x00000000004007f8 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff))
|
||||
0x00000000004107f8 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000)
|
||||
|
||||
.eh_frame
|
||||
*(.eh_frame)
|
||||
@@ -135,22 +135,22 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*)
|
||||
*(.tcommon)
|
||||
|
||||
.preinit_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__preinit_array_start, .)
|
||||
.preinit_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__preinit_array_start, .)
|
||||
*(.preinit_array)
|
||||
0x0000000000410820 PROVIDE (__preinit_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__preinit_array_end, .)
|
||||
|
||||
.init_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__init_array_start, .)
|
||||
.init_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__init_array_start, .)
|
||||
*(SORT(.init_array.*))
|
||||
*(.init_array)
|
||||
0x0000000000410820 PROVIDE (__init_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__init_array_end, .)
|
||||
|
||||
.fini_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__fini_array_start, .)
|
||||
.fini_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__fini_array_start, .)
|
||||
*(SORT(.fini_array.*))
|
||||
*(.fini_array)
|
||||
0x0000000000410820 PROVIDE (__fini_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__fini_array_end, .)
|
||||
|
||||
.ctors
|
||||
*crtbegin.o(.ctors)
|
||||
@@ -179,43 +179,43 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
.got
|
||||
*(.got)
|
||||
*(.igot)
|
||||
0x0000000000410820 . = DATA_SEGMENT_RELRO_END (., 0x18)
|
||||
0x00000000004107f8 . = DATA_SEGMENT_RELRO_END (., 0x18)
|
||||
|
||||
.got.plt 0x0000000000410820 0x0
|
||||
.got.plt 0x00000000004107f8 0x0
|
||||
*(.got.plt)
|
||||
*(.igot.plt)
|
||||
.igot.plt 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.igot.plt 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
|
||||
.data 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__data_start, .)
|
||||
.data 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__data_start, .)
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
.data 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.data 0x0000000000410820 0x0 tmp/arm64-darwin.macho-main.o
|
||||
.data 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.data 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-main.o
|
||||
|
||||
.data1
|
||||
*(.data1)
|
||||
0x0000000000410820 _edata = .
|
||||
0x0000000000410820 PROVIDE (edata, .)
|
||||
0x0000000000410820 . = .
|
||||
0x0000000000410820 __bss_start = .
|
||||
0x0000000000410820 __bss_start__ = .
|
||||
0x00000000004107f8 _edata = .
|
||||
0x00000000004107f8 PROVIDE (edata, .)
|
||||
0x00000000004107f8 . = .
|
||||
0x00000000004107f8 __bss_start = .
|
||||
0x00000000004107f8 __bss_start__ = .
|
||||
|
||||
.bss 0x0000000000410820 0x0
|
||||
.bss 0x00000000004107f8 0x0
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
.bss 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.bss 0x0000000000410820 0x0 tmp/arm64-darwin.macho-main.o
|
||||
.bss 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.bss 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-main.o
|
||||
*(COMMON)
|
||||
0x0000000000410820 . = ALIGN ((. != 0x0)?0x8:0x1)
|
||||
0x0000000000410820 _bss_end__ = .
|
||||
0x0000000000410820 __bss_end__ = .
|
||||
0x0000000000410820 . = ALIGN (0x8)
|
||||
0x0000000000410820 . = SEGMENT_START ("ldata-segment", .)
|
||||
0x0000000000410820 . = ALIGN (0x8)
|
||||
0x0000000000410820 __end__ = .
|
||||
0x0000000000410820 _end = .
|
||||
0x0000000000410820 PROVIDE (end, .)
|
||||
0x0000000000410820 . = DATA_SEGMENT_END (.)
|
||||
0x00000000004107f8 . = ALIGN ((. != 0x0)?0x8:0x1)
|
||||
0x00000000004107f8 _bss_end__ = .
|
||||
0x00000000004107f8 __bss_end__ = .
|
||||
0x00000000004107f8 . = ALIGN (0x8)
|
||||
0x00000000004107f8 . = SEGMENT_START ("ldata-segment", .)
|
||||
0x00000000004107f8 . = ALIGN (0x8)
|
||||
0x00000000004107f8 __end__ = .
|
||||
0x00000000004107f8 _end = .
|
||||
0x00000000004107f8 PROVIDE (end, .)
|
||||
0x00000000004107f8 . = DATA_SEGMENT_END (.)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
@@ -5,14 +5,14 @@ Idx Name Size VMA LMA File off Algn
|
||||
0 ELFMAINX 00000040 0000000000000000 0000000000000000 00000040 2**2 CONTENTS, RELOC, READONLY
|
||||
1 LUNMP000 00000004 0000000000000000 0000000000000000 00000080 2**2 CONTENTS, READONLY
|
||||
2 LUNMP001 00000004 0000000000000000 0000000000000000 00000084 2**2 CONTENTS, READONLY
|
||||
3 ELFMAINXu 000000ac 0000000000000000 0000000000000000 00000088 2**2 CONTENTS, RELOC, READONLY
|
||||
4 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000134 2**0 CONTENTS, READONLY
|
||||
5 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000134 2**0 CONTENTS, READONLY
|
||||
6 NRV2E 00000128 0000000000000000 0000000000000000 00000134 2**2 CONTENTS, READONLY
|
||||
7 NRV2D 0000011c 0000000000000000 0000000000000000 0000025c 2**2 CONTENTS, READONLY
|
||||
8 NRV2B 000005a4 0000000000000000 0000000000000000 00000378 2**2 CONTENTS, READONLY
|
||||
9 ELFMAINY 00000046 0000000000000000 0000000000000000 0000091c 2**2 CONTENTS, READONLY
|
||||
10 ELFMAINZ 00000000 0000000000000000 0000000000000000 00000962 2**0 CONTENTS, READONLY
|
||||
3 ELFMAINXu 000000a4 0000000000000000 0000000000000000 00000088 2**2 CONTENTS, RELOC, READONLY
|
||||
4 NRV_HEAD 00000000 0000000000000000 0000000000000000 0000012c 2**0 CONTENTS, READONLY
|
||||
5 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000012c 2**0 CONTENTS, READONLY
|
||||
6 NRV2E 00000128 0000000000000000 0000000000000000 0000012c 2**2 CONTENTS, READONLY
|
||||
7 NRV2D 0000011c 0000000000000000 0000000000000000 00000254 2**2 CONTENTS, READONLY
|
||||
8 NRV2B 000005a4 0000000000000000 0000000000000000 00000370 2**2 CONTENTS, READONLY
|
||||
9 ELFMAINY 0000003e 0000000000000000 0000000000000000 00000914 2**2 CONTENTS, READONLY
|
||||
10 ELFMAINZ 00000000 0000000000000000 0000000000000000 00000952 2**0 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
|
||||
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
|
||||
@@ -46,4 +46,4 @@ OFFSET TYPE VALUE
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINXu]:
|
||||
OFFSET TYPE VALUE
|
||||
000000000000002c R_AARCH64_CONDBR19 ELFMAINY
|
||||
0000000000000028 R_AARCH64_CONDBR19 ELFMAINY
|
||||
|
||||
@@ -8,44 +8,44 @@ Linker script and memory map
|
||||
|
||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x00000000001000bc 0x8a4
|
||||
.text 0x00000000001000bc 0x870
|
||||
*(.text)
|
||||
.text 0x00000000001000bc 0x2fc tmp/arm64-linux.elf-fold.o
|
||||
.text 0x00000000001000bc 0x2c8 tmp/arm64-linux.elf-fold.o
|
||||
0x00000000001002b4 my_bkpt
|
||||
0x00000000001002bc exit
|
||||
0x00000000001002c8 read
|
||||
0x00000000001002d8 write
|
||||
0x00000000001002e8 open
|
||||
0x00000000001002f8 close
|
||||
0x0000000000100308 unlink
|
||||
0x0000000000100318 getpid
|
||||
0x0000000000100328 brk
|
||||
0x0000000000100338 readlink
|
||||
0x0000000000100348 munmap
|
||||
0x0000000000100358 mprotect
|
||||
0x0000000000100368 __clear_cache
|
||||
0x0000000000100380 mmap
|
||||
0x00000000001003a0 mmap_privanon
|
||||
.text 0x00000000001003b8 0x5a8 tmp/arm64-linux.elf-main.o
|
||||
0x000000000010080c upx_main
|
||||
0x00000000001002c4 read
|
||||
0x00000000001002d0 write
|
||||
0x00000000001002dc open
|
||||
0x00000000001002e8 close
|
||||
0x00000000001002f4 unlink
|
||||
0x0000000000100300 getpid
|
||||
0x000000000010030c brk
|
||||
0x0000000000100318 readlink
|
||||
0x0000000000100324 munmap
|
||||
0x0000000000100330 mprotect
|
||||
0x000000000010033c __clear_cache
|
||||
0x0000000000100350 mmap
|
||||
0x000000000010036c mmap_privanon
|
||||
.text 0x0000000000100384 0x5a8 tmp/arm64-linux.elf-main.o
|
||||
0x00000000001007d8 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000100960 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100960 0x0 tmp/arm64-linux.elf-main.o
|
||||
.data 0x000000000010092c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x000000000010092c 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
.iplt 0x0000000000100960 0x0
|
||||
.iplt 0x0000000000100960 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.iplt 0x000000000010092c 0x0
|
||||
.iplt 0x000000000010092c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.rela.dyn 0x0000000000100960 0x0
|
||||
.rela.iplt 0x0000000000100960 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.rela.dyn 0x0000000000100930 0x0
|
||||
.rela.iplt 0x0000000000100930 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 0x0000000000100960 0x0
|
||||
.igot.plt 0x0000000000100960 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.igot.plt 0x0000000000100930 0x0
|
||||
.igot.plt 0x0000000000100930 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.bss 0x0000000000100960 0x0
|
||||
.bss 0x0000000000100960 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100960 0x0 tmp/arm64-linux.elf-main.o
|
||||
.bss 0x000000000010092c 0x0
|
||||
.bss 0x000000000010092c 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x000000000010092c 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
Reference in New Issue
Block a user