i386 shared library TLS init
https://github.com/upx/upx/issues/643 modified: .github/travis_testsuite_1-expected_sha256sums.sh modified: src/p_w32pe.cpp modified: src/stub/i386-win32.pe.h modified: src/stub/src/i386-win32.pe.S modified: src/stub/tmp/i386-win32.pe.bin.dump
This commit is contained in:
committed by
Markus F.X.J. Oberhumer
parent
e86d9179aa
commit
ab00825f37
@@ -124,6 +124,7 @@ void PackW32Pe::buildLoader(const Filter *ft)
|
||||
"PEMAIN10",
|
||||
nullptr
|
||||
);
|
||||
addLoader(tmp_tlsindex ? "PETLSHAK2" : "");
|
||||
if (ft->id)
|
||||
{
|
||||
const unsigned texv = ih.codebase - rvamin;
|
||||
|
||||
+1694
-1685
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,6 @@
|
||||
#define UPX102 1
|
||||
#include "arch/i386/macros.S"
|
||||
|
||||
|
||||
// =============
|
||||
// ============= ENTRY POINT
|
||||
// =============
|
||||
@@ -55,6 +54,10 @@ section PEICONS2
|
||||
addw [edi + icon_offset], offset icon_delta
|
||||
section PETLSHAK
|
||||
mov dword ptr [edi + tls_address], offset tls_value
|
||||
push [eax] // save the TLS index
|
||||
mov dword ptr [eax], offset tls_value // restore compressed data overwritten by the TLS index
|
||||
push eax
|
||||
|
||||
section PEMAIN02
|
||||
push edi
|
||||
section PEMAIN03
|
||||
@@ -73,6 +76,11 @@ section PEMAIN03
|
||||
section PEMAIN10
|
||||
pop esi // load vaddr
|
||||
|
||||
section PETLSHAK2 // restore the TLS index
|
||||
pop edi
|
||||
pop eax
|
||||
mov [edi], eax
|
||||
|
||||
// =============
|
||||
// ============= CALLTRICK
|
||||
// =============
|
||||
|
||||
Vendored
+120
-117
@@ -9,123 +9,124 @@ Idx Name Size VMA LMA File off Algn Flags
|
||||
4 PESOUNC0 06 0 0 051 2**0 CONTENTS
|
||||
5 PEICONS1 07 0 0 057 2**0 CONTENTS
|
||||
6 PEICONS2 09 0 0 05e 2**0 CONTENTS
|
||||
7 PETLSHAK 0a 0 0 067 2**0 CONTENTS
|
||||
8 PEMAIN02 01 0 0 071 2**0 CONTENTS
|
||||
9 PEMAIN03 03 0 0 072 2**0 CONTENTS
|
||||
10 N2BSMA10 03 0 0 075 2**0 CONTENTS
|
||||
11 N2BFAS10 02 0 0 078 2**0 CONTENTS
|
||||
12 N2BFAS11 06 0 0 07a 2**0 CONTENTS
|
||||
13 N2BDEC10 0b 0 0 080 2**0 CONTENTS
|
||||
14 N2BSMA20 05 0 0 08b 2**0 CONTENTS
|
||||
15 N2BFAS20 07 0 0 090 2**0 CONTENTS
|
||||
16 N2BDEC20 0d 0 0 097 2**0 CONTENTS
|
||||
17 N2BSMA30 0d 0 0 0a4 2**0 CONTENTS
|
||||
18 N2BFAS30 0f 0 0 0b1 2**0 CONTENTS
|
||||
19 N2BDEC30 03e 0 0 0c0 2**0 CONTENTS
|
||||
20 N2BSMA40 0d 0 0 0fe 2**0 CONTENTS
|
||||
21 N2BFAS40 0f 0 0 010b 2**0 CONTENTS
|
||||
22 N2BSMA50 02 0 0 011a 2**0 CONTENTS
|
||||
23 N2BFAS50 03 0 0 011c 2**0 CONTENTS
|
||||
24 N2BDEC50 09 0 0 011f 2**0 CONTENTS
|
||||
25 N2BSMA60 0e 0 0 0128 2**0 CONTENTS
|
||||
26 N2BFAS60 016 0 0 0136 2**0 CONTENTS
|
||||
27 N2BFAS61 016 0 0 014c 2**0 CONTENTS
|
||||
28 N2BDEC60 0 0 0 0162 2**0 CONTENTS
|
||||
29 N2DSMA10 03 0 0 0162 2**0 CONTENTS
|
||||
30 N2DFAS10 02 0 0 0165 2**0 CONTENTS
|
||||
31 N2DFAS11 06 0 0 0167 2**0 CONTENTS
|
||||
32 N2DDEC10 0b 0 0 016d 2**0 CONTENTS
|
||||
33 N2DSMA20 05 0 0 0178 2**0 CONTENTS
|
||||
34 N2DFAS20 07 0 0 017d 2**0 CONTENTS
|
||||
35 N2DDEC20 0d 0 0 0184 2**0 CONTENTS
|
||||
36 N2DSMA30 0d 0 0 0191 2**0 CONTENTS
|
||||
37 N2DFAS30 0f 0 0 019e 2**0 CONTENTS
|
||||
38 N2DDEC30 052 0 0 01ad 2**0 CONTENTS
|
||||
39 N2DSMA40 0d 0 0 01ff 2**0 CONTENTS
|
||||
40 N2DFAS40 0f 0 0 020c 2**0 CONTENTS
|
||||
41 N2DSMA50 02 0 0 021b 2**0 CONTENTS
|
||||
42 N2DFAS50 03 0 0 021d 2**0 CONTENTS
|
||||
43 N2DDEC50 09 0 0 0220 2**0 CONTENTS
|
||||
44 N2DSMA60 0e 0 0 0229 2**0 CONTENTS
|
||||
45 N2DFAS60 016 0 0 0237 2**0 CONTENTS
|
||||
46 N2DFAS61 016 0 0 024d 2**0 CONTENTS
|
||||
47 N2DDEC60 0 0 0 0263 2**0 CONTENTS
|
||||
48 N2ESMA10 03 0 0 0263 2**0 CONTENTS
|
||||
49 N2EFAS10 02 0 0 0266 2**0 CONTENTS
|
||||
50 N2EFAS11 06 0 0 0268 2**0 CONTENTS
|
||||
51 N2EDEC10 0b 0 0 026e 2**0 CONTENTS
|
||||
52 N2ESMA20 05 0 0 0279 2**0 CONTENTS
|
||||
53 N2EFAS20 07 0 0 027e 2**0 CONTENTS
|
||||
54 N2EDEC20 0d 0 0 0285 2**0 CONTENTS
|
||||
55 N2ESMA30 0d 0 0 0292 2**0 CONTENTS
|
||||
56 N2EFAS30 0f 0 0 029f 2**0 CONTENTS
|
||||
57 N2EDEC30 05f 0 0 02ae 2**0 CONTENTS
|
||||
58 N2ESMA40 0d 0 0 030d 2**0 CONTENTS
|
||||
59 N2EFAS40 0f 0 0 031a 2**0 CONTENTS
|
||||
60 N2ESMA50 02 0 0 0329 2**0 CONTENTS
|
||||
61 N2EFAS50 03 0 0 032b 2**0 CONTENTS
|
||||
62 N2EDEC50 09 0 0 032e 2**0 CONTENTS
|
||||
63 N2ESMA60 0e 0 0 0337 2**0 CONTENTS
|
||||
64 N2EFAS60 016 0 0 0345 2**0 CONTENTS
|
||||
65 N2EFAS61 016 0 0 035b 2**0 CONTENTS
|
||||
66 N2EDEC60 0 0 0 0371 2**0 CONTENTS
|
||||
67 LZMA_DEC00 02e 0 0 0371 2**0 CONTENTS
|
||||
68 LZMA_ELF00 048 0 0 039f 2**0 CONTENTS
|
||||
69 LZMA_DEC10 0a86 0 0 03e7 2**0 CONTENTS
|
||||
70 LZMA_DEC20 0a86 0 0 0e6d 2**0 CONTENTS
|
||||
71 LZMA_DEC30 01a 0 0 018f3 2**0 CONTENTS
|
||||
72 PEMAIN10 01 0 0 0190d 2**0 CONTENTS
|
||||
73 PECTTPOS 06 0 0 0190e 2**0 CONTENTS
|
||||
74 PECTTNUL 02 0 0 01914 2**0 CONTENTS
|
||||
75 CALLTR00 0e 0 0 01916 2**0 CONTENTS
|
||||
76 CTCLEVE1 05 0 0 01924 2**0 CONTENTS
|
||||
77 CALLTR01 05 0 0 01929 2**0 CONTENTS
|
||||
78 CTBSHR01 04 0 0 0192e 2**0 CONTENTS
|
||||
79 CTBROR01 02 0 0 01932 2**0 CONTENTS
|
||||
80 CTBSWA01 05 0 0 01934 2**0 CONTENTS
|
||||
81 CALLTR02 010 0 0 01939 2**0 CONTENTS
|
||||
82 CALLTR10 05 0 0 01949 2**0 CONTENTS
|
||||
83 CALLTRE8 02 0 0 0194e 2**0 CONTENTS
|
||||
84 CALLTRE9 02 0 0 01950 2**0 CONTENTS
|
||||
85 CALLTR11 04 0 0 01952 2**0 CONTENTS
|
||||
86 CTCLEVE2 05 0 0 01956 2**0 CONTENTS
|
||||
87 CALLTR12 02 0 0 0195b 2**0 CONTENTS
|
||||
88 CTBSHR11 04 0 0 0195d 2**0 CONTENTS
|
||||
89 CTBROR11 02 0 0 01961 2**0 CONTENTS
|
||||
90 CTBSWA11 05 0 0 01963 2**0 CONTENTS
|
||||
91 CALLTR13 07 0 0 01968 2**0 CONTENTS
|
||||
92 ctok32.00 0a 0 0 0196f 2**0 CONTENTS
|
||||
93 ctok32.10 0e 0 0 01979 2**0 CONTENTS
|
||||
94 ctok32.20 020 0 0 01987 2**0 CONTENTS
|
||||
95 ctok32.30 0a 0 0 019a7 2**0 CONTENTS
|
||||
96 ctok32.40 05 0 0 019b1 2**0 CONTENTS
|
||||
97 PEIMPORT 02c 0 0 019b6 2**0 CONTENTS
|
||||
98 PEIBYORD 02 0 0 019e2 2**0 CONTENTS
|
||||
99 PEK32ORD 010 0 0 019e4 2**0 CONTENTS
|
||||
100 PEIMORD1 07 0 0 019f4 2**0 CONTENTS
|
||||
101 PEIMPOR2 016 0 0 019fb 2**0 CONTENTS
|
||||
102 PEIERDLL 06 0 0 01a11 2**0 CONTENTS
|
||||
103 PEIEREXE 06 0 0 01a17 2**0 CONTENTS
|
||||
104 PEIMDONE 0 0 0 01a1d 2**0 CONTENTS
|
||||
105 PERELOC1 06 0 0 01a1d 2**0 CONTENTS
|
||||
106 PERELOC2 03 0 0 01a23 2**0 CONTENTS
|
||||
107 PERELOC3 03 0 0 01a26 2**0 CONTENTS
|
||||
108 RELOC320 029 0 0 01a29 2**0 CONTENTS
|
||||
109 REL32BIG 09 0 0 01a52 2**0 CONTENTS
|
||||
110 RELOC32J 02 0 0 01a5b 2**0 CONTENTS
|
||||
111 REL32END 0 0 0 01a5d 2**0 CONTENTS
|
||||
112 PERLOHI0 08 0 0 01a5d 2**0 CONTENTS
|
||||
113 PERELLO0 0a 0 0 01a65 2**0 CONTENTS
|
||||
114 PERELHI0 0d 0 0 01a6f 2**0 CONTENTS
|
||||
115 PEDEPHAK 02f 0 0 01a7c 2**0 CONTENTS
|
||||
116 PETLSC 018 0 0 01aab 2**0 CONTENTS
|
||||
117 PEMAIN20 01 0 0 01ac3 2**0 CONTENTS
|
||||
118 CLEARSTACK 0d 0 0 01ac4 2**0 CONTENTS
|
||||
119 PEMAIN21 0 0 0 01ad1 2**0 CONTENTS
|
||||
120 PERETURN 06 0 0 01ad1 2**0 CONTENTS
|
||||
121 PEDOJUMP 05 0 0 01ad7 2**0 CONTENTS
|
||||
122 PETLSC2 01f 0 0 01adc 2**0 CONTENTS
|
||||
123 UPX1HEAD 020 0 0 01afb 2**0 CONTENTS
|
||||
7 PETLSHAK 013 0 0 067 2**0 CONTENTS
|
||||
8 PEMAIN02 01 0 0 07a 2**0 CONTENTS
|
||||
9 PEMAIN03 03 0 0 07b 2**0 CONTENTS
|
||||
10 N2BSMA10 03 0 0 07e 2**0 CONTENTS
|
||||
11 N2BFAS10 02 0 0 081 2**0 CONTENTS
|
||||
12 N2BFAS11 06 0 0 083 2**0 CONTENTS
|
||||
13 N2BDEC10 0b 0 0 089 2**0 CONTENTS
|
||||
14 N2BSMA20 05 0 0 094 2**0 CONTENTS
|
||||
15 N2BFAS20 07 0 0 099 2**0 CONTENTS
|
||||
16 N2BDEC20 0d 0 0 0a0 2**0 CONTENTS
|
||||
17 N2BSMA30 0d 0 0 0ad 2**0 CONTENTS
|
||||
18 N2BFAS30 0f 0 0 0ba 2**0 CONTENTS
|
||||
19 N2BDEC30 03e 0 0 0c9 2**0 CONTENTS
|
||||
20 N2BSMA40 0d 0 0 0107 2**0 CONTENTS
|
||||
21 N2BFAS40 0f 0 0 0114 2**0 CONTENTS
|
||||
22 N2BSMA50 02 0 0 0123 2**0 CONTENTS
|
||||
23 N2BFAS50 03 0 0 0125 2**0 CONTENTS
|
||||
24 N2BDEC50 09 0 0 0128 2**0 CONTENTS
|
||||
25 N2BSMA60 0e 0 0 0131 2**0 CONTENTS
|
||||
26 N2BFAS60 016 0 0 013f 2**0 CONTENTS
|
||||
27 N2BFAS61 016 0 0 0155 2**0 CONTENTS
|
||||
28 N2BDEC60 0 0 0 016b 2**0 CONTENTS
|
||||
29 N2DSMA10 03 0 0 016b 2**0 CONTENTS
|
||||
30 N2DFAS10 02 0 0 016e 2**0 CONTENTS
|
||||
31 N2DFAS11 06 0 0 0170 2**0 CONTENTS
|
||||
32 N2DDEC10 0b 0 0 0176 2**0 CONTENTS
|
||||
33 N2DSMA20 05 0 0 0181 2**0 CONTENTS
|
||||
34 N2DFAS20 07 0 0 0186 2**0 CONTENTS
|
||||
35 N2DDEC20 0d 0 0 018d 2**0 CONTENTS
|
||||
36 N2DSMA30 0d 0 0 019a 2**0 CONTENTS
|
||||
37 N2DFAS30 0f 0 0 01a7 2**0 CONTENTS
|
||||
38 N2DDEC30 052 0 0 01b6 2**0 CONTENTS
|
||||
39 N2DSMA40 0d 0 0 0208 2**0 CONTENTS
|
||||
40 N2DFAS40 0f 0 0 0215 2**0 CONTENTS
|
||||
41 N2DSMA50 02 0 0 0224 2**0 CONTENTS
|
||||
42 N2DFAS50 03 0 0 0226 2**0 CONTENTS
|
||||
43 N2DDEC50 09 0 0 0229 2**0 CONTENTS
|
||||
44 N2DSMA60 0e 0 0 0232 2**0 CONTENTS
|
||||
45 N2DFAS60 016 0 0 0240 2**0 CONTENTS
|
||||
46 N2DFAS61 016 0 0 0256 2**0 CONTENTS
|
||||
47 N2DDEC60 0 0 0 026c 2**0 CONTENTS
|
||||
48 N2ESMA10 03 0 0 026c 2**0 CONTENTS
|
||||
49 N2EFAS10 02 0 0 026f 2**0 CONTENTS
|
||||
50 N2EFAS11 06 0 0 0271 2**0 CONTENTS
|
||||
51 N2EDEC10 0b 0 0 0277 2**0 CONTENTS
|
||||
52 N2ESMA20 05 0 0 0282 2**0 CONTENTS
|
||||
53 N2EFAS20 07 0 0 0287 2**0 CONTENTS
|
||||
54 N2EDEC20 0d 0 0 028e 2**0 CONTENTS
|
||||
55 N2ESMA30 0d 0 0 029b 2**0 CONTENTS
|
||||
56 N2EFAS30 0f 0 0 02a8 2**0 CONTENTS
|
||||
57 N2EDEC30 05f 0 0 02b7 2**0 CONTENTS
|
||||
58 N2ESMA40 0d 0 0 0316 2**0 CONTENTS
|
||||
59 N2EFAS40 0f 0 0 0323 2**0 CONTENTS
|
||||
60 N2ESMA50 02 0 0 0332 2**0 CONTENTS
|
||||
61 N2EFAS50 03 0 0 0334 2**0 CONTENTS
|
||||
62 N2EDEC50 09 0 0 0337 2**0 CONTENTS
|
||||
63 N2ESMA60 0e 0 0 0340 2**0 CONTENTS
|
||||
64 N2EFAS60 016 0 0 034e 2**0 CONTENTS
|
||||
65 N2EFAS61 016 0 0 0364 2**0 CONTENTS
|
||||
66 N2EDEC60 0 0 0 037a 2**0 CONTENTS
|
||||
67 LZMA_DEC00 02e 0 0 037a 2**0 CONTENTS
|
||||
68 LZMA_ELF00 048 0 0 03a8 2**0 CONTENTS
|
||||
69 LZMA_DEC10 0a86 0 0 03f0 2**0 CONTENTS
|
||||
70 LZMA_DEC20 0a86 0 0 0e76 2**0 CONTENTS
|
||||
71 LZMA_DEC30 01a 0 0 018fc 2**0 CONTENTS
|
||||
72 PEMAIN10 01 0 0 01916 2**0 CONTENTS
|
||||
73 PETLSHAK2 04 0 0 01917 2**0 CONTENTS
|
||||
74 PECTTPOS 06 0 0 0191b 2**0 CONTENTS
|
||||
75 PECTTNUL 02 0 0 01921 2**0 CONTENTS
|
||||
76 CALLTR00 0e 0 0 01923 2**0 CONTENTS
|
||||
77 CTCLEVE1 05 0 0 01931 2**0 CONTENTS
|
||||
78 CALLTR01 05 0 0 01936 2**0 CONTENTS
|
||||
79 CTBSHR01 04 0 0 0193b 2**0 CONTENTS
|
||||
80 CTBROR01 02 0 0 0193f 2**0 CONTENTS
|
||||
81 CTBSWA01 05 0 0 01941 2**0 CONTENTS
|
||||
82 CALLTR02 010 0 0 01946 2**0 CONTENTS
|
||||
83 CALLTR10 05 0 0 01956 2**0 CONTENTS
|
||||
84 CALLTRE8 02 0 0 0195b 2**0 CONTENTS
|
||||
85 CALLTRE9 02 0 0 0195d 2**0 CONTENTS
|
||||
86 CALLTR11 04 0 0 0195f 2**0 CONTENTS
|
||||
87 CTCLEVE2 05 0 0 01963 2**0 CONTENTS
|
||||
88 CALLTR12 02 0 0 01968 2**0 CONTENTS
|
||||
89 CTBSHR11 04 0 0 0196a 2**0 CONTENTS
|
||||
90 CTBROR11 02 0 0 0196e 2**0 CONTENTS
|
||||
91 CTBSWA11 05 0 0 01970 2**0 CONTENTS
|
||||
92 CALLTR13 07 0 0 01975 2**0 CONTENTS
|
||||
93 ctok32.00 0a 0 0 0197c 2**0 CONTENTS
|
||||
94 ctok32.10 0e 0 0 01986 2**0 CONTENTS
|
||||
95 ctok32.20 020 0 0 01994 2**0 CONTENTS
|
||||
96 ctok32.30 0a 0 0 019b4 2**0 CONTENTS
|
||||
97 ctok32.40 05 0 0 019be 2**0 CONTENTS
|
||||
98 PEIMPORT 02c 0 0 019c3 2**0 CONTENTS
|
||||
99 PEIBYORD 02 0 0 019ef 2**0 CONTENTS
|
||||
100 PEK32ORD 010 0 0 019f1 2**0 CONTENTS
|
||||
101 PEIMORD1 07 0 0 01a01 2**0 CONTENTS
|
||||
102 PEIMPOR2 016 0 0 01a08 2**0 CONTENTS
|
||||
103 PEIERDLL 06 0 0 01a1e 2**0 CONTENTS
|
||||
104 PEIEREXE 06 0 0 01a24 2**0 CONTENTS
|
||||
105 PEIMDONE 0 0 0 01a2a 2**0 CONTENTS
|
||||
106 PERELOC1 06 0 0 01a2a 2**0 CONTENTS
|
||||
107 PERELOC2 03 0 0 01a30 2**0 CONTENTS
|
||||
108 PERELOC3 03 0 0 01a33 2**0 CONTENTS
|
||||
109 RELOC320 029 0 0 01a36 2**0 CONTENTS
|
||||
110 REL32BIG 09 0 0 01a5f 2**0 CONTENTS
|
||||
111 RELOC32J 02 0 0 01a68 2**0 CONTENTS
|
||||
112 REL32END 0 0 0 01a6a 2**0 CONTENTS
|
||||
113 PERLOHI0 08 0 0 01a6a 2**0 CONTENTS
|
||||
114 PERELLO0 0a 0 0 01a72 2**0 CONTENTS
|
||||
115 PERELHI0 0d 0 0 01a7c 2**0 CONTENTS
|
||||
116 PEDEPHAK 02f 0 0 01a89 2**0 CONTENTS
|
||||
117 PETLSC 018 0 0 01ab8 2**0 CONTENTS
|
||||
118 PEMAIN20 01 0 0 01ad0 2**0 CONTENTS
|
||||
119 CLEARSTACK 0d 0 0 01ad1 2**0 CONTENTS
|
||||
120 PEMAIN21 0 0 0 01ade 2**0 CONTENTS
|
||||
121 PERETURN 06 0 0 01ade 2**0 CONTENTS
|
||||
122 PEDOJUMP 05 0 0 01ae4 2**0 CONTENTS
|
||||
123 PETLSC2 01f 0 0 01ae9 2**0 CONTENTS
|
||||
124 UPX1HEAD 020 0 0 01b08 2**0 CONTENTS
|
||||
SYMBOL TABLE:
|
||||
00000000 l d N2BSMA10 0 N2BSMA10
|
||||
00000000 l d N2BFAS11 0 N2BFAS11
|
||||
@@ -216,6 +217,7 @@ SYMBOL TABLE:
|
||||
00000000 l d LZMA_DEC20 0 LZMA_DEC20
|
||||
00000000 l d LZMA_DEC30 0 LZMA_DEC30
|
||||
00000000 l d PEMAIN10 0 PEMAIN10
|
||||
00000000 l d PETLSHAK2 0 PETLSHAK2
|
||||
00000000 l d PECTTPOS 0 PECTTPOS
|
||||
00000000 l d PECTTNUL 0 PECTTNUL
|
||||
00000000 l d CTCLEVE1 0 CTCLEVE1
|
||||
@@ -309,6 +311,7 @@ RELOCATION RECORDS FOR [PETLSHAK]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_32 tls_address
|
||||
00000006 R_386_32 tls_value
|
||||
0000000e R_386_32 tls_value
|
||||
|
||||
RELOCATION RECORDS FOR [N2BSMA10]:
|
||||
OFFSET TYPE VALUE
|
||||
|
||||
Reference in New Issue
Block a user