mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
dos/exe: only use bx_magic when needed.
This commit is contained in:
parent
ac457792b4
commit
3bdc805a22
|
@ -209,6 +209,8 @@ void PackExe::buildLoader(const Filter *)
|
|||
"JNCDOCOPY",
|
||||
relocsize ? "EXERELPU" : "",
|
||||
"EXEMAIN4",
|
||||
M_IS_LZMA(ph.method) ? "" : "EXEMAIN4B",
|
||||
"EXEMAIN4C",
|
||||
M_IS_LZMA(ph.method) ? "COMPRESSED_LZMA_START,COMPRESSED_LZMA" : "",
|
||||
"+G5DXXXX,UPX1HEAD,EXECUTPO",
|
||||
NULL
|
||||
|
@ -566,7 +568,8 @@ void PackExe::pack(OutputFile *fo)
|
|||
}
|
||||
extra_info[eisize++] = (unsigned char) flag;
|
||||
|
||||
linker->defineSymbol("bx_magic", 0x7FFF + 0x10 * ((packedsize & 15) + 1));
|
||||
if (M_IS_NRV2B(ph.method) || M_IS_NRV2D(ph.method) || M_IS_NRV2E(ph.method))
|
||||
linker->defineSymbol("bx_magic", 0x7FFF + 0x10 * ((packedsize & 15) + 1));
|
||||
|
||||
unsigned decompressor_entry = 1 + (packedsize & 15);
|
||||
if (M_IS_LZMA(ph.method))
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -130,7 +130,9 @@ section EXEMAIN4
|
|||
pop es
|
||||
push ss
|
||||
mov bp, offset decompressor_entry
|
||||
section EXEMAIN4B
|
||||
mov bx, offset bx_magic /* 0x800F + 0x10*bp - 0x10 */
|
||||
section EXEMAIN4C
|
||||
push bp
|
||||
lret
|
||||
|
||||
|
|
|
@ -32,64 +32,66 @@ Idx Name Size VMA LMA File off Algn Flags
|
|||
27 SHORTSUB 00000005 00000000 00000000 00000120 2**0 CONTENTS, RELOC, READONLY
|
||||
28 JNCDOCOPY 00000005 00000000 00000000 00000125 2**0 CONTENTS, RELOC, READONLY
|
||||
29 EXERELPU 00000001 00000000 00000000 0000012a 2**0 CONTENTS, READONLY
|
||||
30 EXEMAIN4 0000000e 00000000 00000000 0000012b 2**0 CONTENTS, RELOC, READONLY
|
||||
31 COMPRESSED_LZMA_START 00000000 00000000 00000000 00000139 2**0 CONTENTS, READONLY
|
||||
32 UPX1HEAD 0000001b 00000000 00000000 00000139 2**0 CONTENTS, READONLY
|
||||
33 EXECUTPO 00000000 00000000 00000000 00000154 2**0 CONTENTS, READONLY
|
||||
34 NRV2B16S 0000000d 00000000 00000000 00000154 2**0 CONTENTS, RELOC, READONLY
|
||||
35 N2B64K01 0000000b 00000000 00000000 00000161 2**0 CONTENTS, READONLY
|
||||
36 NRV2BEX1 0000000b 00000000 00000000 0000016c 2**0 CONTENTS, RELOC, READONLY
|
||||
37 N2BX8601 00000008 00000000 00000000 00000177 2**0 CONTENTS, READONLY
|
||||
38 N2B28601 00000003 00000000 00000000 0000017f 2**0 CONTENTS, READONLY
|
||||
39 NRV2BEX2 00000031 00000000 00000000 00000182 2**0 CONTENTS, RELOC, READONLY
|
||||
40 N2BX8602 0000000e 00000000 00000000 000001b3 2**0 CONTENTS, READONLY
|
||||
41 N2B28602 00000006 00000000 00000000 000001c1 2**0 CONTENTS, READONLY
|
||||
42 NRV2BEX3 00000015 00000000 00000000 000001c7 2**0 CONTENTS, RELOC, READONLY
|
||||
43 N2B64K02 0000000b 00000000 00000000 000001dc 2**0 CONTENTS, READONLY
|
||||
44 NRV2BEX9 00000004 00000000 00000000 000001e7 2**0 CONTENTS, READONLY
|
||||
45 NRV2D16S 0000000d 00000000 00000000 000001eb 2**0 CONTENTS, RELOC, READONLY
|
||||
46 N2D64K01 0000000b 00000000 00000000 000001f8 2**0 CONTENTS, READONLY
|
||||
47 NRV2DEX1 00000013 00000000 00000000 00000203 2**0 CONTENTS, RELOC, READONLY
|
||||
48 N2DX8601 00000006 00000000 00000000 00000216 2**0 CONTENTS, READONLY
|
||||
49 N2D28601 00000003 00000000 00000000 0000021c 2**0 CONTENTS, READONLY
|
||||
50 NRV2DEX2 00000039 00000000 00000000 0000021f 2**0 CONTENTS, RELOC, READONLY
|
||||
51 N2DX8602 0000000e 00000000 00000000 00000258 2**0 CONTENTS, READONLY
|
||||
52 N2D28602 00000006 00000000 00000000 00000266 2**0 CONTENTS, READONLY
|
||||
53 NRV2DEX3 00000015 00000000 00000000 0000026c 2**0 CONTENTS, RELOC, READONLY
|
||||
54 N2D64K02 0000000b 00000000 00000000 00000281 2**0 CONTENTS, READONLY
|
||||
55 NRV2DEX9 00000004 00000000 00000000 0000028c 2**0 CONTENTS, READONLY
|
||||
56 NRV2E16S 0000000d 00000000 00000000 00000290 2**0 CONTENTS, RELOC, READONLY
|
||||
57 N2E64K01 0000000b 00000000 00000000 0000029d 2**0 CONTENTS, READONLY
|
||||
58 NRV2EEX1 00000013 00000000 00000000 000002a8 2**0 CONTENTS, RELOC, READONLY
|
||||
59 N2EX8601 00000006 00000000 00000000 000002bb 2**0 CONTENTS, READONLY
|
||||
60 N2E28601 00000003 00000000 00000000 000002c1 2**0 CONTENTS, READONLY
|
||||
61 NRV2EEX2 0000003e 00000000 00000000 000002c4 2**0 CONTENTS, RELOC, READONLY
|
||||
62 N2EX8602 0000000e 00000000 00000000 00000302 2**0 CONTENTS, READONLY
|
||||
63 N2E28602 00000006 00000000 00000000 00000310 2**0 CONTENTS, READONLY
|
||||
64 NRV2EEX3 00000015 00000000 00000000 00000316 2**0 CONTENTS, RELOC, READONLY
|
||||
65 N2E64K02 0000000b 00000000 00000000 0000032b 2**0 CONTENTS, READONLY
|
||||
66 NRV2EEX9 00000004 00000000 00000000 00000336 2**0 CONTENTS, READONLY
|
||||
67 LZMA_DEC00 00000033 00000000 00000000 0000033a 2**0 CONTENTS, RELOC, READONLY
|
||||
68 ignore_reloc_overflow 00000008 00000000 00000000 0000036d 2**0 CONTENTS, RELOC, READONLY
|
||||
69 LZMA_DEC10 000011a3 00000000 00000000 00000375 2**0 CONTENTS, READONLY
|
||||
70 LZMA_DEC20 0000123b 00000000 00000000 00001518 2**0 CONTENTS, READONLY
|
||||
71 LZMA_DEC30 00000012 00000000 00000000 00002753 2**0 CONTENTS, RELOC, READONLY
|
||||
72 LZMA_DEC31 00000007 00000000 00000000 00002765 2**0 CONTENTS, RELOC, READONLY
|
||||
73 EXEMAIN5 00000001 00000000 00000000 0000276c 2**0 CONTENTS, READONLY
|
||||
74 EXEADJUS 00000007 00000000 00000000 0000276d 2**0 CONTENTS, READONLY
|
||||
75 EXENOADJ 00000002 00000000 00000000 00002774 2**0 CONTENTS, READONLY
|
||||
76 EXERELO1 0000001e 00000000 00000000 00002776 2**0 CONTENTS, RELOC, READONLY
|
||||
77 EXEREL9A 00000012 00000000 00000000 00002794 2**0 CONTENTS, RELOC, READONLY
|
||||
78 EXERELO2 00000004 00000000 00000000 000027a6 2**0 CONTENTS, READONLY
|
||||
79 EXEREBIG 00000002 00000000 00000000 000027aa 2**0 CONTENTS, RELOC, READONLY
|
||||
80 EXERELO3 00000002 00000000 00000000 000027ac 2**0 CONTENTS, RELOC, READONLY
|
||||
81 EXEMAIN8 00000003 00000000 00000000 000027ae 2**0 CONTENTS, READONLY
|
||||
82 DEVICEEND 00000013 00000000 00000000 000027b1 2**0 CONTENTS, READONLY
|
||||
83 EXESTACK 00000006 00000000 00000000 000027c4 2**0 CONTENTS, RELOC, READONLY
|
||||
84 EXESTASP 00000003 00000000 00000000 000027ca 2**0 CONTENTS, RELOC, READONLY
|
||||
85 EXEJUMPF 00000005 00000000 00000000 000027cd 2**0 CONTENTS, RELOC, READONLY
|
||||
86 EXERCSPO 00000004 00000000 00000000 000027d2 2**0 CONTENTS, RELOC, READONLY
|
||||
87 EXERETIP 00000006 00000000 00000000 000027d6 2**0 CONTENTS, RELOC, READONLY
|
||||
30 EXEMAIN4 00000009 00000000 00000000 0000012b 2**0 CONTENTS, RELOC, READONLY
|
||||
31 EXEMAIN4B 00000003 00000000 00000000 00000134 2**0 CONTENTS, RELOC, READONLY
|
||||
32 EXEMAIN4C 00000002 00000000 00000000 00000137 2**0 CONTENTS, READONLY
|
||||
33 COMPRESSED_LZMA_START 00000000 00000000 00000000 00000139 2**0 CONTENTS, READONLY
|
||||
34 UPX1HEAD 0000001b 00000000 00000000 00000139 2**0 CONTENTS, READONLY
|
||||
35 EXECUTPO 00000000 00000000 00000000 00000154 2**0 CONTENTS, READONLY
|
||||
36 NRV2B16S 0000000d 00000000 00000000 00000154 2**0 CONTENTS, RELOC, READONLY
|
||||
37 N2B64K01 0000000b 00000000 00000000 00000161 2**0 CONTENTS, READONLY
|
||||
38 NRV2BEX1 0000000b 00000000 00000000 0000016c 2**0 CONTENTS, RELOC, READONLY
|
||||
39 N2BX8601 00000008 00000000 00000000 00000177 2**0 CONTENTS, READONLY
|
||||
40 N2B28601 00000003 00000000 00000000 0000017f 2**0 CONTENTS, READONLY
|
||||
41 NRV2BEX2 00000031 00000000 00000000 00000182 2**0 CONTENTS, RELOC, READONLY
|
||||
42 N2BX8602 0000000e 00000000 00000000 000001b3 2**0 CONTENTS, READONLY
|
||||
43 N2B28602 00000006 00000000 00000000 000001c1 2**0 CONTENTS, READONLY
|
||||
44 NRV2BEX3 00000015 00000000 00000000 000001c7 2**0 CONTENTS, RELOC, READONLY
|
||||
45 N2B64K02 0000000b 00000000 00000000 000001dc 2**0 CONTENTS, READONLY
|
||||
46 NRV2BEX9 00000004 00000000 00000000 000001e7 2**0 CONTENTS, READONLY
|
||||
47 NRV2D16S 0000000d 00000000 00000000 000001eb 2**0 CONTENTS, RELOC, READONLY
|
||||
48 N2D64K01 0000000b 00000000 00000000 000001f8 2**0 CONTENTS, READONLY
|
||||
49 NRV2DEX1 00000013 00000000 00000000 00000203 2**0 CONTENTS, RELOC, READONLY
|
||||
50 N2DX8601 00000006 00000000 00000000 00000216 2**0 CONTENTS, READONLY
|
||||
51 N2D28601 00000003 00000000 00000000 0000021c 2**0 CONTENTS, READONLY
|
||||
52 NRV2DEX2 00000039 00000000 00000000 0000021f 2**0 CONTENTS, RELOC, READONLY
|
||||
53 N2DX8602 0000000e 00000000 00000000 00000258 2**0 CONTENTS, READONLY
|
||||
54 N2D28602 00000006 00000000 00000000 00000266 2**0 CONTENTS, READONLY
|
||||
55 NRV2DEX3 00000015 00000000 00000000 0000026c 2**0 CONTENTS, RELOC, READONLY
|
||||
56 N2D64K02 0000000b 00000000 00000000 00000281 2**0 CONTENTS, READONLY
|
||||
57 NRV2DEX9 00000004 00000000 00000000 0000028c 2**0 CONTENTS, READONLY
|
||||
58 NRV2E16S 0000000d 00000000 00000000 00000290 2**0 CONTENTS, RELOC, READONLY
|
||||
59 N2E64K01 0000000b 00000000 00000000 0000029d 2**0 CONTENTS, READONLY
|
||||
60 NRV2EEX1 00000013 00000000 00000000 000002a8 2**0 CONTENTS, RELOC, READONLY
|
||||
61 N2EX8601 00000006 00000000 00000000 000002bb 2**0 CONTENTS, READONLY
|
||||
62 N2E28601 00000003 00000000 00000000 000002c1 2**0 CONTENTS, READONLY
|
||||
63 NRV2EEX2 0000003e 00000000 00000000 000002c4 2**0 CONTENTS, RELOC, READONLY
|
||||
64 N2EX8602 0000000e 00000000 00000000 00000302 2**0 CONTENTS, READONLY
|
||||
65 N2E28602 00000006 00000000 00000000 00000310 2**0 CONTENTS, READONLY
|
||||
66 NRV2EEX3 00000015 00000000 00000000 00000316 2**0 CONTENTS, RELOC, READONLY
|
||||
67 N2E64K02 0000000b 00000000 00000000 0000032b 2**0 CONTENTS, READONLY
|
||||
68 NRV2EEX9 00000004 00000000 00000000 00000336 2**0 CONTENTS, READONLY
|
||||
69 LZMA_DEC00 00000033 00000000 00000000 0000033a 2**0 CONTENTS, RELOC, READONLY
|
||||
70 ignore_reloc_overflow 00000008 00000000 00000000 0000036d 2**0 CONTENTS, RELOC, READONLY
|
||||
71 LZMA_DEC10 000011a3 00000000 00000000 00000375 2**0 CONTENTS, READONLY
|
||||
72 LZMA_DEC20 0000123b 00000000 00000000 00001518 2**0 CONTENTS, READONLY
|
||||
73 LZMA_DEC30 00000012 00000000 00000000 00002753 2**0 CONTENTS, RELOC, READONLY
|
||||
74 LZMA_DEC31 00000007 00000000 00000000 00002765 2**0 CONTENTS, RELOC, READONLY
|
||||
75 EXEMAIN5 00000001 00000000 00000000 0000276c 2**0 CONTENTS, READONLY
|
||||
76 EXEADJUS 00000007 00000000 00000000 0000276d 2**0 CONTENTS, READONLY
|
||||
77 EXENOADJ 00000002 00000000 00000000 00002774 2**0 CONTENTS, READONLY
|
||||
78 EXERELO1 0000001e 00000000 00000000 00002776 2**0 CONTENTS, RELOC, READONLY
|
||||
79 EXEREL9A 00000012 00000000 00000000 00002794 2**0 CONTENTS, RELOC, READONLY
|
||||
80 EXERELO2 00000004 00000000 00000000 000027a6 2**0 CONTENTS, READONLY
|
||||
81 EXEREBIG 00000002 00000000 00000000 000027aa 2**0 CONTENTS, RELOC, READONLY
|
||||
82 EXERELO3 00000002 00000000 00000000 000027ac 2**0 CONTENTS, RELOC, READONLY
|
||||
83 EXEMAIN8 00000003 00000000 00000000 000027ae 2**0 CONTENTS, READONLY
|
||||
84 DEVICEEND 00000013 00000000 00000000 000027b1 2**0 CONTENTS, READONLY
|
||||
85 EXESTACK 00000006 00000000 00000000 000027c4 2**0 CONTENTS, RELOC, READONLY
|
||||
86 EXESTASP 00000003 00000000 00000000 000027ca 2**0 CONTENTS, RELOC, READONLY
|
||||
87 EXEJUMPF 00000005 00000000 00000000 000027cd 2**0 CONTENTS, RELOC, READONLY
|
||||
88 EXERCSPO 00000004 00000000 00000000 000027d2 2**0 CONTENTS, RELOC, READONLY
|
||||
89 EXERETIP 00000006 00000000 00000000 000027d6 2**0 CONTENTS, RELOC, READONLY
|
||||
SYMBOL TABLE:
|
||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||
00000000 l d COMPRESSED_LZMA_START 00000000 COMPRESSED_LZMA_START
|
||||
|
@ -139,6 +141,8 @@ SYMBOL TABLE:
|
|||
00000000 l d JNCDOCOPY 00000000 JNCDOCOPY
|
||||
00000000 l d EXERELPU 00000000 EXERELPU
|
||||
00000000 l d EXEMAIN4 00000000 EXEMAIN4
|
||||
00000000 l d EXEMAIN4B 00000000 EXEMAIN4B
|
||||
00000000 l d EXEMAIN4C 00000000 EXEMAIN4C
|
||||
00000000 l d UPX1HEAD 00000000 UPX1HEAD
|
||||
00000000 l d EXECUTPO 00000000 EXECUTPO
|
||||
00000000 l d N2B64K01 00000000 N2B64K01
|
||||
|
@ -293,7 +297,10 @@ OFFSET TYPE VALUE
|
|||
RELOCATION RECORDS FOR [EXEMAIN4]:
|
||||
OFFSET TYPE VALUE
|
||||
00000007 R_386_16 decompressor_entry
|
||||
0000000a R_386_16 bx_magic
|
||||
|
||||
RELOCATION RECORDS FOR [EXEMAIN4B]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_16 bx_magic
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2B16S]:
|
||||
OFFSET TYPE VALUE
|
||||
|
|
Loading…
Reference in New Issue
Block a user