1
0
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:
Markus F.X.J. Oberhumer 2007-03-04 17:01:32 +01:00
parent ac457792b4
commit 3bdc805a22
4 changed files with 1092 additions and 1059 deletions

View File

@ -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

View File

@ -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

View File

@ -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