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