Fix varying page size on arm64

https://github.com/upx/upx/issues/734
	modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
          ... plus associated stub/*.h etc
This commit is contained in:
John Reiser
2023-11-17 15:10:31 -08:00
parent ae77fd60bb
commit d4e94f5086
11 changed files with 971 additions and 959 deletions
+37 -36
View File
@@ -8,62 +8,63 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x8b4
.text 0x00000000001000bc 0x8b8
*(.text)
.text 0x00000000001000bc 0x1b7 tmp/amd64-linux.elf-fold.o
.text 0x00000000001000bc 0x1b9 tmp/amd64-linux.elf-fold.o
0x0000000000100263 munmap
0x000000000010022a mmap
0x000000000010026b write
0x000000000010026f read
0x0000000000100273 my_bkpt
0x0000000000100241 Pprotect
0x0000000000100253 exit
0x0000000000100257 brk
0x000000000010025f open
0x0000000000100267 mprotect
0x000000000010025b close
*fill* 0x0000000000100273 0x1 00
.text 0x0000000000100274 0x6fa tmp/amd64-linux.elf-main.o
0x0000000000100826 upx_main
*fill* 0x000000000010096e 0x2 00
.text 0x0000000000100970 0x0 tmp/amd64-expand.o
*fill* 0x0000000000100275 0x3 00
.text 0x0000000000100278 0x6fa tmp/amd64-linux.elf-main.o
0x000000000010082a upx_main
*fill* 0x0000000000100972 0x2 00
.text 0x0000000000100974 0x0 tmp/amd64-expand.o
*(.data)
.data 0x0000000000100970 0x0 tmp/amd64-linux.elf-fold.o
.data 0x0000000000100970 0x0 tmp/amd64-linux.elf-main.o
.data 0x0000000000100970 0x0 tmp/amd64-expand.o
0x0000000000100970 . = ALIGN (0x1)
0x0000000000100970 __start_EXP_HEAD = .
.data 0x0000000000100974 0x0 tmp/amd64-linux.elf-fold.o
.data 0x0000000000100974 0x0 tmp/amd64-linux.elf-main.o
.data 0x0000000000100974 0x0 tmp/amd64-expand.o
0x0000000000100974 . = ALIGN (0x1)
0x0000000000100974 __start_EXP_HEAD = .
EXP_HEAD 0x0000000000100970 0xe0
EXP_HEAD 0x0000000000100970 0xe0 tmp/amd64-expand.o
0x0000000000100970 f_expand
0x0000000000100a50 __stop_EXP_HEAD = .
0x0000000000100a50 . = ALIGN (0x1)
0x0000000000100a50 __start_NRV2E = .
EXP_HEAD 0x0000000000100974 0xe0
EXP_HEAD 0x0000000000100974 0xe0 tmp/amd64-expand.o
0x0000000000100974 f_expand
0x0000000000100a54 __stop_EXP_HEAD = .
0x0000000000100a54 . = ALIGN (0x1)
0x0000000000100a54 __start_NRV2E = .
NRV2E 0x0000000000100a50 0xe5
NRV2E 0x0000000000100a50 0xe5 tmp/amd64-expand.o
0x0000000000100b35 __stop_NRV2E = .
0x0000000000100b35 . = ALIGN (0x1)
0x0000000000100b35 __start_NRV2D = .
NRV2E 0x0000000000100a54 0xe5
NRV2E 0x0000000000100a54 0xe5 tmp/amd64-expand.o
0x0000000000100b39 __stop_NRV2E = .
0x0000000000100b39 . = ALIGN (0x1)
0x0000000000100b39 __start_NRV2D = .
NRV2D 0x0000000000100b35 0xd7
NRV2D 0x0000000000100b35 0xd7 tmp/amd64-expand.o
0x0000000000100c0c __stop_NRV2D = .
0x0000000000100c0c . = ALIGN (0x1)
0x0000000000100c0c __start_NRV2B = .
NRV2D 0x0000000000100b39 0xd7
NRV2D 0x0000000000100b39 0xd7 tmp/amd64-expand.o
0x0000000000100c10 __stop_NRV2D = .
0x0000000000100c10 . = ALIGN (0x1)
0x0000000000100c10 __start_NRV2B = .
NRV2B 0x0000000000100c0c 0xc1
NRV2B 0x0000000000100c0c 0xc1 tmp/amd64-expand.o
0x0000000000100ccd __stop_NRV2B = .
NRV2B 0x0000000000100c10 0xc1
NRV2B 0x0000000000100c10 0xc1 tmp/amd64-expand.o
0x0000000000100cd1 __stop_NRV2B = .
.data
.bss 0x0000000000100cd0 0x0
.bss 0x0000000000100cd0 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x0000000000100cd0 0x0 tmp/amd64-linux.elf-main.o
.bss 0x0000000000100cd0 0x0 tmp/amd64-expand.o
.bss 0x0000000000100cd4 0x0
.bss 0x0000000000100cd4 0x0 tmp/amd64-linux.elf-fold.o
.bss 0x0000000000100cd4 0x0 tmp/amd64-linux.elf-main.o
.bss 0x0000000000100cd4 0x0 tmp/amd64-expand.o
.rela.dyn 0x0000000000100cd0 0x0
.rela.dyn 0x0000000000100cd8 0x0
.rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-fold.o
LOAD tmp/amd64-linux.elf-main.o
+14 -14
View File
@@ -2,18 +2,18 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 08 0 0 040 2**0 CONTENTS
1 NRV_HEAD 0 0 0 048 2**0 CONTENTS
2 NRV_TAIL 0 0 0 048 2**0 CONTENTS
3 NRV2E 017c 0 0 048 2**0 CONTENTS
4 NRV2D 0170 0 0 01c4 2**0 CONTENTS
5 NRV2B 0144 0 0 0334 2**0 CONTENTS
6 LZMA_ELF00 010c 0 0 0478 2**0 CONTENTS
7 LZMA_DEC20 0968 0 0 0584 2**0 CONTENTS
8 LZMA_DEC10 04a0 0 0 0eec 2**0 CONTENTS
9 LZMA_DEC30 0 0 0 0138c 2**0 CONTENTS
10 ELFMAINY 03e 0 0 0138c 2**0 CONTENTS
11 ELFMAINZ 0110 0 0 013cc 2**2 CONTENTS
0 ELFMAINX 0c 0 0 040 2**0 CONTENTS
1 NRV_HEAD 0 0 0 04c 2**0 CONTENTS
2 NRV_TAIL 0 0 0 04c 2**0 CONTENTS
3 NRV2E 017c 0 0 04c 2**0 CONTENTS
4 NRV2D 0170 0 0 01c8 2**0 CONTENTS
5 NRV2B 0144 0 0 0338 2**0 CONTENTS
6 LZMA_ELF00 010c 0 0 047c 2**0 CONTENTS
7 LZMA_DEC20 0968 0 0 0588 2**0 CONTENTS
8 LZMA_DEC10 04a0 0 0 0ef0 2**0 CONTENTS
9 LZMA_DEC30 0 0 0 01390 2**0 CONTENTS
10 ELFMAINY 03e 0 0 01390 2**0 CONTENTS
11 ELFMAINZ 0fc 0 0 013d0 2**2 CONTENTS
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
@@ -39,7 +39,7 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 MFLG
0000000000000004 R_AARCH64_CALL26 ELFMAINZ+0x00000000000000c4
0000000000000008 R_AARCH64_CALL26 ELFMAINZ+0x00000000000000b0
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
@@ -47,4 +47,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
000000000000010c R_AARCH64_ABS32 O_BINFO
00000000000000f8 R_AARCH64_ABS32 O_BINFO
+32 -31
View File
@@ -8,45 +8,46 @@ Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xa58
.text 0x00000000001000bc 0xa68
*(.text)
.text 0x00000000001000bc 0x29c tmp/arm64-linux.elf-fold.o
0x0000000000100274 my_bkpt
0x000000000010027c exit
0x0000000000100284 read
0x0000000000100290 write
0x000000000010029c close
0x00000000001002a8 getpid
0x00000000001002b4 brk
0x00000000001002c0 munmap
0x00000000001002cc Pprotect
0x00000000001002cc mprotect
0x00000000001002e4 mmap_privanon
0x00000000001002f4 mmap
0x000000000010030c unlink
0x0000000000100320 readlink
0x0000000000100328 open
0x0000000000100344 __clear_cache
.text 0x0000000000100358 0x7bc tmp/arm64-linux.elf-main.o
0x00000000001009ac upx_main
.text 0x00000000001000bc 0x2ac tmp/arm64-linux.elf-fold.o
0x00000000001000c4 get_page_mask
0x00000000001000d4 mmap_privanon
0x00000000001000e4 mmap
0x0000000000100100 Pprotect
0x0000000000100100 mprotect
0x00000000001002c4 my_bkpt
0x00000000001002cc exit
0x00000000001002d4 read
0x00000000001002e0 write
0x00000000001002ec close
0x00000000001002f8 getpid
0x0000000000100304 brk
0x0000000000100310 munmap
0x000000000010031c unlink
0x0000000000100330 readlink
0x0000000000100338 open
0x0000000000100354 __clear_cache
.text 0x0000000000100368 0x7bc tmp/arm64-linux.elf-main.o
0x00000000001009bc upx_main
*(.data)
.data 0x0000000000100b14 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100b14 0x0 tmp/arm64-linux.elf-main.o
.data 0x0000000000100b24 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100b24 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x0000000000100b14 0x0
.iplt 0x0000000000100b14 0x0 tmp/arm64-linux.elf-fold.o
.iplt 0x0000000000100b24 0x0
.iplt 0x0000000000100b24 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100b18 0x0
.rela.iplt 0x0000000000100b18 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100b28 0x0
.rela.iplt 0x0000000000100b28 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 0x0000000000100b18 0x0
.igot.plt 0x0000000000100b18 0x0 tmp/arm64-linux.elf-fold.o
.igot.plt 0x0000000000100b28 0x0
.igot.plt 0x0000000000100b28 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100b14 0x0
.bss 0x0000000000100b14 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100b14 0x0 tmp/arm64-linux.elf-main.o
.bss 0x0000000000100b24 0x0
.bss 0x0000000000100b24 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100b24 0x0 tmp/arm64-linux.elf-main.o