More Control Flow Integrity (Intel)

More ENDBRxx for CALL *%RDX for 'getbit'.
amd64: LEA xxx(%rip),%reg and STRCON section,
    instead of CALL; .asciz "..."; POP %reg
(Not for PE due to WINDOWS_BACK binary compatibility.)
i386 string constants still use call-.asciz-pop because no (%rip)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/amd64-linux.elf-so_entry.S
	modified:   stub/src/amd64-linux.shlib-init.S
	modified:   stub/src/amd64-win64.pe.S
	modified:   stub/src/i386-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-so_entry.S
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.map *.dump
This commit is contained in:
John Reiser
2024-09-20 13:41:43 -07:00
parent d55fdf2205
commit 3403b87cb7
19 changed files with 2258 additions and 2223 deletions
+14 -14
View File
@@ -3,17 +3,17 @@ file format elf64-x86-64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 01c 0 0 040 2**0 CONTENTS
1 NRV_HEAD 06a 0 0 05c 2**0 CONTENTS
2 NRV2E 0ba 0 0 0c6 2**0 CONTENTS
3 NRV2D 0a1 0 0 0180 2**0 CONTENTS
4 NRV2B 093 0 0 0221 2**0 CONTENTS
5 LZMA_ELF00 065 0 0 02b4 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 0319 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d10 2**0 CONTENTS
8 LZMA_DEC30 01b 0 0 01707 2**0 CONTENTS
9 NRV_TAIL 0 0 0 01722 2**0 CONTENTS
10 ELFMAINY 03a 0 0 01722 2**0 CONTENTS
11 ELFMAINZ 01b5 0 0 0175c 2**0 CONTENTS
1 NRV_HEAD 06e 0 0 05c 2**0 CONTENTS
2 NRV2E 0ba 0 0 0ca 2**0 CONTENTS
3 NRV2D 0a1 0 0 0184 2**0 CONTENTS
4 NRV2B 093 0 0 0225 2**0 CONTENTS
5 LZMA_ELF00 065 0 0 02b8 2**0 CONTENTS
6 LZMA_DEC10 09f7 0 0 031d 2**0 CONTENTS
7 LZMA_DEC20 09f7 0 0 0d14 2**0 CONTENTS
8 LZMA_DEC30 01b 0 0 0170b 2**0 CONTENTS
9 NRV_TAIL 0 0 0 01726 2**0 CONTENTS
10 ELFMAINY 03a 0 0 01726 2**0 CONTENTS
11 ELFMAINZ 01b5 0 0 01760 2**0 CONTENTS
SYMBOL TABLE:
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
@@ -39,17 +39,17 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
00000000000000af R_X86_64_PC32 NRV_HEAD+0x0000000000000022
00000000000000af R_X86_64_PC32 NRV_HEAD+0x0000000000000026
000000000000005c R_X86_64_PC32 eof_n2e+0xfffffffffffffffc
RELOCATION RECORDS FOR [NRV2D]:
OFFSET TYPE VALUE
0000000000000096 R_X86_64_PC32 NRV_HEAD+0x0000000000000022
0000000000000096 R_X86_64_PC32 NRV_HEAD+0x0000000000000026
000000000000005c R_X86_64_PC32 eof_n2d+0xfffffffffffffffc
RELOCATION RECORDS FOR [NRV2B]:
OFFSET TYPE VALUE
000000000000008b R_X86_64_PC32 NRV_HEAD+0x0000000000000022
000000000000008b R_X86_64_PC32 NRV_HEAD+0x0000000000000026
0000000000000053 R_X86_64_PC32 eof_n2b+0xfffffffffffffffc
RELOCATION RECORDS FOR [LZMA_ELF00]: