dos/exe: nrv2b compressed lzma decompressor added
This commit is contained in:
parent
12bcb09051
commit
816d882611
154
src/p_exe.cpp
154
src/p_exe.cpp
@ -96,7 +96,7 @@ int PackExe::fillExeHeader(struct exe_header_t *eh) const
|
||||
#define oh (*eh)
|
||||
// fill new exe header
|
||||
int flag = 0;
|
||||
if (!opt->dos_exe.no_reloc)
|
||||
if (!opt->dos_exe.no_reloc && ph.method != M_LZMA)
|
||||
flag |= USEJUMP;
|
||||
if (ih.relocs == 0)
|
||||
flag |= NORELOC;
|
||||
@ -128,21 +128,87 @@ int PackExe::fillExeHeader(struct exe_header_t *eh) const
|
||||
#undef oh
|
||||
}
|
||||
|
||||
void PackExe::addLoaderEpilogue(int flag)
|
||||
{
|
||||
addLoader("EXEMAIN5", NULL);
|
||||
if (relocsize)
|
||||
addLoader(ph.u_len <= DI_LIMIT || (ph.u_len & 0x7fff) >= relocsize ? "EXENOADJ" : "EXEADJUS",
|
||||
"EXERELO1",
|
||||
has_9a ? "EXEREL9A" : "",
|
||||
"EXERELO2",
|
||||
ih_exesize > 0xFE00 ? "EXEREBIG" : "",
|
||||
"EXERELO3",
|
||||
NULL
|
||||
);
|
||||
addLoader("EXEMAIN8",
|
||||
device_driver ? "DEVICEEND" : "",
|
||||
(flag & SS) ? "EXESTACK" : "",
|
||||
(flag & SP) ? "EXESTASP" : "",
|
||||
(flag & USEJUMP) ? "EXEJUMPF" : "",
|
||||
NULL
|
||||
);
|
||||
if (!(flag & USEJUMP))
|
||||
addLoader(ih.cs ? "EXERCSPO" : "",
|
||||
"EXERETIP",
|
||||
NULL
|
||||
);
|
||||
|
||||
linker->defineSymbol("original_cs", ih.cs);
|
||||
linker->defineSymbol("original_ip", ih.ip);
|
||||
linker->defineSymbol("original_sp", ih.sp);
|
||||
linker->defineSymbol("original_ss", ih.ss);
|
||||
linker->defineSymbol("reloc_size",
|
||||
(ph.u_len <= DI_LIMIT || (ph.u_len & 0x7fff)
|
||||
>= relocsize ? 0 : MAXRELOCS) - relocsize);
|
||||
}
|
||||
|
||||
void PackExe::buildLoader(const Filter *)
|
||||
{
|
||||
struct exe_header_t tmp_oh;
|
||||
exe_header_t tmp_oh;
|
||||
int flag = fillExeHeader(&tmp_oh);
|
||||
|
||||
// prepare loader
|
||||
initLoader(stub_i086_dos16_exe, sizeof(stub_i086_dos16_exe));
|
||||
if (device_driver)
|
||||
addLoader("DEVICEENTRY", NULL);
|
||||
|
||||
if (ph.method == M_LZMA)
|
||||
{
|
||||
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99,LZMA_DEC30",
|
||||
ph.u_len > 0xffff ? "LZMA_DEC31" : "",
|
||||
NULL
|
||||
);
|
||||
addLoaderEpilogue(flag);
|
||||
defineDecompressorSymbols();
|
||||
relocateLoader();
|
||||
const unsigned lsize = getLoaderSize();
|
||||
MemBuffer loader(lsize);
|
||||
memcpy(loader, getLoader(), lsize);
|
||||
|
||||
MemBuffer compressed_lzma;
|
||||
compressed_lzma.allocForCompression(lsize);
|
||||
unsigned c_len_lzma = MemBuffer::getSizeForCompression(lsize);
|
||||
upx_compress(loader, lsize, compressed_lzma, &c_len_lzma,
|
||||
NULL, M_NRV2B_LE16, 9, NULL, NULL);
|
||||
|
||||
info("lzma+relocator code compressed: %u -> %u", lsize, c_len_lzma);
|
||||
// reinit the loader
|
||||
initLoader(stub_i086_dos16_exe, sizeof(stub_i086_dos16_exe));
|
||||
// prepare loader
|
||||
if (device_driver)
|
||||
addLoader("DEVICEENTRY,LZMADEVICE,DEVICEENTRY2", NULL);
|
||||
|
||||
linker->addSection("COMPRESSED_LZMA", compressed_lzma, c_len_lzma, 0);
|
||||
addLoader("LZMAENTRY,NRV2B160,NRVDDONE,NRVDECO1,NRVGTD00,NRVDECO2",
|
||||
NULL);
|
||||
}
|
||||
else if (device_driver)
|
||||
addLoader("DEVICEENTRY,DEVICEENTRY2", NULL);
|
||||
|
||||
addLoader("EXEENTRY",
|
||||
device_driver ? "DEVICESUB" : "EXESUB",
|
||||
ph.method == M_LZMA && device_driver ? "LONGSUB" : "SHORTSUB",
|
||||
"JNCDOCOPY",
|
||||
relocsize ? "EXERELPU" : "",
|
||||
"EXEMAIN4,+G5DXXXX,UPX1HEAD,EXECUTPO",
|
||||
"EXEMAIN4",
|
||||
ph.method == M_LZMA ? "COMPRESSED_LZMA_START,COMPRESSED_LZMA" : "",
|
||||
"+G5DXXXX,UPX1HEAD,EXECUTPO",
|
||||
NULL
|
||||
);
|
||||
if (ph.method == M_NRV2B_8)
|
||||
@ -182,34 +248,11 @@ void PackExe::buildLoader(const Filter *)
|
||||
NULL
|
||||
);
|
||||
else if M_IS_LZMA(ph.method)
|
||||
addLoader("LZMA_DEC00,LZMA_DEC10,LZMA_DEC99,LZMA_DEC30",
|
||||
ph.u_len > 0xffff ? "LZMA_DEC31" : "",
|
||||
NULL
|
||||
);
|
||||
return;
|
||||
else
|
||||
throwInternalError("unknown compression method");
|
||||
addLoader("EXEMAIN5", NULL);
|
||||
if (relocsize)
|
||||
addLoader(ph.u_len <= DI_LIMIT || (ph.u_len & 0x7fff) >= relocsize ? "EXENOADJ" : "EXEADJUS",
|
||||
"EXERELO1",
|
||||
has_9a ? "EXEREL9A" : "",
|
||||
"EXERELO2",
|
||||
ih_exesize > 0xFE00 ? "EXEREBIG" : "",
|
||||
"EXERELO3",
|
||||
NULL
|
||||
);
|
||||
addLoader("EXEMAIN8",
|
||||
device_driver ? "DEVICEEND" : "",
|
||||
(flag & SS) ? "EXESTACK" : "",
|
||||
(flag & SP) ? "EXESTASP" : "",
|
||||
(flag & USEJUMP) ? "EXEJUMPF" : "",
|
||||
NULL
|
||||
);
|
||||
if (!(flag & USEJUMP))
|
||||
addLoader(ih.cs ? "EXERCSPO" : "",
|
||||
"EXERETIP",
|
||||
NULL
|
||||
);
|
||||
|
||||
addLoaderEpilogue(flag);
|
||||
}
|
||||
|
||||
|
||||
@ -521,18 +564,11 @@ void PackExe::pack(OutputFile *fo)
|
||||
}
|
||||
extra_info[eisize++] = (unsigned char) flag;
|
||||
|
||||
linker->defineSymbol("original_cs", ih.cs);
|
||||
linker->defineSymbol("original_ip", ih.ip);
|
||||
linker->defineSymbol("original_sp", ih.sp);
|
||||
linker->defineSymbol("original_ss", ih.ss);
|
||||
linker->defineSymbol("reloc_size",
|
||||
(ph.u_len <= DI_LIMIT || (ph.u_len & 0x7fff)
|
||||
>= relocsize ? 0 : MAXRELOCS) - relocsize);
|
||||
linker->defineSymbol("bx_magic", 0x7FFF + 0x10 * ((packedsize & 15) + 1));
|
||||
|
||||
unsigned decompressor_entry = packedsize & 15;
|
||||
if (M_IS_NRV2B(ph.method) || M_IS_NRV2D(ph.method) || M_IS_NRV2E(ph.method))
|
||||
decompressor_entry++;
|
||||
unsigned decompressor_entry = 1 + (packedsize & 15);
|
||||
if (M_IS_LZMA(ph.method))
|
||||
decompressor_entry = 0x10;
|
||||
linker->defineSymbol("decompressor_entry", decompressor_entry);
|
||||
|
||||
// patch loader
|
||||
@ -569,7 +605,8 @@ void PackExe::pack(OutputFile *fo)
|
||||
oh.m512 = outputlen & 511;
|
||||
oh.p512 = (outputlen + 511) >> 9;
|
||||
|
||||
oh.ip = device_driver ? getLoaderSection("EXEENTRY") - 2 : 0;
|
||||
const char *exeentry = ph.method == M_LZMA ? "LZMAENTRY" : "EXEENTRY";
|
||||
oh.ip = device_driver ? getLoaderSection(exeentry) - 2 : 0;
|
||||
|
||||
defineDecompressorSymbols();
|
||||
relocateLoader();
|
||||
@ -620,7 +657,7 @@ int PackExe::canUnpack()
|
||||
return false;
|
||||
const off_t off = ih.headsize16 * 16;
|
||||
fi->seek(off, SEEK_SET);
|
||||
bool b = readPackHeader(256);
|
||||
bool b = readPackHeader(4096);
|
||||
return b && (off + (off_t) ph.c_len <= file_size);
|
||||
}
|
||||
|
||||
@ -789,6 +826,33 @@ CS:exe_as_device_entry in normal mode. the code in section DEVICEENTRY
|
||||
sets up the same environment for section EXEENTRY, as it would see in normal
|
||||
execution mode.
|
||||
|
||||
lzma uncompression for normal exes
|
||||
----------------------------------
|
||||
|
||||
(n - nrv2b uncompressor, l - nrv2b compressed lzma + relocator code)
|
||||
|
||||
a, at load time
|
||||
|
||||
nneelllCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
|
||||
^ CS:0 ^ SS:0
|
||||
|
||||
b, after nrv2b
|
||||
|
||||
nneelllCCCCCCCCCCCCCCCCCCCCCCCCC dddd
|
||||
^ CS:0 ^ SS:0x10
|
||||
|
||||
after this, normal ee code runs
|
||||
|
||||
lzma + device driver
|
||||
--------------------
|
||||
|
||||
(D - device driver adapter)
|
||||
|
||||
a, at load time
|
||||
|
||||
DDnneelllCCCCCCCCCCCCCCCCCCCCCCCCC
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@ -71,6 +71,7 @@ protected:
|
||||
virtual int fillExeHeader(struct exe_header_t *) const;
|
||||
virtual void buildLoader(const Filter *ft);
|
||||
virtual Linker* newLinker() const;
|
||||
void addLoaderEpilogue(int flag);
|
||||
|
||||
struct exe_header_t
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -37,6 +37,10 @@
|
||||
; bp - -1
|
||||
*/
|
||||
|
||||
#ifndef COPY_MATCH
|
||||
# define COPY_MATCH rep movsb
|
||||
#endif
|
||||
|
||||
section NRV2B160
|
||||
literal_n2b:
|
||||
movsb
|
||||
@ -79,8 +83,7 @@ section NRVGTD00
|
||||
section NRVDECO2
|
||||
lea ax, [bp+di]
|
||||
xchg ax, si
|
||||
rep
|
||||
movsb
|
||||
COPY_MATCH
|
||||
xchg ax, si
|
||||
jmps decomp_start_n2b
|
||||
getbit_cx_n2b:
|
||||
|
||||
@ -59,15 +59,40 @@ strategy:
|
||||
push bp
|
||||
push ds
|
||||
push es
|
||||
|
||||
section LZMADEVICE
|
||||
sub ax, offset exe_stack_ss + 0x10
|
||||
mov ds, ax /* ds = cs - 0x10 */
|
||||
|
||||
section DEVICEENTRY2
|
||||
.byte 0x72 /* "jc 0xf9" but flag C is 0 => nop */
|
||||
exe_as_device_entry:
|
||||
stc /* flag C is 1 */
|
||||
pushf
|
||||
|
||||
/* ============= */
|
||||
section LZMAENTRY
|
||||
push ss
|
||||
pop es
|
||||
mov bx, 0x8000
|
||||
xor cx, cx
|
||||
mov si, offset COMPRESSED_LZMA_START + 0x100 /* ds = cs - 0x10 */
|
||||
mov di, 0x10
|
||||
mov bp, -1
|
||||
.byte 0xa8 /* skips the following "movsb" */
|
||||
|
||||
#define COPY_MATCH .byte 0x26; rep movsb
|
||||
#include "arch/i086/nrv2b_d16.S" /* for uncompressing lzma */
|
||||
|
||||
#define literal_n2b literal_n2b_
|
||||
#define copy_match_n2b copy_match_n2b_
|
||||
#define getbit_cx_n2b getbit_cx_n2b_
|
||||
#define getbit_n2b getbit_n2b_
|
||||
#define decomp_done_n2b decomp_done_n2b_
|
||||
|
||||
/* ============= */
|
||||
|
||||
section EXEENTRY
|
||||
exe_entry:
|
||||
mov cx, offset words_to_copy
|
||||
mov si, offset copy_offset
|
||||
mov di, si
|
||||
@ -86,11 +111,10 @@ addaxds:
|
||||
rep
|
||||
movsw
|
||||
cld
|
||||
section DEVICESUB
|
||||
/* subb [cs:si + addaxds + 4], 0x10 */
|
||||
section LONGSUB
|
||||
subb [cs:si + addaxds + 4], 0x10
|
||||
section SHORTSUB
|
||||
.byte 0x2e, 0x80, 0x6c, addaxds + 4, 0x10
|
||||
section EXESUB
|
||||
subb [cs:si + addaxds - exe_entry + 4], 0x10
|
||||
section JNCDOCOPY
|
||||
jncs do_copy
|
||||
xchg ax, dx
|
||||
@ -110,6 +134,8 @@ section EXEMAIN4
|
||||
push bp
|
||||
lret
|
||||
|
||||
section COMPRESSED_LZMA_START
|
||||
|
||||
#include "include/header.S"
|
||||
|
||||
section EXECUTPO
|
||||
|
||||
@ -2,72 +2,103 @@ tmp/i086-dos16.exe.bin: file format elf32-i386
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 DEVICEENTRY 00000030 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
|
||||
1 EXEENTRY 0000001c 00000000 00000000 00000064 2**0 CONTENTS, RELOC, READONLY
|
||||
2 DEVICESUB 00000005 00000000 00000000 00000080 2**0 CONTENTS, RELOC, READONLY
|
||||
3 EXESUB 00000005 00000000 00000000 00000085 2**0 CONTENTS, READONLY
|
||||
4 JNCDOCOPY 00000005 00000000 00000000 0000008a 2**0 CONTENTS, RELOC, READONLY
|
||||
5 EXERELPU 00000001 00000000 00000000 0000008f 2**0 CONTENTS, READONLY
|
||||
6 EXEMAIN4 0000000e 00000000 00000000 00000090 2**0 CONTENTS, RELOC, READONLY
|
||||
7 UPX1HEAD 0000001b 00000000 00000000 0000009e 2**0 CONTENTS, READONLY
|
||||
8 EXECUTPO 00000000 00000000 00000000 000000b9 2**0 CONTENTS, READONLY
|
||||
9 NRV2B16S 0000000d 00000000 00000000 000000b9 2**0 CONTENTS, RELOC, READONLY
|
||||
10 N2B64K01 0000000b 00000000 00000000 000000c6 2**0 CONTENTS, READONLY
|
||||
11 NRV2BEX1 0000000b 00000000 00000000 000000d1 2**0 CONTENTS, RELOC, READONLY
|
||||
12 N2BX8601 00000008 00000000 00000000 000000dc 2**0 CONTENTS, READONLY
|
||||
13 N2B28601 00000003 00000000 00000000 000000e4 2**0 CONTENTS, READONLY
|
||||
14 NRV2BEX2 00000031 00000000 00000000 000000e7 2**0 CONTENTS, RELOC, READONLY
|
||||
15 N2BX8602 0000000e 00000000 00000000 00000118 2**0 CONTENTS, READONLY
|
||||
16 N2B28602 00000006 00000000 00000000 00000126 2**0 CONTENTS, READONLY
|
||||
17 NRV2BEX3 00000015 00000000 00000000 0000012c 2**0 CONTENTS, RELOC, READONLY
|
||||
18 N2B64K02 0000000b 00000000 00000000 00000141 2**0 CONTENTS, READONLY
|
||||
19 NRV2BEX9 00000004 00000000 00000000 0000014c 2**0 CONTENTS, READONLY
|
||||
20 NRV2D16S 0000000d 00000000 00000000 00000150 2**0 CONTENTS, RELOC, READONLY
|
||||
21 N2D64K01 0000000b 00000000 00000000 0000015d 2**0 CONTENTS, READONLY
|
||||
22 NRV2DEX1 00000013 00000000 00000000 00000168 2**0 CONTENTS, RELOC, READONLY
|
||||
23 N2DX8601 00000006 00000000 00000000 0000017b 2**0 CONTENTS, READONLY
|
||||
24 N2D28601 00000003 00000000 00000000 00000181 2**0 CONTENTS, READONLY
|
||||
25 NRV2DEX2 00000039 00000000 00000000 00000184 2**0 CONTENTS, RELOC, READONLY
|
||||
26 N2DX8602 0000000e 00000000 00000000 000001bd 2**0 CONTENTS, READONLY
|
||||
27 N2D28602 00000006 00000000 00000000 000001cb 2**0 CONTENTS, READONLY
|
||||
28 NRV2DEX3 00000015 00000000 00000000 000001d1 2**0 CONTENTS, RELOC, READONLY
|
||||
29 N2D64K02 0000000b 00000000 00000000 000001e6 2**0 CONTENTS, READONLY
|
||||
30 NRV2DEX9 00000004 00000000 00000000 000001f1 2**0 CONTENTS, READONLY
|
||||
31 NRV2E16S 0000000d 00000000 00000000 000001f5 2**0 CONTENTS, RELOC, READONLY
|
||||
32 N2E64K01 0000000b 00000000 00000000 00000202 2**0 CONTENTS, READONLY
|
||||
33 NRV2EEX1 00000013 00000000 00000000 0000020d 2**0 CONTENTS, RELOC, READONLY
|
||||
34 N2EX8601 00000006 00000000 00000000 00000220 2**0 CONTENTS, READONLY
|
||||
35 N2E28601 00000003 00000000 00000000 00000226 2**0 CONTENTS, READONLY
|
||||
36 NRV2EEX2 0000003e 00000000 00000000 00000229 2**0 CONTENTS, RELOC, READONLY
|
||||
37 N2EX8602 0000000e 00000000 00000000 00000267 2**0 CONTENTS, READONLY
|
||||
38 N2E28602 00000006 00000000 00000000 00000275 2**0 CONTENTS, READONLY
|
||||
39 NRV2EEX3 00000015 00000000 00000000 0000027b 2**0 CONTENTS, RELOC, READONLY
|
||||
40 N2E64K02 0000000b 00000000 00000000 00000290 2**0 CONTENTS, READONLY
|
||||
41 NRV2EEX9 00000004 00000000 00000000 0000029b 2**0 CONTENTS, READONLY
|
||||
42 LZMA_DEC99 00000000 00000000 00000000 0000029f 2**0 CONTENTS, READONLY
|
||||
43 LZMA_DEC00 0000003b 00000000 00000000 0000029f 2**0 CONTENTS, RELOC, READONLY
|
||||
44 ignore_reloc_overflow 00000008 00000000 00000000 000002da 2**0 CONTENTS, RELOC, READONLY
|
||||
45 LZMA_DEC10 000011a4 00000000 00000000 000002e2 2**0 CONTENTS, READONLY
|
||||
46 LZMA_DEC20 000011a4 00000000 00000000 00001486 2**0 CONTENTS, READONLY
|
||||
47 LZMA_DEC30 00000006 00000000 00000000 0000262a 2**0 CONTENTS, RELOC, READONLY
|
||||
48 LZMA_DEC31 00000007 00000000 00000000 00002630 2**0 CONTENTS, RELOC, READONLY
|
||||
49 EXEMAIN5 00000001 00000000 00000000 00002637 2**0 CONTENTS, READONLY
|
||||
50 EXEADJUS 00000007 00000000 00000000 00002638 2**0 CONTENTS, READONLY
|
||||
51 EXENOADJ 00000002 00000000 00000000 0000263f 2**0 CONTENTS, READONLY
|
||||
52 EXERELO1 0000001e 00000000 00000000 00002641 2**0 CONTENTS, RELOC, READONLY
|
||||
53 EXEREL9A 00000012 00000000 00000000 0000265f 2**0 CONTENTS, RELOC, READONLY
|
||||
54 EXERELO2 00000004 00000000 00000000 00002671 2**0 CONTENTS, READONLY
|
||||
55 EXEREBIG 00000002 00000000 00000000 00002675 2**0 CONTENTS, RELOC, READONLY
|
||||
56 EXERELO3 00000002 00000000 00000000 00002677 2**0 CONTENTS, RELOC, READONLY
|
||||
57 EXEMAIN8 00000003 00000000 00000000 00002679 2**0 CONTENTS, READONLY
|
||||
58 DEVICEEND 00000013 00000000 00000000 0000267c 2**0 CONTENTS, READONLY
|
||||
59 EXESTACK 00000006 00000000 00000000 0000268f 2**0 CONTENTS, RELOC, READONLY
|
||||
60 EXESTASP 00000003 00000000 00000000 00002695 2**0 CONTENTS, RELOC, READONLY
|
||||
61 EXEJUMPF 00000005 00000000 00000000 00002698 2**0 CONTENTS, RELOC, READONLY
|
||||
62 EXERCSPO 00000004 00000000 00000000 0000269d 2**0 CONTENTS, RELOC, READONLY
|
||||
63 EXERETIP 00000006 00000000 00000000 000026a1 2**0 CONTENTS, RELOC, READONLY
|
||||
0 DEVICEENTRY 0000002d 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
|
||||
1 LZMADEVICE 00000005 00000000 00000000 00000061 2**0 CONTENTS, RELOC, READONLY
|
||||
2 DEVICEENTRY2 00000003 00000000 00000000 00000066 2**0 CONTENTS, READONLY
|
||||
3 LZMAENTRY 00000011 00000000 00000000 00000069 2**0 CONTENTS, RELOC, READONLY
|
||||
4 NRV2B160 0000000a 00000000 00000000 0000007a 2**0 CONTENTS, RELOC, READONLY
|
||||
5 NRVDDONE 00000002 00000000 00000000 00000084 2**0 CONTENTS, RELOC, READONLY
|
||||
6 NRVDRETU 00000002 00000000 00000000 00000086 2**0 CONTENTS, RELOC, READONLY
|
||||
7 NRVDECO1 0000001e 00000000 00000000 00000088 2**0 CONTENTS, RELOC, READONLY
|
||||
8 NRVLED00 00000001 00000000 00000000 000000a6 2**0 CONTENTS, READONLY
|
||||
9 NRVGTD00 00000007 00000000 00000000 000000a7 2**0 CONTENTS, READONLY
|
||||
10 NRVDECO2 00000017 00000000 00000000 000000ae 2**0 CONTENTS, RELOC, READONLY
|
||||
11 CALLTR16 0000000b 00000000 00000000 000000c5 2**0 CONTENTS, RELOC, READONLY
|
||||
12 CT16I286 00000003 00000000 00000000 000000d0 2**0 CONTENTS, READONLY
|
||||
13 CT16SUB0 00000002 00000000 00000000 000000d3 2**0 CONTENTS, READONLY
|
||||
14 CT16I086 00000008 00000000 00000000 000000d5 2**0 CONTENTS, READONLY
|
||||
15 CALLTRI2 00000003 00000000 00000000 000000dd 2**0 CONTENTS, RELOC, READONLY
|
||||
16 CT16E800 00000002 00000000 00000000 000000e0 2**0 CONTENTS, READONLY
|
||||
17 CT16E900 00000002 00000000 00000000 000000e2 2**0 CONTENTS, READONLY
|
||||
18 CALLTRI5 00000006 00000000 00000000 000000e4 2**0 CONTENTS, RELOC, READONLY
|
||||
19 CT16JEND 00000002 00000000 00000000 000000ea 2**0 CONTENTS, RELOC, READONLY
|
||||
20 CT16JUL2 00000002 00000000 00000000 000000ec 2**0 CONTENTS, RELOC, READONLY
|
||||
21 CT16I287 00000003 00000000 00000000 000000ee 2**0 CONTENTS, READONLY
|
||||
22 CT16SUB1 00000002 00000000 00000000 000000f1 2**0 CONTENTS, READONLY
|
||||
23 CT16I087 00000008 00000000 00000000 000000f3 2**0 CONTENTS, READONLY
|
||||
24 CALLTRI6 00000003 00000000 00000000 000000fb 2**0 CONTENTS, RELOC, READONLY
|
||||
25 EXEENTRY 0000001c 00000000 00000000 000000fe 2**0 CONTENTS, RELOC, READONLY
|
||||
26 LONGSUB 00000006 00000000 00000000 0000011a 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
|
||||
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_DEC99 00000000 00000000 00000000 0000033a 2**0 CONTENTS, READONLY
|
||||
68 LZMA_DEC00 0000003b 00000000 00000000 0000033a 2**0 CONTENTS, RELOC, READONLY
|
||||
69 ignore_reloc_overflow 00000008 00000000 00000000 00000375 2**0 CONTENTS, RELOC, READONLY
|
||||
70 LZMA_DEC10 000011a4 00000000 00000000 0000037d 2**0 CONTENTS, READONLY
|
||||
71 LZMA_DEC20 000011a4 00000000 00000000 00001521 2**0 CONTENTS, READONLY
|
||||
72 LZMA_DEC30 00000006 00000000 00000000 000026c5 2**0 CONTENTS, RELOC, READONLY
|
||||
73 LZMA_DEC31 00000007 00000000 00000000 000026cb 2**0 CONTENTS, RELOC, READONLY
|
||||
74 EXEMAIN5 00000001 00000000 00000000 000026d2 2**0 CONTENTS, READONLY
|
||||
75 EXEADJUS 00000007 00000000 00000000 000026d3 2**0 CONTENTS, READONLY
|
||||
76 EXENOADJ 00000002 00000000 00000000 000026da 2**0 CONTENTS, READONLY
|
||||
77 EXERELO1 0000001e 00000000 00000000 000026dc 2**0 CONTENTS, RELOC, READONLY
|
||||
78 EXEREL9A 00000012 00000000 00000000 000026fa 2**0 CONTENTS, RELOC, READONLY
|
||||
79 EXERELO2 00000004 00000000 00000000 0000270c 2**0 CONTENTS, READONLY
|
||||
80 EXEREBIG 00000002 00000000 00000000 00002710 2**0 CONTENTS, RELOC, READONLY
|
||||
81 EXERELO3 00000002 00000000 00000000 00002712 2**0 CONTENTS, RELOC, READONLY
|
||||
82 EXEMAIN8 00000003 00000000 00000000 00002714 2**0 CONTENTS, READONLY
|
||||
83 DEVICEEND 00000013 00000000 00000000 00002717 2**0 CONTENTS, READONLY
|
||||
84 EXESTACK 00000006 00000000 00000000 0000272a 2**0 CONTENTS, RELOC, READONLY
|
||||
85 EXESTASP 00000003 00000000 00000000 00002730 2**0 CONTENTS, RELOC, READONLY
|
||||
86 EXEJUMPF 00000005 00000000 00000000 00002733 2**0 CONTENTS, RELOC, READONLY
|
||||
87 EXERCSPO 00000004 00000000 00000000 00002738 2**0 CONTENTS, RELOC, READONLY
|
||||
88 EXERETIP 00000006 00000000 00000000 0000273c 2**0 CONTENTS, RELOC, READONLY
|
||||
SYMBOL TABLE:
|
||||
00000000 l d DEVICEENTRY 00000000 DEVICEENTRY
|
||||
00000000 l d COMPRESSED_LZMA_START 00000000 COMPRESSED_LZMA_START
|
||||
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 EXEENTRY 00000000 EXEENTRY
|
||||
00000000 l d NRV2B16S 00000000 NRV2B16S
|
||||
00000000 l d NRV2BEX2 00000000 NRV2BEX2
|
||||
@ -86,8 +117,27 @@ SYMBOL TABLE:
|
||||
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||
00000000 l d EXERELO1 00000000 EXERELO1
|
||||
00000000 l d EXERELO2 00000000 EXERELO2
|
||||
00000000 l d DEVICESUB 00000000 DEVICESUB
|
||||
00000000 l d EXESUB 00000000 EXESUB
|
||||
00000000 l d LZMADEVICE 00000000 LZMADEVICE
|
||||
00000000 l d DEVICEENTRY2 00000000 DEVICEENTRY2
|
||||
00000000 l d LZMAENTRY 00000000 LZMAENTRY
|
||||
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 LONGSUB 00000000 LONGSUB
|
||||
00000000 l d SHORTSUB 00000000 SHORTSUB
|
||||
00000000 l d JNCDOCOPY 00000000 JNCDOCOPY
|
||||
00000000 l d EXERELPU 00000000 EXERELPU
|
||||
00000000 l d EXEMAIN4 00000000 EXEMAIN4
|
||||
@ -136,6 +186,7 @@ SYMBOL TABLE:
|
||||
00000000 *UND* 00000000 orig_strategy
|
||||
00000000 *UND* 00000000 exe_stack_ss
|
||||
00000000 *UND* 00000000 exe_stack_sp
|
||||
00000000 *UND* 00000000 calltrick_calls
|
||||
00000000 *UND* 00000000 words_to_copy
|
||||
00000000 *UND* 00000000 copy_offset
|
||||
00000000 *UND* 00000000 source_segment
|
||||
@ -166,6 +217,61 @@ OFFSET TYPE VALUE
|
||||
00000019 R_386_16 exe_stack_ss
|
||||
0000001c R_386_16 exe_stack_sp
|
||||
|
||||
RELOCATION RECORDS FOR [LZMADEVICE]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_16 exe_stack_ss
|
||||
|
||||
RELOCATION RECORDS FOR [LZMAENTRY]:
|
||||
OFFSET TYPE VALUE
|
||||
00000008 R_386_16 COMPRESSED_LZMA_START
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2B160]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_PC16 NRVDECO2
|
||||
00000008 R_386_PC16 NRVDECO2
|
||||
|
||||
RELOCATION RECORDS FOR [NRVDDONE]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_PC8 NRVDECO2
|
||||
|
||||
RELOCATION RECORDS FOR [NRVDRETU]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_PC8 NRVDECO2
|
||||
|
||||
RELOCATION RECORDS FOR [NRVDECO1]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_PC8 NRV2B160
|
||||
00000010 R_386_PC16 NRVDECO2
|
||||
00000018 R_386_PC16 NRVDECO2
|
||||
|
||||
RELOCATION RECORDS FOR [NRVDECO2]:
|
||||
OFFSET TYPE VALUE
|
||||
00000008 R_386_PC8 NRV2B160
|
||||
|
||||
RELOCATION RECORDS FOR [CALLTR16]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_16 calltrick_calls
|
||||
|
||||
RELOCATION RECORDS FOR [CALLTRI2]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_PC8 CALLTR16
|
||||
|
||||
RELOCATION RECORDS FOR [CALLTRI5]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_16 calltrick_calls
|
||||
|
||||
RELOCATION RECORDS FOR [CT16JEND]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_PC8 NRVDECO2
|
||||
|
||||
RELOCATION RECORDS FOR [CT16JUL2]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_PC8 CALLTRI6
|
||||
|
||||
RELOCATION RECORDS FOR [CALLTRI6]:
|
||||
OFFSET TYPE VALUE
|
||||
00000002 R_386_PC8 CALLTRI5
|
||||
|
||||
RELOCATION RECORDS FOR [EXEENTRY]:
|
||||
OFFSET TYPE VALUE
|
||||
00000001 R_386_16 words_to_copy
|
||||
@ -173,7 +279,11 @@ OFFSET TYPE VALUE
|
||||
0000000f R_386_16 source_segment
|
||||
00000014 R_386_16 destination_segment
|
||||
|
||||
RELOCATION RECORDS FOR [DEVICESUB]:
|
||||
RELOCATION RECORDS FOR [LONGSUB]:
|
||||
OFFSET TYPE VALUE
|
||||
00000003 R_386_16 EXEENTRY
|
||||
|
||||
RELOCATION RECORDS FOR [SHORTSUB]:
|
||||
OFFSET TYPE VALUE
|
||||
00000003 R_386_8 EXEENTRY
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user