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 const int *PackDjgpp2::getFilters() const
{ {
static const int filters[] = { 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 }; FT_END };
return filters; 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("stack_for_lzma", bss->vaddr + bss->size);
linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize); linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize);
linker->defineSymbol("start_of_compressed", data->vaddr); linker->defineSymbol("start_of_compressed", data->vaddr);
defineFilterSymbols(linker, &ft); defineFilterSymbols(&ft);
// we should not overwrite our decompressor during unpacking // we should not overwrite our decompressor during unpacking
// the original coff header (which is put just before the // the original coff header (which is put just before the

View File

@ -121,7 +121,7 @@ void PackElks8086::pack(OutputFile *fo)
patchPackHeader(loader, lsize); patchPackHeader(loader, lsize);
#if 0 #if 0
// FIXME // FIXME
defineFilterSymbols(); defineFilterSymbols(&ft);
defineDecompressorSymbols(); defineDecompressorSymbols();
//patch_le32(loader, lsize, "ESI1", zimage_offset + lsize); //patch_le32(loader, lsize, "ESI1", zimage_offset + lsize);
//patch_le32(loader, lsize, "KEIP", kernel_entry); //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 const int *PackTmt::getFilters() const
{ {
static const int filters[] = { 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 }; FT_END };
return filters; 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 // patch loader
linker->defineSymbol("original_entry", ih.entry); linker->defineSymbol("original_entry", ih.entry);
defineFilterSymbols(linker, &ft);
defineDecompressorSymbols(); defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("bytes_to_copy", ph.c_len + d_len); linker->defineSymbol("bytes_to_copy", ph.c_len + d_len);
linker->defineSymbol("copy_dest", 0u - (ph.u_len + ph.overlap_overhead + d_len - 1)); 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; 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> template <class T>
void PackVmlinuxBase<T>::pack(OutputFile *fo) void PackVmlinuxBase<T>::pack(OutputFile *fo)
@ -269,11 +249,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
const unsigned lsize = getLoaderSize(); const unsigned lsize = getLoaderSize();
defineDecompressorSymbols(); defineDecompressorSymbols();
defineFilterSymbols(linker, &ft); defineFilterSymbols(&ft);
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ft.buf_len); // redefine
assert(ft.buf_len == ph.u_len);
}
relocateLoader(); relocateLoader();
MemBuffer loader(lsize); MemBuffer loader(lsize);

View File

@ -67,8 +67,8 @@ const int *PackVmlinuzI386::getCompressionMethods(int method, int level) const
const int *PackVmlinuzI386::getFilters() const const int *PackVmlinuzI386::getFilters() const
{ {
static const int filters[] = { static const int filters[] = {
0x49, 0x26, 0x24, 0x49, 0x46, 0x16, 0x13, 0x14, 0x11,
0x26, 0x24, 0x16, 0x13, 0x14, 0x11, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12, FT_ULTRA_BRUTE, 0x25, 0x15, 0x12,
FT_END }; FT_END };
return filters; 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) void PackVmlinuzI386::pack(OutputFile *fo)
{ {
readKernel(); readKernel();
@ -321,8 +308,8 @@ void PackVmlinuzI386::pack(OutputFile *fo)
const unsigned lsize = getLoaderSize(); const unsigned lsize = getLoaderSize();
defineFilterSymbols(linker, &ft);
defineDecompressorSymbols(); defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("src_for_decompressor", zimage_offset + lsize); linker->defineSymbol("src_for_decompressor", zimage_offset + lsize);
linker->defineSymbol("original_entry", physical_start); linker->defineSymbol("original_entry", physical_start);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression); 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_dest", physical_start + edi);
linker->defineSymbol("copy_source", bzimage_offset + esi); linker->defineSymbol("copy_source", bzimage_offset + esi);
defineFilterSymbols(linker, &ft); defineFilterSymbols(&ft);
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ft.buf_len); // redefine
assert(ft.buf_len == ph.u_len);
}
defineDecompressorSymbols(); defineDecompressorSymbols();
linker->defineSymbol("original_entry", physical_start); linker->defineSymbol("original_entry", physical_start);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression); 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 // import handling
**************************************************************************/ **************************************************************************/
@ -892,12 +878,9 @@ void PackW32Pe::pack(OutputFile *fo)
linker->defineSymbol("VirtualFree", myimport + get_le32(oimpdlls + 16) + 16); linker->defineSymbol("VirtualFree", myimport + get_le32(oimpdlls + 16) + 16);
#endif #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(); defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("filter_buffer_start", ih.codebase - rvamin);
// in case of overlapping decompression, this hack is needed, // in case of overlapping decompression, this hack is needed,
// because windoze zeroes the word pointed by tlsindex before // 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 const int *PackWcle::getFilters() const
{ {
static const int filters[] = { 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 }; FT_END };
return filters; 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 + linker->defineSymbol("original_stack", ih.init_esp_offset +
IOT(ih.init_ss_object - 1, my_base_address)); IOT(ih.init_ss_object - 1, my_base_address));
linker->defineSymbol("start_of_relocs", mps*pages); linker->defineSymbol("start_of_relocs", mps*pages);
defineFilterSymbols(linker, &ft);
linker->defineSymbol("filter_buffer_start", text_vaddr);
defineDecompressorSymbols(); defineDecompressorSymbols();
defineFilterSymbols(&ft);
linker->defineSymbol("filter_buffer_start", text_vaddr);
unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4; unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4;
linker->defineSymbol("words_to_copy", jpos); linker->defineSymbol("words_to_copy", jpos);

View File

@ -247,9 +247,9 @@ protected:
// filter handling [see packer_f.cpp] // filter handling [see packer_f.cpp]
virtual bool isValidFilter(int filter_id) const; 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 addFilter32(int filter_id);
virtual void defineFilterSymbols(const Filter *ft);
// stub and overlay util // stub and overlay util
static void handleStub(InputFile *fi, OutputFile *fo, long size); static void handleStub(InputFile *fi, OutputFile *fo, long size);

View File

@ -29,6 +29,7 @@
#include "conf.h" #include "conf.h"
#include "packer.h" #include "packer.h"
#include "filter.h" #include "filter.h"
#include "linker.h"
/************************************************************************* /*************************************************************************
@ -309,6 +310,54 @@ void Packer::addFilter32(int filter_id)
#undef MRUFLT #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 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) // 2nd param: where is cto8 (dl, bl, or literal)
section ctok32.00 section ctok32.00
.ifnc \addvalue, 0 .ifc \addvalue, edi
.ifnc \addvalue, esi
mov esi, \addvalue mov esi, \addvalue
.endif
.endif .endif
jmps ckstart jmps ckstart
ckloop3: ckloop3:

View File

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

View File

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

View File

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

View File

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

View File

@ -48,8 +48,8 @@ SYMBOL TABLE:
00000000 *UND* 00000000 METHOD 00000000 *UND* 00000000 METHOD
00000000 *UND* 00000000 COMPRESSED_LENGTH 00000000 *UND* 00000000 COMPRESSED_LENGTH
00000000 *UND* 00000000 UNCOMPRESSED_LENGTH 00000000 *UND* 00000000 UNCOMPRESSED_LENGTH
00000000 *UND* 00000000 CTO 00000000 *UND* 00000000 filter_cto
00000000 *UND* 00000000 FID 00000000 *UND* 00000000 filter_id
00000000 g F NRV2B 000000c4 ucl_nrv2b_decompress_8 00000000 g F NRV2B 000000c4 ucl_nrv2b_decompress_8
00000000 g F NRV2D 00000100 ucl_nrv2d_decompress_8 00000000 g F NRV2D 00000100 ucl_nrv2d_decompress_8
00000000 g F NRV2E 00000114 ucl_nrv2e_decompress_8 00000000 g F NRV2E 00000114 ucl_nrv2e_decompress_8
@ -65,8 +65,8 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [LINUX010]: RELOCATION RECORDS FOR [LINUX010]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000008 R_ARM_ABS8 CTO 00000008 R_ARM_ABS8 filter_cto
0000000c R_ARM_ABS8 FID 0000000c R_ARM_ABS8 filter_id
00000010 R_ARM_PC24 ctok32.00 00000010 R_ARM_PC24 ctok32.00
RELOCATION RECORDS FOR [ctok32.10]: 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 83 CTBROR11 00000002 00000000 00000000 0000194b 2**0 CONTENTS, READONLY
84 CTBSWA11 00000005 00000000 00000000 0000194d 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 85 CALLTR13 00000005 00000000 00000000 00001952 2**0 CONTENTS, RELOC, READONLY
86 DJRETURN 00000005 00000000 00000000 00001957 2**0 CONTENTS, RELOC, READONLY 86 ctok32.00 0000000c 00000000 00000000 00001957 2**0 CONTENTS, RELOC, READONLY
87 UPX1HEAD 00000020 00000000 00000000 0000195c 2**0 CONTENTS, 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: SYMBOL TABLE:
00000000 l d N2BSMA10 00000000 N2BSMA10 00000000 l d N2BSMA10 00000000 N2BSMA10
00000000 l d N2BFAS11 00000000 N2BFAS11 00000000 l d N2BFAS11 00000000 N2BFAS11
@ -119,6 +124,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10 00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11 00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13 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 DJ2MAIN1 00000000 DJ2MAIN1
00000000 l d DJCALLT1 00000000 DJCALLT1 00000000 l d DJCALLT1 00000000 DJCALLT1
00000000 l d DJ2MAIN2 00000000 DJ2MAIN2 00000000 l d DJ2MAIN2 00000000 DJ2MAIN2
@ -177,6 +186,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11 00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11 00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11 00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d DJRETURN 00000000 DJRETURN 00000000 l d DJRETURN 00000000 DJRETURN
00000000 l d UPX1HEAD 00000000 UPX1HEAD 00000000 l d UPX1HEAD 00000000 UPX1HEAD
00000000 *UND* 00000000 start_of_compressed 00000000 *UND* 00000000 start_of_compressed
@ -399,6 +409,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000004 R_386_PC8 CALLTR10 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]: RELOCATION RECORDS FOR [DJRETURN]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000001 R_386_PC32 original_entry 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 85 CTBROR11 00000002 00000000 00000000 0000196f 2**0 CONTENTS, READONLY
86 CTBSWA11 00000005 00000000 00000000 00001971 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 87 CALLTR13 00000007 00000000 00000000 00001976 2**0 CONTENTS, RELOC, READONLY
88 TMTRELOC 00000003 00000000 00000000 0000197d 2**0 CONTENTS, READONLY 88 ctok32.00 0000000c 00000000 00000000 0000197d 2**0 CONTENTS, RELOC, READONLY
89 RELOC320 00000029 00000000 00000000 00001980 2**0 CONTENTS, RELOC, READONLY 89 ctok32.10 0000000e 00000000 00000000 00001989 2**0 CONTENTS, RELOC, READONLY
90 REL32BIG 00000009 00000000 00000000 000019a9 2**0 CONTENTS, RELOC, READONLY 90 ctok32.20 00000022 00000000 00000000 00001997 2**0 CONTENTS, RELOC, READONLY
91 RELOC32J 00000002 00000000 00000000 000019b2 2**0 CONTENTS, RELOC, READONLY 91 ctok32.30 00000007 00000000 00000000 000019b9 2**0 CONTENTS, RELOC, READONLY
92 REL32END 00000000 00000000 00000000 000019b4 2**0 CONTENTS, READONLY 92 ctok32.40 00000005 00000000 00000000 000019c0 2**0 CONTENTS, RELOC, READONLY
93 TMTJUMP1 00000005 00000000 00000000 000019b4 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: SYMBOL TABLE:
00000000 l d TMTCUTPO 00000000 TMTCUTPO 00000000 l d TMTCUTPO 00000000 TMTCUTPO
00000000 l d N2BSMA10 00000000 N2BSMA10 00000000 l d N2BSMA10 00000000 N2BSMA10
@ -126,6 +131,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10 00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11 00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13 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 RELOC320 00000000 RELOC320
00000000 l d RELOC32J 00000000 RELOC32J 00000000 l d RELOC32J 00000000 RELOC32J
00000000 l d TMTMAIN1 00000000 TMTMAIN1 00000000 l d TMTMAIN1 00000000 TMTMAIN1
@ -187,6 +196,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11 00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11 00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11 00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d TMTRELOC 00000000 TMTRELOC 00000000 l d TMTRELOC 00000000 TMTRELOC
00000000 l d REL32BIG 00000000 REL32BIG 00000000 l d REL32BIG 00000000 REL32BIG
00000000 l d REL32END 00000000 REL32END 00000000 l d REL32END 00000000 REL32END
@ -410,6 +420,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000006 R_386_PC8 CALLTR10 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]: RELOCATION RECORDS FOR [RELOC320]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000008 R_386_PC8 RELOC32J 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 67 WCLEMAI2 00000009 00000000 00000000 00001927 2**0 CONTENTS, RELOC, READONLY
68 WCCTTPOS 00000006 00000000 00000000 00001930 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 69 WCCTTNUL 00000002 00000000 00000000 00001936 2**0 CONTENTS, READONLY
70 WCALLTR1 00000000 00000000 00000000 00001938 2**0 CONTENTS, READONLY 70 CALLTR00 0000000e 00000000 00000000 00001938 2**0 CONTENTS, RELOC, READONLY
71 CALLTR00 0000000e 00000000 00000000 00001938 2**0 CONTENTS, RELOC, READONLY 71 CTCLEVE1 00000005 00000000 00000000 00001946 2**0 CONTENTS, RELOC, READONLY
72 CTCLEVE1 00000005 00000000 00000000 00001946 2**0 CONTENTS, RELOC, READONLY 72 CALLTR01 00000005 00000000 00000000 0000194b 2**0 CONTENTS, READONLY
73 CALLTR01 00000005 00000000 00000000 0000194b 2**0 CONTENTS, READONLY 73 CTBSHR01 00000004 00000000 00000000 00001950 2**0 CONTENTS, READONLY
74 CTBSHR01 00000004 00000000 00000000 00001950 2**0 CONTENTS, READONLY 74 CTBROR01 00000002 00000000 00000000 00001954 2**0 CONTENTS, READONLY
75 CTBROR01 00000002 00000000 00000000 00001954 2**0 CONTENTS, READONLY 75 CTBSWA01 00000005 00000000 00000000 00001956 2**0 CONTENTS, READONLY
76 CTBSWA01 00000005 00000000 00000000 00001956 2**0 CONTENTS, READONLY 76 CALLTR02 00000010 00000000 00000000 0000195b 2**0 CONTENTS, RELOC, READONLY
77 CALLTR02 00000010 00000000 00000000 0000195b 2**0 CONTENTS, RELOC, READONLY 77 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY
78 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY 78 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY
79 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY 79 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY
80 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY 80 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY
81 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY 81 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY
82 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY 82 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
83 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY 83 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY
84 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY 84 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY
85 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY 85 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY
86 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY 86 CALLTR13 00000007 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY
87 CALLTR13 00000007 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY 87 ctok32.00 0000000c 00000000 00000000 00001991 2**0 CONTENTS, RELOC, READONLY
88 WCRELOC1 00000003 00000000 00000000 00001991 2**0 CONTENTS, READONLY 88 ctok32.10 0000000e 00000000 00000000 0000199d 2**0 CONTENTS, RELOC, READONLY
89 RELOC320 00000029 00000000 00000000 00001994 2**0 CONTENTS, RELOC, READONLY 89 ctok32.20 00000022 00000000 00000000 000019ab 2**0 CONTENTS, RELOC, READONLY
90 REL32BIG 00000009 00000000 00000000 000019bd 2**0 CONTENTS, RELOC, READONLY 90 ctok32.30 00000007 00000000 00000000 000019cd 2**0 CONTENTS, RELOC, READONLY
91 RELOC32J 00000002 00000000 00000000 000019c6 2**0 CONTENTS, RELOC, READONLY 91 ctok32.40 00000005 00000000 00000000 000019d4 2**0 CONTENTS, RELOC, READONLY
92 REL32END 00000000 00000000 00000000 000019c8 2**0 CONTENTS, READONLY 92 WCRELOC1 00000003 00000000 00000000 000019d9 2**0 CONTENTS, READONLY
93 WCRELSEL 00000002 00000000 00000000 000019c8 2**0 CONTENTS, READONLY 93 RELOC320 00000029 00000000 00000000 000019dc 2**0 CONTENTS, RELOC, READONLY
94 WCLEMAI4 00000015 00000000 00000000 000019ca 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: SYMBOL TABLE:
00000000 l d WCLECUTP 00000000 WCLECUTP 00000000 l d WCLECUTP 00000000 WCLECUTP
00000000 l d N2BSMA10 00000000 N2BSMA10 00000000 l d N2BSMA10 00000000 N2BSMA10
@ -127,6 +131,10 @@ SYMBOL TABLE:
00000000 l d CALLTR10 00000000 CALLTR10 00000000 l d CALLTR10 00000000 CALLTR10
00000000 l d CALLTR11 00000000 CALLTR11 00000000 l d CALLTR11 00000000 CALLTR11
00000000 l d CALLTR13 00000000 CALLTR13 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 RELOC320 00000000 RELOC320
00000000 l d RELOC32J 00000000 RELOC32J 00000000 l d RELOC32J 00000000 RELOC32J
00000000 l d WCLEMAIN 00000000 WCLEMAIN 00000000 l d WCLEMAIN 00000000 WCLEMAIN
@ -174,7 +182,6 @@ SYMBOL TABLE:
00000000 l d WCLEMAI2 00000000 WCLEMAI2 00000000 l d WCLEMAI2 00000000 WCLEMAI2
00000000 l d WCCTTPOS 00000000 WCCTTPOS 00000000 l d WCCTTPOS 00000000 WCCTTPOS
00000000 l d WCCTTNUL 00000000 WCCTTNUL 00000000 l d WCCTTNUL 00000000 WCCTTNUL
00000000 l d WCALLTR1 00000000 WCALLTR1
00000000 l d CTCLEVE1 00000000 CTCLEVE1 00000000 l d CTCLEVE1 00000000 CTCLEVE1
00000000 l d CALLTR01 00000000 CALLTR01 00000000 l d CALLTR01 00000000 CALLTR01
00000000 l d CTBSHR01 00000000 CTBSHR01 00000000 l d CTBSHR01 00000000 CTBSHR01
@ -188,6 +195,7 @@ SYMBOL TABLE:
00000000 l d CTBSHR11 00000000 CTBSHR11 00000000 l d CTBSHR11 00000000 CTBSHR11
00000000 l d CTBROR11 00000000 CTBROR11 00000000 l d CTBROR11 00000000 CTBROR11
00000000 l d CTBSWA11 00000000 CTBSWA11 00000000 l d CTBSWA11 00000000 CTBSWA11
00000000 l d ctok32.30 00000000 ctok32.30
00000000 l d WCRELOC1 00000000 WCRELOC1 00000000 l d WCRELOC1 00000000 WCRELOC1
00000000 l d REL32BIG 00000000 REL32BIG 00000000 l d REL32BIG 00000000 REL32BIG
00000000 l d REL32END 00000000 REL32END 00000000 l d REL32END 00000000 REL32END
@ -420,6 +428,29 @@ RELOCATION RECORDS FOR [CALLTR13]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000006 R_386_PC8 CALLTR10 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]: RELOCATION RECORDS FOR [RELOC320]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000008 R_386_PC8 RELOC32J 00000008 R_386_PC8 RELOC32J