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
+75 -75
View File
@@ -2,82 +2,82 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 SYSMAIN1 0000000a 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
1 SYSI2861 00000001 00000000 00000000 0000003e 2**0 CONTENTS, READONLY
2 SYSI0861 00000007 00000000 00000000 0000003f 2**0 CONTENTS, READONLY
3 SYSMAIN2 00000017 00000000 00000000 00000046 2**0 CONTENTS, RELOC, READONLY
4 SYSSBBBP 00000002 00000000 00000000 0000005d 2**0 CONTENTS, READONLY
5 SYSCALLT 00000001 00000000 00000000 0000005f 2**0 CONTENTS, READONLY
6 SYSMAIN3 00000003 00000000 00000000 00000060 2**0 CONTENTS, RELOC, READONLY
7 UPX1HEAD 00000016 00000000 00000000 00000063 2**0 CONTENTS, READONLY
8 SYSCUTPO 00000000 00000000 00000000 00000079 2**0 CONTENTS, READONLY
9 NRV2B160 0000000a 00000000 00000000 00000079 2**0 CONTENTS, RELOC, READONLY
10 NRVDDONE 00000002 00000000 00000000 00000083 2**0 CONTENTS, RELOC, READONLY
11 NRVDRETU 00000002 00000000 00000000 00000085 2**0 CONTENTS, RELOC, READONLY
12 NRVDECO1 0000001e 00000000 00000000 00000087 2**0 CONTENTS, RELOC, READONLY
13 NRVLED00 00000001 00000000 00000000 000000a5 2**0 CONTENTS, READONLY
14 NRVGTD00 00000007 00000000 00000000 000000a6 2**0 CONTENTS, READONLY
15 NRVDECO2 00000016 00000000 00000000 000000ad 2**0 CONTENTS, RELOC, READONLY
16 CALLTR16 0000000b 00000000 00000000 000000c3 2**0 CONTENTS, RELOC, READONLY
17 CT16I286 00000003 00000000 00000000 000000ce 2**0 CONTENTS, READONLY
18 CT16SUB0 00000002 00000000 00000000 000000d1 2**0 CONTENTS, READONLY
19 CT16I086 00000008 00000000 00000000 000000d3 2**0 CONTENTS, READONLY
20 CALLTRI2 00000003 00000000 00000000 000000db 2**0 CONTENTS, RELOC, READONLY
21 CT16E800 00000002 00000000 00000000 000000de 2**0 CONTENTS, READONLY
22 CT16E900 00000002 00000000 00000000 000000e0 2**0 CONTENTS, READONLY
23 CALLTRI5 00000006 00000000 00000000 000000e2 2**0 CONTENTS, RELOC, READONLY
24 CT16JEND 00000002 00000000 00000000 000000e8 2**0 CONTENTS, RELOC, READONLY
25 CT16JUL2 00000002 00000000 00000000 000000ea 2**0 CONTENTS, RELOC, READONLY
26 CT16I287 00000003 00000000 00000000 000000ec 2**0 CONTENTS, READONLY
27 CT16SUB1 00000002 00000000 00000000 000000ef 2**0 CONTENTS, READONLY
28 CT16I087 00000008 00000000 00000000 000000f1 2**0 CONTENTS, READONLY
29 CALLTRI6 00000003 00000000 00000000 000000f9 2**0 CONTENTS, RELOC, READONLY
30 SYSMAIN5 00000001 00000000 00000000 000000fc 2**0 CONTENTS, READONLY
31 SYSI2862 00000001 00000000 00000000 000000fd 2**0 CONTENTS, READONLY
32 SYSI0862 00000007 00000000 00000000 000000fe 2**0 CONTENTS, READONLY
33 SYSJUMP1 00000003 00000000 00000000 00000105 2**0 CONTENTS, RELOC, READONLY
0 SYSMAIN1 0a 0 0 034 2**0 CONTENTS
1 SYSI2861 01 0 0 03e 2**0 CONTENTS
2 SYSI0861 07 0 0 03f 2**0 CONTENTS
3 SYSMAIN2 017 0 0 046 2**0 CONTENTS
4 SYSSBBBP 02 0 0 05d 2**0 CONTENTS
5 SYSCALLT 01 0 0 05f 2**0 CONTENTS
6 SYSMAIN3 03 0 0 060 2**0 CONTENTS
7 UPX1HEAD 016 0 0 063 2**0 CONTENTS
8 SYSCUTPO 0 0 0 079 2**0 CONTENTS
9 NRV2B160 0a 0 0 079 2**0 CONTENTS
10 NRVDDONE 02 0 0 083 2**0 CONTENTS
11 NRVDRETU 02 0 0 085 2**0 CONTENTS
12 NRVDECO1 01e 0 0 087 2**0 CONTENTS
13 NRVLED00 01 0 0 0a5 2**0 CONTENTS
14 NRVGTD00 07 0 0 0a6 2**0 CONTENTS
15 NRVDECO2 016 0 0 0ad 2**0 CONTENTS
16 CALLTR16 0b 0 0 0c3 2**0 CONTENTS
17 CT16I286 03 0 0 0ce 2**0 CONTENTS
18 CT16SUB0 02 0 0 0d1 2**0 CONTENTS
19 CT16I086 08 0 0 0d3 2**0 CONTENTS
20 CALLTRI2 03 0 0 0db 2**0 CONTENTS
21 CT16E800 02 0 0 0de 2**0 CONTENTS
22 CT16E900 02 0 0 0e0 2**0 CONTENTS
23 CALLTRI5 06 0 0 0e2 2**0 CONTENTS
24 CT16JEND 02 0 0 0e8 2**0 CONTENTS
25 CT16JUL2 02 0 0 0ea 2**0 CONTENTS
26 CT16I287 03 0 0 0ec 2**0 CONTENTS
27 CT16SUB1 02 0 0 0ef 2**0 CONTENTS
28 CT16I087 08 0 0 0f1 2**0 CONTENTS
29 CALLTRI6 03 0 0 0f9 2**0 CONTENTS
30 SYSMAIN5 01 0 0 0fc 2**0 CONTENTS
31 SYSI2862 01 0 0 0fd 2**0 CONTENTS
32 SYSI0862 07 0 0 0fe 2**0 CONTENTS
33 SYSJUMP1 03 0 0 0105 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d SYSMAIN1 00000000 SYSMAIN1
00000000 l d NRV2B160 00000000 NRV2B160
00000000 l d NRVDECO2 00000000 NRVDECO2
00000000 l d CALLTR16 00000000 CALLTR16
00000000 l d CALLTRI5 00000000 CALLTRI5
00000000 l d CALLTRI6 00000000 CALLTRI6
00000000 l d SYSI2861 00000000 SYSI2861
00000000 l d SYSI0861 00000000 SYSI0861
00000000 l d SYSMAIN2 00000000 SYSMAIN2
00000000 l d SYSSBBBP 00000000 SYSSBBBP
00000000 l d SYSCALLT 00000000 SYSCALLT
00000000 l d SYSMAIN3 00000000 SYSMAIN3
00000000 l d UPX1HEAD 00000000 UPX1HEAD
00000000 l d SYSCUTPO 00000000 SYSCUTPO
00000000 l d NRVDDONE 00000000 NRVDDONE
00000000 l d NRVDRETU 00000000 NRVDRETU
00000000 l d NRVDECO1 00000000 NRVDECO1
00000000 l d NRVLED00 00000000 NRVLED00
00000000 l d NRVGTD00 00000000 NRVGTD00
00000000 l d CT16I286 00000000 CT16I286
00000000 l d CT16SUB0 00000000 CT16SUB0
00000000 l d CT16I086 00000000 CT16I086
00000000 l d CALLTRI2 00000000 CALLTRI2
00000000 l d CT16E800 00000000 CT16E800
00000000 l d CT16E900 00000000 CT16E900
00000000 l d CT16JEND 00000000 CT16JEND
00000000 l d CT16JUL2 00000000 CT16JUL2
00000000 l d CT16I287 00000000 CT16I287
00000000 l d CT16SUB1 00000000 CT16SUB1
00000000 l d CT16I087 00000000 CT16I087
00000000 l d SYSMAIN5 00000000 SYSMAIN5
00000000 l d SYSI2862 00000000 SYSI2862
00000000 l d SYSI0862 00000000 SYSI0862
00000000 l d SYSJUMP1 00000000 SYSJUMP1
00000000 *UND* 00000000 attribute
00000000 *UND* 00000000 interrupt
00000000 *UND* 00000000 copy_source
00000000 *UND* 00000000 copy_destination
00000000 *UND* 00000000 neg_e_len
00000000 *UND* 00000000 calltrick_calls
00000000 *UND* 00000000 original_strategy
00000000 l d SYSMAIN1 0 SYSMAIN1
00000000 l d NRV2B160 0 NRV2B160
00000000 l d NRVDECO2 0 NRVDECO2
00000000 l d CALLTR16 0 CALLTR16
00000000 l d CALLTRI5 0 CALLTRI5
00000000 l d CALLTRI6 0 CALLTRI6
00000000 l d SYSI2861 0 SYSI2861
00000000 l d SYSI0861 0 SYSI0861
00000000 l d SYSMAIN2 0 SYSMAIN2
00000000 l d SYSSBBBP 0 SYSSBBBP
00000000 l d SYSCALLT 0 SYSCALLT
00000000 l d SYSMAIN3 0 SYSMAIN3
00000000 l d UPX1HEAD 0 UPX1HEAD
00000000 l d SYSCUTPO 0 SYSCUTPO
00000000 l d NRVDDONE 0 NRVDDONE
00000000 l d NRVDRETU 0 NRVDRETU
00000000 l d NRVDECO1 0 NRVDECO1
00000000 l d NRVLED00 0 NRVLED00
00000000 l d NRVGTD00 0 NRVGTD00
00000000 l d CT16I286 0 CT16I286
00000000 l d CT16SUB0 0 CT16SUB0
00000000 l d CT16I086 0 CT16I086
00000000 l d CALLTRI2 0 CALLTRI2
00000000 l d CT16E800 0 CT16E800
00000000 l d CT16E900 0 CT16E900
00000000 l d CT16JEND 0 CT16JEND
00000000 l d CT16JUL2 0 CT16JUL2
00000000 l d CT16I287 0 CT16I287
00000000 l d CT16SUB1 0 CT16SUB1
00000000 l d CT16I087 0 CT16I087
00000000 l d SYSMAIN5 0 SYSMAIN5
00000000 l d SYSI2862 0 SYSI2862
00000000 l d SYSI0862 0 SYSI0862
00000000 l d SYSJUMP1 0 SYSJUMP1
00000000 *UND* 0 attribute
00000000 *UND* 0 interrupt
00000000 *UND* 0 copy_source
00000000 *UND* 0 copy_destination
00000000 *UND* 0 neg_e_len
00000000 *UND* 0 calltrick_calls
00000000 *UND* 0 original_strategy
RELOCATION RECORDS FOR [SYSMAIN1]:
OFFSET TYPE VALUE