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
+3 -25
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
+1 -1
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);
+3 -15
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));
+1 -25
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);
+4 -21
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);
+2 -19
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
+4 -17
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);
+2 -2
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);
+49
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
+1223 -1135
View File
File diff suppressed because it is too large Load Diff
+1290 -1202
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -3
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:
+2 -2
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
+5
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
+5
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
// =============
+5 -1
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
// =============
@@ -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]:
+35 -2
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
+39 -6
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
+57 -26
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