1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

Factor out a common Packer::defineFilterSymbols(). Enable filters

0x49 and 0x49 for all i386-dos32.* formats. Needs testing.
This commit is contained in:
Markus F.X.J. Oberhumer 2006-12-22 16:39:42 +01:00
parent de9dcc4ed6
commit b21ce925fb
22 changed files with 4604 additions and 4293 deletions

View File

@ -68,7 +68,8 @@ const int *PackDjgpp2::getCompressionMethods(int method, int level) const
const int *PackDjgpp2::getFilters() const
{
static const int filters[] = {
0x26, 0x24, 0x16, 0x13, 0x14, 0x11, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
0x26, 0x24, 0x49, 0x46, 0x16, 0x13, 0x14, 0x11,
FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
FT_END };
return filters;
}
@ -234,29 +235,6 @@ void PackDjgpp2::stripDebug()
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0)
return false;
assert(ft->calls > 0);
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
#if 0
if (0x80==(ft->id & 0xF0)) {
int const mru = ph.n_mru ? 1+ ph.n_mru : 0;
if (mru && mru!=256) {
unsigned const is_pwr2 = (0==((mru -1) & mru));
//patch_le32(0x80 + (char *)loader, lsize - 0x80, "NMRU", mru - is_pwr2);
}
}
#endif
return true;
}
/*************************************************************************
//
**************************************************************************/
@ -350,7 +328,7 @@ void PackDjgpp2::pack(OutputFile *fo)
linker->defineSymbol("stack_for_lzma", bss->vaddr + bss->size);
linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize);
linker->defineSymbol("start_of_compressed", data->vaddr);
defineFilterSymbols(linker, &ft);
defineFilterSymbols(&ft);
// we should not overwrite our decompressor during unpacking
// the original coff header (which is put just before the

View File

@ -121,7 +121,7 @@ void PackElks8086::pack(OutputFile *fo)
patchPackHeader(loader, lsize);
#if 0
// FIXME
defineFilterSymbols();
defineFilterSymbols(&ft);
defineDecompressorSymbols();
//patch_le32(loader, lsize, "ESI1", zimage_offset + lsize);
//patch_le32(loader, lsize, "KEIP", kernel_entry);

View File

@ -59,7 +59,8 @@ const int *PackTmt::getCompressionMethods(int method, int level) const
const int *PackTmt::getFilters() const
{
static const int filters[] = {
0x26, 0x24, 0x16, 0x13, 0x14, 0x11, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
0x26, 0x24, 0x49, 0x46, 0x16, 0x13, 0x14, 0x11,
FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
FT_END };
return filters;
}
@ -186,19 +187,6 @@ bool PackTmt::canPack()
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0)
return false;
assert(ft->calls > 0);
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
return true;
}
/*************************************************************************
//
**************************************************************************/
@ -264,8 +252,8 @@ void PackTmt::pack(OutputFile *fo)
// patch loader
linker->defineSymbol("original_entry", ih.entry);
defineFilterSymbols(linker, &ft);
defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("bytes_to_copy", ph.c_len + d_len);
linker->defineSymbol("copy_dest", 0u - (ph.u_len + ph.overlap_overhead + d_len - 1));

View File

@ -199,26 +199,6 @@ bool PackVmlinuxBase<T>::canPack()
return 0 < n_ptload;
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0) {
linker->defineSymbol("filter_length", 0);
return false;
}
assert(ft->calls > 0);
if (0x50==(0xF0 & ft->id)) {
linker->defineSymbol("FID", ft->id);
linker->defineSymbol("CTO", ft->cto);
}
else {
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
}
return true;
}
template <class T>
void PackVmlinuxBase<T>::pack(OutputFile *fo)
@ -269,11 +249,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
const unsigned lsize = getLoaderSize();
defineDecompressorSymbols();
defineFilterSymbols(linker, &ft);
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ft.buf_len); // redefine
assert(ft.buf_len == ph.u_len);
}
defineFilterSymbols(&ft);
relocateLoader();
MemBuffer loader(lsize);

View File

@ -67,8 +67,8 @@ const int *PackVmlinuzI386::getCompressionMethods(int method, int level) const
const int *PackVmlinuzI386::getFilters() const
{
static const int filters[] = {
0x49,
0x26, 0x24, 0x16, 0x13, 0x14, 0x11, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
0x26, 0x24, 0x49, 0x46, 0x16, 0x13, 0x14, 0x11,
FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
FT_END };
return filters;
}
@ -291,19 +291,6 @@ void PackVmlinuzI386::buildLoader(const Filter *ft)
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0)
return false;
assert(ft->calls > 0);
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
return true;
}
void PackVmlinuzI386::pack(OutputFile *fo)
{
readKernel();
@ -321,8 +308,8 @@ void PackVmlinuzI386::pack(OutputFile *fo)
const unsigned lsize = getLoaderSize();
defineFilterSymbols(linker, &ft);
defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("src_for_decompressor", zimage_offset + lsize);
linker->defineSymbol("original_entry", physical_start);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
@ -443,11 +430,7 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
linker->defineSymbol("copy_dest", physical_start + edi);
linker->defineSymbol("copy_source", bzimage_offset + esi);
defineFilterSymbols(linker, &ft);
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ft.buf_len); // redefine
assert(ft.buf_len == ph.u_len);
}
defineFilterSymbols(&ft);
defineDecompressorSymbols();
linker->defineSymbol("original_entry", physical_start);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);

View File

@ -169,20 +169,6 @@ int PackW32Pe::readFileHeader()
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0)
return false;
assert(ft->calls > 0);
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
return true;
}
/*************************************************************************
// import handling
**************************************************************************/
@ -892,12 +878,9 @@ void PackW32Pe::pack(OutputFile *fo)
linker->defineSymbol("VirtualFree", myimport + get_le32(oimpdlls + 16) + 16);
#endif
defineFilterSymbols(linker, &ft);
linker->defineSymbol("filter_buffer_start", ih.codebase - rvamin);
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ft.buf_len); // redefine
}
defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("filter_buffer_start", ih.codebase - rvamin);
// in case of overlapping decompression, this hack is needed,
// because windoze zeroes the word pointed by tlsindex before

View File

@ -76,7 +76,8 @@ const int *PackWcle::getCompressionMethods(int method, int level) const
const int *PackWcle::getFilters() const
{
static const int filters[] = {
0x26, 0x24, 0x16, 0x13, 0x14, 0x11, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
0x26, 0x24, 0x49, 0x46, 0x16, 0x13, 0x14, 0x11,
FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
FT_END };
return filters;
}
@ -142,20 +143,6 @@ bool PackWcle::canPack()
}
static bool defineFilterSymbols(Linker *linker, const Filter *ft)
{
if (ft->id == 0)
return false;
assert(ft->calls > 0);
linker->defineSymbol("filter_cto", ft->cto);
linker->defineSymbol("filter_length",
(ft->id & 0xf) % 3 == 0 ? ft->calls :
ft->lastcall - ft->calls * 4);
return true;
}
/*************************************************************************
//
**************************************************************************/
@ -548,9 +535,9 @@ void PackWcle::pack(OutputFile *fo)
linker->defineSymbol("original_stack", ih.init_esp_offset +
IOT(ih.init_ss_object - 1, my_base_address));
linker->defineSymbol("start_of_relocs", mps*pages);
defineFilterSymbols(linker, &ft);
linker->defineSymbol("filter_buffer_start", text_vaddr);
defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("filter_buffer_start", text_vaddr);
unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4;
linker->defineSymbol("words_to_copy", jpos);

View File

@ -247,9 +247,9 @@ protected:
// filter handling [see packer_f.cpp]
virtual bool isValidFilter(int filter_id) const;
virtual void optimizeFilter(Filter *, const upx_byte *, unsigned) const
{ }
virtual void optimizeFilter(Filter *, const upx_byte *, unsigned) const { }
virtual void addFilter32(int filter_id);
virtual void defineFilterSymbols(const Filter *ft);
// stub and overlay util
static void handleStub(InputFile *fi, OutputFile *fo, long size);

View File

@ -29,6 +29,7 @@
#include "conf.h"
#include "packer.h"
#include "filter.h"
#include "linker.h"
/*************************************************************************
@ -309,6 +310,54 @@ void Packer::addFilter32(int filter_id)
#undef MRUFLT
/*************************************************************************
//
**************************************************************************/
void Packer::defineFilterSymbols(const Filter *ft)
{
if (ft->id == 0)
{
linker->defineSymbol("filter_length", 0);
linker->defineSymbol("filter_cto", 0);
return;
}
assert(ft->calls > 0);
assert(ft->buf_len > 0);
if (ft->id >= 0x40 && ft->id <= 0x4f)
{
linker->defineSymbol("filter_length", ft->buf_len);
linker->defineSymbol("filter_cto", ft->cto);
}
else if (ft->id >= 0x50 && ft->id <= 0x5f)
{
linker->defineSymbol("filter_id", ft->id);
linker->defineSymbol("filter_cto", ft->cto);
}
else if ((ft->id & 0xf) % 3 == 0)
{
linker->defineSymbol("filter_length", ft->calls);
linker->defineSymbol("filter_cto", ft->cto);
}
else
{
linker->defineSymbol("filter_length", ft->lastcall - ft->calls * 4);
linker->defineSymbol("filter_cto", ft->cto);
}
#if 0
if (0x80==(ft->id & 0xF0)) {
int const mru = ph.n_mru ? 1+ ph.n_mru : 0;
if (mru && mru!=256) {
unsigned const is_pwr2 = (0==((mru -1) & mru));
//patch_le32(0x80 + (char *)loader, lsize - 0x80, "NMRU", mru - is_pwr2);
}
}
#endif
}
/*
vi:ts=4:et:nowrap
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -290,10 +290,8 @@ ctend:
// 2nd param: where is cto8 (dl, bl, or literal)
section ctok32.00
.ifnc \addvalue, 0
.ifnc \addvalue, esi
.ifc \addvalue, edi
mov esi, \addvalue
.endif
.endif
jmps ckstart
ckloop3:

View File

@ -75,8 +75,8 @@ spin:
section LINUX010
ldr r0,[sp,#3*4] // &outdata
ldr r1,[sp,#2*4] // outsize
loadcon8 2,CTO // mov r2,#CTO
loadcon8 3,FID // mov r3,#FID
loadcon8 2,filter_cto // mov r2,#filter_cto
loadcon8 3,filter_id // mov r3,#filter_id
bl unfilter // unfilter(&outdata, outsize, cto, fid)
section LINUX020

View File

@ -79,8 +79,13 @@ section DJ2BSS00
section DJCALLT2
pop edi
cjt32 0
section ctok32.00
mov ecx, offset filter_length
ctok32 0, (offset filter_cto)
section DJRETURN
jmp original_entry

View File

@ -84,8 +84,13 @@ section TMTMAIN5
section TMTCALT2
pop edi
cjt32 ebp
section ctok32.00
mov ecx, offset filter_length
ctok32 ebp, (offset filter_cto)
// =============
// ============= RELOCATION
// =============

View File

@ -94,9 +94,13 @@ section WCCTTPOS
lea edi, [ebp + filter_buffer_start]
section WCCTTNUL
mov edi, ebp
section WCALLTR1
cjt32 ebp
section ctok32.00
mov ecx, offset filter_length
ctok32 ebp, (offset filter_cto)
// =============
// ============= RELOCATION
// =============

View File

@ -48,8 +48,8 @@ SYMBOL TABLE:
00000000 *UND* 00000000 METHOD
00000000 *UND* 00000000 COMPRESSED_LENGTH
00000000 *UND* 00000000 UNCOMPRESSED_LENGTH
00000000 *UND* 00000000 CTO
00000000 *UND* 00000000 FID
00000000 *UND* 00000000 filter_cto
00000000 *UND* 00000000 filter_id
00000000 g F NRV2B 000000c4 ucl_nrv2b_decompress_8
00000000 g F NRV2D 00000100 ucl_nrv2d_decompress_8
00000000 g F NRV2E 00000114 ucl_nrv2e_decompress_8
@ -65,8 +65,8 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LINUX010]:
OFFSET TYPE VALUE
00000008 R_ARM_ABS8 CTO
0000000c R_ARM_ABS8 FID
00000008 R_ARM_ABS8 filter_cto
0000000c R_ARM_ABS8 filter_id
00000010 R_ARM_PC24 ctok32.00
RELOCATION RECORDS FOR [ctok32.10]:

View File

@ -88,8 +88,13 @@ Idx Name Size VMA LMA File off Algn Flags
83 CTBROR11 00000002 00000000 00000000 0000194b 2**0 CONTENTS, READONLY
84 CTBSWA11 00000005 00000000 00000000 0000194d 2**0 CONTENTS, READONLY
85 CALLTR13 00000005 00000000 00000000 00001952 2**0 CONTENTS, RELOC, READONLY
86 DJRETURN 00000005 00000000 00000000 00001957 2**0 CONTENTS, RELOC, READONLY
87 UPX1HEAD 00000020 00000000 00000000 0000195c 2**0 CONTENTS, READONLY
86 ctok32.00 0000000c 00000000 00000000 00001957 2**0 CONTENTS, RELOC, READONLY
87 ctok32.10 0000000e 00000000 00000000 00001963 2**0 CONTENTS, RELOC, READONLY
88 ctok32.20 00000020 00000000 00000000 00001971 2**0 CONTENTS, RELOC, READONLY
89 ctok32.30 00000007 00000000 00000000 00001991 2**0 CONTENTS, RELOC, READONLY
90 ctok32.40 00000005 00000000 00000000 00001998 2**0 CONTENTS, RELOC, READONLY
91 DJRETURN 00000005 00000000 00000000 0000199d 2**0 CONTENTS, RELOC, READONLY
92 UPX1HEAD 00000020 00000000 00000000 000019a2 2**0 CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d N2BSMA10 00000000 N2BSMA10
00000000 l d N2BFAS11 00000000 N2BFAS11
@ -119,6 +124,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13
00000000 l d ctok32.00 00000000 ctok32.00
00000000 l d ctok32.10 00000000 ctok32.10
00000000 l d ctok32.20 00000000 ctok32.20
00000000 l d ctok32.40 00000000 ctok32.40
00000000 l d DJ2MAIN1 00000000 DJ2MAIN1
00000000 l d DJCALLT1 00000000 DJCALLT1
00000000 l d DJ2MAIN2 00000000 DJ2MAIN2
@ -177,6 +186,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d DJRETURN 00000000 DJRETURN
00000000 l d UPX1HEAD 00000000 UPX1HEAD
00000000 *UND* 00000000 start_of_compressed
@ -399,6 +409,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE
00000004 R_386_PC8 CALLTR10
RELOCATION RECORDS FOR [ctok32.00]:
OFFSET TYPE VALUE
00000001 R_386_32 filter_length
00000006 R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.10]:
OFFSET TYPE VALUE
0000000d R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.20]:
OFFSET TYPE VALUE
00000005 R_386_PC8 ctok32.40
00000008 R_386_8 filter_cto
0000000a R_386_PC8 ctok32.40
RELOCATION RECORDS FOR [ctok32.30]:
OFFSET TYPE VALUE
00000006 R_386_PC8 ctok32.10
RELOCATION RECORDS FOR [ctok32.40]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.00
RELOCATION RECORDS FOR [DJRETURN]:
OFFSET TYPE VALUE
00000001 R_386_PC32 original_entry

View File

@ -90,12 +90,17 @@ Idx Name Size VMA LMA File off Algn Flags
85 CTBROR11 00000002 00000000 00000000 0000196f 2**0 CONTENTS, READONLY
86 CTBSWA11 00000005 00000000 00000000 00001971 2**0 CONTENTS, READONLY
87 CALLTR13 00000007 00000000 00000000 00001976 2**0 CONTENTS, RELOC, READONLY
88 TMTRELOC 00000003 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
89 RELOC320 00000029 00000000 00000000 00001980 2**0 CONTENTS, RELOC, READONLY
90 REL32BIG 00000009 00000000 00000000 000019a9 2**0 CONTENTS, RELOC, READONLY
91 RELOC32J 00000002 00000000 00000000 000019b2 2**0 CONTENTS, RELOC, READONLY
92 REL32END 00000000 00000000 00000000 000019b4 2**0 CONTENTS, READONLY
93 TMTJUMP1 00000005 00000000 00000000 000019b4 2**0 CONTENTS, RELOC, READONLY
88 ctok32.00 0000000c 00000000 00000000 0000197d 2**0 CONTENTS, RELOC, READONLY
89 ctok32.10 0000000e 00000000 00000000 00001989 2**0 CONTENTS, RELOC, READONLY
90 ctok32.20 00000022 00000000 00000000 00001997 2**0 CONTENTS, RELOC, READONLY
91 ctok32.30 00000007 00000000 00000000 000019b9 2**0 CONTENTS, RELOC, READONLY
92 ctok32.40 00000005 00000000 00000000 000019c0 2**0 CONTENTS, RELOC, READONLY
93 TMTRELOC 00000003 00000000 00000000 000019c5 2**0 CONTENTS, READONLY
94 RELOC320 00000029 00000000 00000000 000019c8 2**0 CONTENTS, RELOC, READONLY
95 REL32BIG 00000009 00000000 00000000 000019f1 2**0 CONTENTS, RELOC, READONLY
96 RELOC32J 00000002 00000000 00000000 000019fa 2**0 CONTENTS, RELOC, READONLY
97 REL32END 00000000 00000000 00000000 000019fc 2**0 CONTENTS, READONLY
98 TMTJUMP1 00000005 00000000 00000000 000019fc 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d TMTCUTPO 00000000 TMTCUTPO
00000000 l d N2BSMA10 00000000 N2BSMA10
@ -126,6 +131,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13
00000000 l d ctok32.00 00000000 ctok32.00
00000000 l d ctok32.10 00000000 ctok32.10
00000000 l d ctok32.20 00000000 ctok32.20
00000000 l d ctok32.40 00000000 ctok32.40
00000000 l d RELOC320 00000000 RELOC320
00000000 l d RELOC32J 00000000 RELOC32J
00000000 l d TMTMAIN1 00000000 TMTMAIN1
@ -187,6 +196,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d TMTRELOC 00000000 TMTRELOC
00000000 l d REL32BIG 00000000 REL32BIG
00000000 l d REL32END 00000000 REL32END
@ -410,6 +420,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE
00000006 R_386_PC8 CALLTR10
RELOCATION RECORDS FOR [ctok32.00]:
OFFSET TYPE VALUE
00000001 R_386_32 filter_length
00000006 R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.10]:
OFFSET TYPE VALUE
0000000d R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.20]:
OFFSET TYPE VALUE
00000005 R_386_PC8 ctok32.40
00000008 R_386_8 filter_cto
0000000a R_386_PC8 ctok32.40
RELOCATION RECORDS FOR [ctok32.30]:
OFFSET TYPE VALUE
00000006 R_386_PC8 ctok32.10
RELOCATION RECORDS FOR [ctok32.40]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.00
RELOCATION RECORDS FOR [RELOC320]:
OFFSET TYPE VALUE
00000008 R_386_PC8 RELOC32J

View File

@ -72,31 +72,35 @@ Idx Name Size VMA LMA File off Algn Flags
67 WCLEMAI2 00000009 00000000 00000000 00001927 2**0 CONTENTS, RELOC, READONLY
68 WCCTTPOS 00000006 00000000 00000000 00001930 2**0 CONTENTS, RELOC, READONLY
69 WCCTTNUL 00000002 00000000 00000000 00001936 2**0 CONTENTS, READONLY
70 WCALLTR1 00000000 00000000 00000000 00001938 2**0 CONTENTS, READONLY
71 CALLTR00 0000000e 00000000 00000000 00001938 2**0 CONTENTS, RELOC, READONLY
72 CTCLEVE1 00000005 00000000 00000000 00001946 2**0 CONTENTS, RELOC, READONLY
73 CALLTR01 00000005 00000000 00000000 0000194b 2**0 CONTENTS, READONLY
74 CTBSHR01 00000004 00000000 00000000 00001950 2**0 CONTENTS, READONLY
75 CTBROR01 00000002 00000000 00000000 00001954 2**0 CONTENTS, READONLY
76 CTBSWA01 00000005 00000000 00000000 00001956 2**0 CONTENTS, READONLY
77 CALLTR02 00000010 00000000 00000000 0000195b 2**0 CONTENTS, RELOC, READONLY
78 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY
79 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY
80 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY
81 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY
82 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY
83 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
84 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY
85 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY
86 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY
87 CALLTR13 00000007 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY
88 WCRELOC1 00000003 00000000 00000000 00001991 2**0 CONTENTS, READONLY
89 RELOC320 00000029 00000000 00000000 00001994 2**0 CONTENTS, RELOC, READONLY
90 REL32BIG 00000009 00000000 00000000 000019bd 2**0 CONTENTS, RELOC, READONLY
91 RELOC32J 00000002 00000000 00000000 000019c6 2**0 CONTENTS, RELOC, READONLY
92 REL32END 00000000 00000000 00000000 000019c8 2**0 CONTENTS, READONLY
93 WCRELSEL 00000002 00000000 00000000 000019c8 2**0 CONTENTS, READONLY
94 WCLEMAI4 00000015 00000000 00000000 000019ca 2**0 CONTENTS, RELOC, READONLY
70 CALLTR00 0000000e 00000000 00000000 00001938 2**0 CONTENTS, RELOC, READONLY
71 CTCLEVE1 00000005 00000000 00000000 00001946 2**0 CONTENTS, RELOC, READONLY
72 CALLTR01 00000005 00000000 00000000 0000194b 2**0 CONTENTS, READONLY
73 CTBSHR01 00000004 00000000 00000000 00001950 2**0 CONTENTS, READONLY
74 CTBROR01 00000002 00000000 00000000 00001954 2**0 CONTENTS, READONLY
75 CTBSWA01 00000005 00000000 00000000 00001956 2**0 CONTENTS, READONLY
76 CALLTR02 00000010 00000000 00000000 0000195b 2**0 CONTENTS, RELOC, READONLY
77 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY
78 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY
79 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY
80 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY
81 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY
82 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
83 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY
84 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY
85 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY
86 CALLTR13 00000007 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY
87 ctok32.00 0000000c 00000000 00000000 00001991 2**0 CONTENTS, RELOC, READONLY
88 ctok32.10 0000000e 00000000 00000000 0000199d 2**0 CONTENTS, RELOC, READONLY
89 ctok32.20 00000022 00000000 00000000 000019ab 2**0 CONTENTS, RELOC, READONLY
90 ctok32.30 00000007 00000000 00000000 000019cd 2**0 CONTENTS, RELOC, READONLY
91 ctok32.40 00000005 00000000 00000000 000019d4 2**0 CONTENTS, RELOC, READONLY
92 WCRELOC1 00000003 00000000 00000000 000019d9 2**0 CONTENTS, READONLY
93 RELOC320 00000029 00000000 00000000 000019dc 2**0 CONTENTS, RELOC, READONLY
94 REL32BIG 00000009 00000000 00000000 00001a05 2**0 CONTENTS, RELOC, READONLY
95 RELOC32J 00000002 00000000 00000000 00001a0e 2**0 CONTENTS, RELOC, READONLY
96 REL32END 00000000 00000000 00000000 00001a10 2**0 CONTENTS, READONLY
97 WCRELSEL 00000002 00000000 00000000 00001a10 2**0 CONTENTS, READONLY
98 WCLEMAI4 00000015 00000000 00000000 00001a12 2**0 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
00000000 l d WCLECUTP 00000000 WCLECUTP
00000000 l d N2BSMA10 00000000 N2BSMA10
@ -127,6 +131,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13
00000000 l d ctok32.00 00000000 ctok32.00
00000000 l d ctok32.10 00000000 ctok32.10
00000000 l d ctok32.20 00000000 ctok32.20
00000000 l d ctok32.40 00000000 ctok32.40
00000000 l d RELOC320 00000000 RELOC320
00000000 l d RELOC32J 00000000 RELOC32J
00000000 l d WCLEMAIN 00000000 WCLEMAIN
@ -174,7 +182,6 @@ SYMBOL TABLE:
00000000 l d WCLEMAI2 00000000 WCLEMAI2
00000000 l d WCCTTPOS 00000000 WCCTTPOS
00000000 l d WCCTTNUL 00000000 WCCTTNUL
00000000 l d WCALLTR1 00000000 WCALLTR1
00000000 l d CTCLEVE1 00000000 CTCLEVE1
00000000 l d CALLTR01 00000000 CALLTR01
00000000 l d CTBSHR01 00000000 CTBSHR01
@ -188,6 +195,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d WCRELOC1 00000000 WCRELOC1
00000000 l d REL32BIG 00000000 REL32BIG
00000000 l d REL32END 00000000 REL32END
@ -420,6 +428,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE
00000006 R_386_PC8 CALLTR10
RELOCATION RECORDS FOR [ctok32.00]:
OFFSET TYPE VALUE
00000001 R_386_32 filter_length
00000006 R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.10]:
OFFSET TYPE VALUE
0000000d R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.20]:
OFFSET TYPE VALUE
00000005 R_386_PC8 ctok32.40
00000008 R_386_8 filter_cto
0000000a R_386_PC8 ctok32.40
RELOCATION RECORDS FOR [ctok32.30]:
OFFSET TYPE VALUE
00000006 R_386_PC8 ctok32.10
RELOCATION RECORDS FOR [ctok32.40]:
OFFSET TYPE VALUE
00000004 R_386_PC8 ctok32.00
RELOCATION RECORDS FOR [RELOC320]:
OFFSET TYPE VALUE
00000008 R_386_PC8 RELOC32J