amd64-linux revamp for compressing shared libraries

Major changes: p_lx_elf.cpp and stub/src/amd64-linux.elf-so*.
(Includes run-time infrastructure for multiple de-compressors.)
	modified:   linker.cpp
	modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
	modified:   p_unix.cpp
	modified:   p_unix.h
	modified:   stub/Makefile
	modified:   stub/src/amd64-darwin.dylib-entry.S
	modified:   stub/src/amd64-darwin.macho-entry.S
	new file:   stub/src/amd64-expand.S
	modified:   stub/src/amd64-linux.elf-entry.S
	new file:   stub/src/amd64-linux.elf-so_entry.S
	new file:   stub/src/amd64-linux.elf-so_fold.S
	new file:   stub/src/amd64-linux.elf-so_fold.lds
	new file:   stub/src/amd64-linux.elf-so_main.c
	modified:   stub/src/amd64-linux.shlib-init.S
	modified:   stub/src/amd64-win64.pep.S
	modified:   stub/src/arch/amd64/nrv2b_d.S
	modified:   stub/src/arch/amd64/nrv2d_d.S
	modified:   stub/src/arch/amd64/nrv2e_d.S
           plus many generated stub/*.h and stub/tmp/*.bin.dump
This commit is contained in:
John Reiser
2023-01-09 09:39:25 -08:00
committed by Markus F.X.J. Oberhumer
parent 5f3ebc8a7f
commit 26d8e9c4c5
133 changed files with 42126 additions and 48117 deletions
+53 -53
View File
@@ -2,60 +2,60 @@ file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 DllStart 00000008 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 ExeStart 00000064 00000000 00000000 0000003c 2**1 CONTENTS, RELOC, READONLY
2 Unfilter_0x50 00000038 00000000 00000000 000000a0 2**2 CONTENTS, RELOC, READONLY
3 Relocs 00000040 00000000 00000000 000000d8 2**2 CONTENTS, RELOC, READONLY
4 Imports 00000082 00000000 00000000 00000118 2**0 CONTENTS, RELOC, READONLY
5 ProcessEnd 00000008 00000000 00000000 0000019a 2**0 CONTENTS, READONLY
6 UPX1HEAD 00000020 00000000 00000000 000001a2 2**0 CONTENTS, READONLY
7 .ucl_nrv2b_decompress_8 00000098 00000000 00000000 000001c2 2**0 CONTENTS, READONLY
8 Call2B 00000004 00000000 00000000 0000025a 2**0 CONTENTS, RELOC, READONLY
9 .ucl_nrv2e_decompress_8 000000b2 00000000 00000000 0000025e 2**0 CONTENTS, READONLY
10 Call2E 00000004 00000000 00000000 00000310 2**0 CONTENTS, RELOC, READONLY
11 CallLZMA 00000034 00000000 00000000 00000314 2**2 CONTENTS, RELOC, READONLY
12 LZMA_DECODE 00000000 00000000 00000000 00000348 2**0 CONTENTS, READONLY
13 LZMA_DEC10 00000760 00000000 00000000 00000348 2**2 CONTENTS, READONLY
0 DllStart 08 0 0 034 2**0 CONTENTS
1 ExeStart 064 0 0 03c 2**1 CONTENTS
2 Unfilter_0x50 038 0 0 0a0 2**2 CONTENTS
3 Relocs 040 0 0 0d8 2**2 CONTENTS
4 Imports 082 0 0 0118 2**0 CONTENTS
5 ProcessEnd 08 0 0 019a 2**0 CONTENTS
6 UPX1HEAD 020 0 0 01a2 2**0 CONTENTS
7 .ucl_nrv2b_decompress_8 098 0 0 01c2 2**0 CONTENTS
8 Call2B 04 0 0 025a 2**0 CONTENTS
9 .ucl_nrv2e_decompress_8 0b2 0 0 025e 2**0 CONTENTS
10 Call2E 04 0 0 0310 2**0 CONTENTS
11 CallLZMA 034 0 0 0314 2**2 CONTENTS
12 LZMA_DECODE 0 0 0 0348 2**0 CONTENTS
13 LZMA_DEC10 0760 0 0 0348 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ExeStart 00000000 ExeStart
00000000 l Imports 00000000 .real_start_ofImports
00000000 l d .ucl_nrv2b_decompress_8 00000000 .ucl_nrv2b_decompress_8
00000000 l d .ucl_nrv2e_decompress_8 00000000 .ucl_nrv2e_decompress_8
00000000 l LZMA_DECODE 00000000 .real_start_ofLZMA_DECODE
00000000 l d DllStart 00000000 DllStart
00000000 l d Unfilter_0x50 00000000 Unfilter_0x50
00000000 l d Relocs 00000000 Relocs
00000000 l d Imports 00000000 Imports
00000000 l d ProcessEnd 00000000 ProcessEnd
00000000 l d UPX1HEAD 00000000 UPX1HEAD
00000000 l d Call2B 00000000 Call2B
00000000 l d Call2E 00000000 Call2E
00000000 l d CallLZMA 00000000 CallLZMA
00000000 l d LZMA_DECODE 00000000 LZMA_DECODE
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
00000038 g ExeStart 00000000 SRC0
00000040 g ExeStart 00000000 DST0
00000048 g ExeStart 00000000 IATT
00000058 g ExeStart 00000000 ENTR
00000000 *UND* 00000000 start_of_compressed
00000000 *UND* 00000000 compressed_length
00000000 *UND* 00000000 start_of_uncompressed
00000000 *UND* 00000000 uncompressed_length
00000000 *UND* 00000000 original_entry
00000030 g Unfilter_0x50 00000000 FIBS
00000000 *UND* 00000000 filter_buffer_start
00000034 g Unfilter_0x50 00000000 FIBE
00000000 *UND* 00000000 filter_buffer_end
0000003c g Relocs 00000000 BREL
00000000 *UND* 00000000 start_of_relocs
00000078 g Imports 00000000 BIMP
00000000 *UND* 00000000 start_of_imports
0000007c g Imports 00000000 ONAM
00000000 *UND* 00000000 start_of_dll_names
00000000 *UND* 00000000 lzma_u_len
00000000 *UND* 00000000 lzma_stack_adjust
00000000 *UND* 00000000 lzma_c_len
00000000 *UND* 00000000 lzma_properties
00000000 l d ExeStart 0 ExeStart
00000000 l Imports 0 .real_start_ofImports
00000000 l d .ucl_nrv2b_decompress_8 0 .ucl_nrv2b_decompress_8
00000000 l d .ucl_nrv2e_decompress_8 0 .ucl_nrv2e_decompress_8
00000000 l LZMA_DECODE 0 .real_start_ofLZMA_DECODE
00000000 l d DllStart 0 DllStart
00000000 l d Unfilter_0x50 0 Unfilter_0x50
00000000 l d Relocs 0 Relocs
00000000 l d Imports 0 Imports
00000000 l d ProcessEnd 0 ProcessEnd
00000000 l d UPX1HEAD 0 UPX1HEAD
00000000 l d Call2B 0 Call2B
00000000 l d Call2E 0 Call2E
00000000 l d CallLZMA 0 CallLZMA
00000000 l d LZMA_DECODE 0 LZMA_DECODE
00000000 l d LZMA_DEC10 0 LZMA_DEC10
00000038 g ExeStart 0 SRC0
00000040 g ExeStart 0 DST0
00000048 g ExeStart 0 IATT
00000058 g ExeStart 0 ENTR
00000000 *UND* 0 start_of_compressed
00000000 *UND* 0 compressed_length
00000000 *UND* 0 start_of_uncompressed
00000000 *UND* 0 uncompressed_length
00000000 *UND* 0 original_entry
00000030 g Unfilter_0x50 0 FIBS
00000000 *UND* 0 filter_buffer_start
00000034 g Unfilter_0x50 0 FIBE
00000000 *UND* 0 filter_buffer_end
0000003c g Relocs 0 BREL
00000000 *UND* 0 start_of_relocs
00000078 g Imports 0 BIMP
00000000 *UND* 0 start_of_imports
0000007c g Imports 0 ONAM
00000000 *UND* 0 start_of_dll_names
00000000 *UND* 0 lzma_u_len
00000000 *UND* 0 lzma_stack_adjust
00000000 *UND* 0 lzma_c_len
00000000 *UND* 0 lzma_properties
RELOCATION RECORDS FOR [DllStart]:
OFFSET TYPE VALUE