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:
+6
-3
@@ -8,13 +8,13 @@ Linker script and memory map
|
||||
|
||||
0x000000000010004c . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x0000000000000000 0x9a8
|
||||
.text 0x0000000000000000 0x9a2
|
||||
.text 0x0000000000000000 0x164 tmp/amd64-linux.elf-fold.o
|
||||
0x000000000000015c get_page_mask
|
||||
.text 0x0000000000000164 0x0 tmp/amd64-expand.o
|
||||
.text 0x0000000000000164 0x844 tmp/amd64-linux.elf-main2.o
|
||||
.text 0x0000000000000164 0x83e tmp/amd64-linux.elf-main2.o
|
||||
0x00000000000002b9 underlay
|
||||
0x0000000000000873 upx_main
|
||||
0x000000000000086d upx_main
|
||||
|
||||
.data 0x0000000000000000 0x0
|
||||
.data 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o
|
||||
@@ -79,3 +79,6 @@ LZMA_DEC30 0x0000000000000000 0x19
|
||||
|
||||
EXP_TAIL 0x0000000000000000 0x14
|
||||
EXP_TAIL 0x0000000000000000 0x14 tmp/amd64-expand.o
|
||||
|
||||
STRCON 0x0000000000000000 0x8
|
||||
STRCON 0x0000000000000000 0x8 tmp/amd64-linux.elf-main2.o
|
||||
|
||||
+3
-3
@@ -2,8 +2,8 @@ file format elf64-x86-64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 0fd 0 0 040 2**0 CONTENTS
|
||||
1 ELFMAINZ 06 0 0 013d 2**0 CONTENTS
|
||||
0 ELFMAINX 0101 0 0 040 2**0 CONTENTS
|
||||
1 ELFMAINZ 06 0 0 0141 2**0 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d ELFMAINX 0 ELFMAINX
|
||||
0000000000000000 l ELFMAINX 0 _start
|
||||
@@ -15,4 +15,4 @@ OFFSET TYPE VALUE
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINZ]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000002 R_X86_64_PC32 ELFMAINX+0x0000000000000019
|
||||
0000000000000002 R_X86_64_PC32 ELFMAINX+0x000000000000001d
|
||||
|
||||
+14
-14
@@ -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]:
|
||||
|
||||
+22
-22
@@ -2,37 +2,37 @@ file format elf32-i386
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 06da 0 0 034 2**2 CONTENTS
|
||||
1 ELFMAINZ 0a 0 0 070e 2**0 CONTENTS
|
||||
0 ELFMAINX 06de 0 0 034 2**2 CONTENTS
|
||||
1 ELFMAINZ 0a 0 0 0712 2**0 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
00000000 l d ELFMAINX 0 ELFMAINX
|
||||
00000000 l d ELFMAINZ 0 ELFMAINZ
|
||||
00000482 g F ELFMAINX 0258 upx_mmap_and_fd
|
||||
00000486 g F ELFMAINX 0258 upx_mmap_and_fd
|
||||
00000000 *UND* 0 O_BINFO
|
||||
000001d4 g ELFMAINX 0 mempcpy
|
||||
0000017a g ELFMAINX 0 mmap
|
||||
0000019d g ELFMAINX 0 uname
|
||||
00000188 g ELFMAINX 0 get_upxfn_path
|
||||
000001d8 g ELFMAINX 0 mempcpy
|
||||
0000017e g ELFMAINX 0 mmap
|
||||
000001a1 g ELFMAINX 0 uname
|
||||
0000018c g ELFMAINX 0 get_upxfn_path
|
||||
00000000 g ELFMAINX 0 _start
|
||||
000001c2 g ELFMAINX 0 memset
|
||||
000001f4 g ELFMAINX 0 my_bkpt
|
||||
0000018b g ELFMAINX 0 stat
|
||||
000001ac g ELFMAINX 0 mkdir
|
||||
000001c6 g ELFMAINX 0 memset
|
||||
000001f8 g ELFMAINX 0 my_bkpt
|
||||
0000018f g ELFMAINX 0 stat
|
||||
000001b0 g ELFMAINX 0 mkdir
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
00000005 R_386_PC32 ELFMAINZ
|
||||
000000a5 R_386_PC32 upx_mmap_and_fd
|
||||
00000152 R_386_PC32 mmap
|
||||
0000020c R_386_PC32 memset
|
||||
0000025b R_386_PC32 my_bkpt
|
||||
00000321 R_386_PC32 my_bkpt
|
||||
00000355 R_386_PC32 mempcpy
|
||||
000003b1 R_386_PC32 mempcpy
|
||||
00000500 R_386_PC32 my_bkpt
|
||||
00000579 R_386_PC32 get_upxfn_path
|
||||
0000062a R_386_PC32 memset
|
||||
000006ae R_386_PC32 mmap
|
||||
000000a9 R_386_PC32 upx_mmap_and_fd
|
||||
00000156 R_386_PC32 mmap
|
||||
00000210 R_386_PC32 memset
|
||||
0000025f R_386_PC32 my_bkpt
|
||||
00000325 R_386_PC32 my_bkpt
|
||||
00000359 R_386_PC32 mempcpy
|
||||
000003b5 R_386_PC32 mempcpy
|
||||
00000504 R_386_PC32 my_bkpt
|
||||
0000057d R_386_PC32 get_upxfn_path
|
||||
0000062e R_386_PC32 memset
|
||||
000006b2 R_386_PC32 mmap
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINZ]:
|
||||
OFFSET TYPE VALUE
|
||||
|
||||
Reference in New Issue
Block a user