Bvmlinuz fix filters

This commit is contained in:
John Reiser 2008-04-26 13:04:13 -07:00
parent 50668c462f
commit 1c62e95812
5 changed files with 2022 additions and 1956 deletions

View File

@ -73,6 +73,15 @@ const int *PackVmlinuzI386::getFilters() const
return filters;
}
const int *PackBvmlinuzI386::getFilters() const
{
// The destination buffer might be relocated at runtime.
static const int filters[] = {
0x49, 0x46,
FT_END };
return filters;
}
bool PackVmlinuzI386::canPack()
{
@ -438,9 +447,11 @@ void PackBvmlinuzI386::buildLoader(const Filter *ft)
// prepare loader
initLoader(stub_i386_linux_kernel_vmlinuz, sizeof(stub_i386_linux_kernel_vmlinuz));
if (0!=page_offset) { // relocatable kernel
assert(0==ft->id || 0x40==(0xf0 & ft->id)); // others assume fixed buffer address
addLoader("LINUZ000,LINUZVGA,LINUZ101,LINUZ110",
((0!=config_physical_align) ? "LINUZ120" : "LINUZ130"),
"LINUZ140,LZCUTPOI",
"LINUZ140,LZCUTPOI,LINUZ141",
(ft->id ? "LINUZ145" : ""),
(ph.first_offset_found == 1 ? "LINUZ010" : ""),
NULL);
}
@ -454,7 +465,7 @@ void PackBvmlinuzI386::buildLoader(const Filter *ft)
"LZCUTPOI",
NULL);
// fake alignment for the start of the decompressor
linker->defineSymbol("LZCUTPOI", 0x1000);
//linker->defineSymbol("LZCUTPOI", 0x1000);
}
addLoader(getDecompressorSections(), NULL);
@ -471,10 +482,10 @@ void PackBvmlinuzI386::buildLoader(const Filter *ft)
addFilter32(ft->id);
}
if (0!=page_offset) {
addLoader("LINUZ150", NULL);
addLoader("LINUZ150,IDENTSTR,+40,UPX1HEAD", NULL);
unsigned const l_len = getLoaderSize();
unsigned const c_len = ALIGN_UP(ph.c_len, 4u);
unsigned const e_len = getLoaderSectionStart("LZCUTPOI") -
unsigned const e_len = getLoaderSectionStart("LINUZ141") -
getLoaderSectionStart("LINUZ110");
linker->defineSymbol("compressed_length", c_len);
linker->defineSymbol("load_physical_address", physical_start); // FIXME
@ -487,7 +498,6 @@ void PackBvmlinuzI386::buildLoader(const Filter *ft)
linker->defineSymbol("unc_length", ph.u_len);
linker->defineSymbol("dec_offset", ph.overlap_overhead + e_len);
linker->defineSymbol("unc_offset", ph.overlap_overhead + ph.u_len - c_len);
addLoader("IDENTSTR,+40,UPX1HEAD", NULL);
}
else {
addLoader("LINUZ990", NULL);
@ -502,11 +512,11 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
// prepare filter
Filter ft(ph.level);
ft.buf_len = ph.u_len;
ft.addvalue = physical_start; // saves 4 bytes in unfilter code
ft.addvalue = 0; // The destination buffer might be relocated at runtime.
upx_compress_config_t cconf; cconf.reset();
// limit stack size needed for runtime decompression
cconf.conf_lzma.max_num_probs = 1846 + (768 << 8); // ushort: ~28KB stack
cconf.conf_lzma.max_num_probs = 1846 + (768 << 4); // ushort: ~28KB stack
// FIXME: new stub allows most of low memory as stack for Bvmlinuz ?
//cconf.conf_lzma.max_num_probs = (0x99000 - 0x10250)>>1; // ushort: 560560 stack
@ -539,21 +549,25 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
const int e_len = getLoaderSectionStart("LZCUTPOI");
assert(e_len > 0);
const unsigned d_len4 = ALIGN_UP(lsize - e_len, 4u);
const unsigned decompr_pos = ALIGN_UP(ph.u_len + ph.overlap_overhead, 16u);
const unsigned copy_size = c_len + d_len4;
const unsigned edi = decompr_pos + d_len4 - 4; // copy to
const unsigned esi = ALIGN_UP(c_len + lsize, 4u) - 4; // copy from
if (0==page_offset) { // not relocatable kernel
const unsigned d_len4 = ALIGN_UP(lsize - e_len, 4u);
const unsigned decompr_pos = ALIGN_UP(ph.u_len + ph.overlap_overhead, 16u);
const unsigned copy_size = c_len + d_len4;
const unsigned edi = decompr_pos + d_len4 - 4; // copy to
const unsigned esi = ALIGN_UP(c_len + lsize, 4u) - 4; // copy from
linker->defineSymbol("decompressor", decompr_pos - bzimage_offset + physical_start);
linker->defineSymbol("src_for_decompressor", physical_start + decompr_pos - c_len);
linker->defineSymbol("words_to_copy", copy_size / 4);
linker->defineSymbol("copy_dest", physical_start + edi);
linker->defineSymbol("copy_source", bzimage_offset + esi);
linker->defineSymbol("decompressor", decompr_pos - bzimage_offset + physical_start);
linker->defineSymbol("src_for_decompressor", physical_start + decompr_pos - c_len);
linker->defineSymbol("words_to_copy", copy_size / 4);
linker->defineSymbol("copy_dest", physical_start + edi);
linker->defineSymbol("copy_source", bzimage_offset + esi);
}
defineFilterSymbols(&ft);
defineDecompressorSymbols();
linker->defineSymbol("original_entry", physical_start);
if (0==page_offset) {
linker->defineSymbol("original_entry", physical_start);
}
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
relocateLoader();

View File

@ -105,6 +105,7 @@ public:
virtual int getFormat() const { return UPX_F_BVMLINUZ_i386; }
virtual const char *getName() const { return "bvmlinuz/386"; }
virtual const char *getFullName(const options_t *) const { return "i386-linux.kernel.bvmlinuz"; }
virtual const int *getFilters() const;
virtual void pack(OutputFile *fo);

File diff suppressed because it is too large Load Diff

View File

@ -49,7 +49,10 @@ si_lfb_height = 0x14
si_lfb_depth = 0x16
si_lfb_base = 0x18
si_lfb_size = 0x1c
//si_dontuse2, dontuse3 = 0x20 // CL_MAGIC and CL_OFFSET here
BP_cmd_line_magic = 0x20 // protocol < 2.02, or if null pointer
BP_cmd_line_offset = 0x22 // protocol < 2.02, or if null pointer
si_lfb_linelength = 0x24
si_red_size = 0x26
si_red_pos = 0x27
@ -251,19 +254,30 @@ L03:
// If the kernel command line ends below (0x99800 - cmd_exp), then move it up.
cmd_exp = 80 // allow kernel to expand command line "in place" by this much
cmpw [esi+ BP_version],0x202; jb nbp202 // boot protocol too old
mov ebp,esi // save register
mov esi,[esi+ BP_cmd_line_ptr]
cmpw [esi+ BP_version],0x202; jae cl_bp202
cl_nbp202: // use < 2.02 method. in: ebp= real_mode_ptr
mov esi,ebp // absolute worst case default
cmpw [ebp+ BP_cmd_line_magic],0xA33F; jne cl_move // nothing at all
movzwl esi,[ebp+ BP_cmd_line_offset]
add esi,ebp
jmp cl_move
cl_bp202: // try >= 2.02 method
mov esi,[esi+ BP_cmd_line_ptr] // supposed pointer
test esi,esi; jz cl_nbp202 // not really!
cl_move: // in: esi= cmd_line_ptr; ebp= real_mode_ptr
sub ecx,ecx // length
0:
lodsb; inc ecx; cmpb al,0; jne 0b // find end and 1+strlen
mov edx,edi // save register
mov edi,0x99800 - cmd_exp -1; lea eax,[edi + cmd_exp]
dec esi; cmp esi,edi; jae 8f
std; rep movsb; cld // move command line bytes
inc edi; mov [ebp+ BP_cmd_line_ptr],edi
sub eax,edi; mov [ebp+ BP_cmdline_size],eax // maximum strlen
mov edi,0x99800 - cmd_exp; lea eax,[edi + cmd_exp -1]
cmp esi,edi; jae 8f
dec edi; dec esi; std; rep movsb; cld // move command line bytes
inc edi; mov [ebp+ BP_cmd_line_ptr],edi
sub eax,edi; mov [ebp+ BP_cmdline_size],eax // maximum strlen
mov eax,edi
sub eax,ebp; movw [ebp+ BP_cmd_line_offset],ax // backward compat
and edi,~3 // word align down
mov [edi-8],edi
@ -278,10 +292,11 @@ nbp202:
// If the real mode segment is above the floor, then move it down.
// The default floor is 0x90000, but 0x10000 (64K) for confirmed bzImage.
// But due to possible complications with BP_cmd_line_offset, keep 0x90000.
push edi; mov edi,0x90000 // save register
cmpw [esi+ BP_version],0x200; jb 8f // boot protocol too old
testb [esi+ BP_loadflags],LOADED_HIGH; jz 8f // not bzImage
mov edi,0x10000
mov edi,0x90000
8:
push edi; mov ecx,0x250>>2; rep movsd
pop esi // new real mode pointer
@ -341,19 +356,24 @@ section LINUZ140
lea edx,[unc_length + edi]
mov esi,ebp // src for move
push edx // MATCH20 end of relocation info
add edx,offset (dec_offset - (L29 - L27)) // &decompressor (reloc)
add edx,offset dec_offset // &LZCUTPOI
push edi // MATCH21 runtime entry
add edi,offset unc_offset // dst for move ( + u_len - c_len )
push edi // MATCH22 &compressed (reloc)
mov ecx,offset neg_length_mov
push edx // MATCH23 &decompressor (reloc)
jmp eax // moveloop (reloc); MATCH23 return: &decompressor (reloc)
L27:
jmp eax // moveloop (reloc); MATCH23 return: &LINUZ141 (reloc)
// assumed location of LZCUTPOI >>here<< [0== length(LZCUTPOI)]
section LINUZ141 // one-time prolog to decompressor
pop esi // MATCH22 &compressed (reloc)
pop edi // MATCH21 &uncompressed
push edi // MATCH24 runtime entry
section LINUZ145 // only if filter
push edi // MATCH03 src unfilter
L29: // assumed location of LZCUTPOI
//push offset filter_cto // MATCH04 cto unfilter
.byte 0x6a, filter_cto // MATCH04 cto unfilter
push offset filter_length // MATCH05 len unfilter
// decompressor and unfilter >>here<<
@ -378,9 +398,9 @@ L40:
xor ebx,ebx // processor 0
jmp ebp // entry to decompressed
section LZCALLT1
section LZCALLT1 // 0x40!=(0xf0 & ft->id)
push eax // MATCH03 src unfilter
section LZCKLLT1
section LZCKLLT1 // 0x40==(0xf0 & ft->id)
push eax // MATCH03 src unfilter
//push offset filter_cto // MATCH04 cto unfilter
.byte 0x6a, filter_cto // MATCH04 cto unfilter
@ -432,14 +452,7 @@ section LZCKLLT9
pop edx // MATCH04 cto
pop edi // MATCH03 src
ctok32 0, dl // dl has cto8
/*
;0: Filter.addvalue = kernel_entry already did the 'add' at filter time
;[the runtime address of the destination was known], so we save 4 bytes
;(plus 1 cycle per instance) by not doing the 'add' when unfiltering.
;If .addvalue was 0, then use 'edi' instead of 0 in call to ckt32,
;to compensate for difference in origin of buffer.
*/
ctok32 edi, dl // dl has cto8
section LZCALLT9
pop edi // MATCH03 src

View File

@ -3,108 +3,110 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 LINUZVGA 00000000 00000000 00000000 00000034 2**0 CONTENTS, READONLY
1 LINUZ000 0000008c 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
2 LINUZ001 00000009 00000000 00000000 000000c0 2**0 CONTENTS, RELOC, READONLY
3 LINUZ010 00000003 00000000 00000000 000000c9 2**0 CONTENTS, READONLY
4 LINUZ101 00000005 00000000 00000000 000000cc 2**0 CONTENTS, RELOC, READONLY
5 LINUZ110 0000002d 00000000 00000000 000000d1 2**0 CONTENTS, READONLY
6 LINUZ120 0000000c 00000000 00000000 000000fe 2**0 CONTENTS, RELOC, READONLY
7 LINUZ130 00000005 00000000 00000000 0000010a 2**0 CONTENTS, RELOC, READONLY
8 LINUZ140 00000026 00000000 00000000 0000010f 2**0 CONTENTS, RELOC, READONLY
9 LINUZ150 00000022 00000000 00000000 00000135 2**0 CONTENTS, RELOC, READONLY
10 LZCALLT1 00000001 00000000 00000000 00000157 2**0 CONTENTS, READONLY
11 LZCKLLT1 00000008 00000000 00000000 00000158 2**0 CONTENTS, RELOC, READONLY
12 LBZIMAGE 0000001e 00000000 00000000 00000160 2**0 CONTENTS, RELOC, READONLY
13 LZIMAGE0 0000000f 00000000 00000000 0000017e 2**0 CONTENTS, RELOC, READONLY
14 LZCUTPOI 00000000 00000000 00000000 0000018d 2**0 CONTENTS, READONLY
15 N2BSMA10 00000003 00000000 00000000 0000018d 2**0 CONTENTS, RELOC, READONLY
16 N2BFAS10 00000002 00000000 00000000 00000190 2**0 CONTENTS, RELOC, READONLY
17 N2BFAS11 00000006 00000000 00000000 00000192 2**0 CONTENTS, READONLY
18 N2BDEC10 0000000b 00000000 00000000 00000198 2**0 CONTENTS, READONLY
19 N2BSMA20 00000005 00000000 00000000 000001a3 2**0 CONTENTS, RELOC, READONLY
20 N2BFAS20 00000009 00000000 00000000 000001a8 2**0 CONTENTS, RELOC, READONLY
21 N2BDEC20 0000000d 00000000 00000000 000001b1 2**0 CONTENTS, READONLY
22 N2BSMA30 0000000d 00000000 00000000 000001be 2**0 CONTENTS, RELOC, READONLY
23 N2BFAS30 0000000f 00000000 00000000 000001cb 2**0 CONTENTS, RELOC, READONLY
24 N2BDEC30 0000003e 00000000 00000000 000001da 2**0 CONTENTS, RELOC, READONLY
25 N2BSMA40 0000000d 00000000 00000000 00000218 2**0 CONTENTS, RELOC, READONLY
26 N2BFAS40 0000000f 00000000 00000000 00000225 2**0 CONTENTS, RELOC, READONLY
27 N2BSMA50 00000002 00000000 00000000 00000234 2**0 CONTENTS, READONLY
28 N2BFAS50 00000003 00000000 00000000 00000236 2**0 CONTENTS, READONLY
29 N2BDEC50 00000009 00000000 00000000 00000239 2**0 CONTENTS, READONLY
30 N2BSMA60 0000000c 00000000 00000000 00000242 2**0 CONTENTS, RELOC, READONLY
31 N2BFAS60 00000019 00000000 00000000 0000024e 2**0 CONTENTS, RELOC, READONLY
32 N2BFAS61 00000016 00000000 00000000 00000267 2**0 CONTENTS, RELOC, READONLY
33 N2BDEC60 00000000 00000000 00000000 0000027d 2**0 CONTENTS, READONLY
34 N2DSMA10 00000003 00000000 00000000 0000027d 2**0 CONTENTS, RELOC, READONLY
35 N2DFAS10 00000002 00000000 00000000 00000280 2**0 CONTENTS, RELOC, READONLY
36 N2DFAS11 00000006 00000000 00000000 00000282 2**0 CONTENTS, READONLY
37 N2DDEC10 0000000b 00000000 00000000 00000288 2**0 CONTENTS, READONLY
38 N2DSMA20 00000005 00000000 00000000 00000293 2**0 CONTENTS, RELOC, READONLY
39 N2DFAS20 00000009 00000000 00000000 00000298 2**0 CONTENTS, RELOC, READONLY
40 N2DDEC20 0000000d 00000000 00000000 000002a1 2**0 CONTENTS, READONLY
41 N2DSMA30 0000000d 00000000 00000000 000002ae 2**0 CONTENTS, RELOC, READONLY
42 N2DFAS30 0000000f 00000000 00000000 000002bb 2**0 CONTENTS, RELOC, READONLY
43 N2DDEC30 00000052 00000000 00000000 000002ca 2**0 CONTENTS, RELOC, READONLY
44 N2DSMA40 0000000d 00000000 00000000 0000031c 2**0 CONTENTS, RELOC, READONLY
45 N2DFAS40 0000000f 00000000 00000000 00000329 2**0 CONTENTS, RELOC, READONLY
46 N2DSMA50 00000002 00000000 00000000 00000338 2**0 CONTENTS, READONLY
47 N2DFAS50 00000003 00000000 00000000 0000033a 2**0 CONTENTS, READONLY
48 N2DDEC50 00000009 00000000 00000000 0000033d 2**0 CONTENTS, READONLY
49 N2DSMA60 0000000c 00000000 00000000 00000346 2**0 CONTENTS, RELOC, READONLY
50 N2DFAS60 00000019 00000000 00000000 00000352 2**0 CONTENTS, RELOC, READONLY
51 N2DFAS61 00000016 00000000 00000000 0000036b 2**0 CONTENTS, RELOC, READONLY
52 N2DDEC60 00000000 00000000 00000000 00000381 2**0 CONTENTS, READONLY
53 N2ESMA10 00000003 00000000 00000000 00000381 2**0 CONTENTS, RELOC, READONLY
54 N2EFAS10 00000002 00000000 00000000 00000384 2**0 CONTENTS, RELOC, READONLY
55 N2EFAS11 00000006 00000000 00000000 00000386 2**0 CONTENTS, READONLY
56 N2EDEC10 0000000b 00000000 00000000 0000038c 2**0 CONTENTS, READONLY
57 N2ESMA20 00000005 00000000 00000000 00000397 2**0 CONTENTS, RELOC, READONLY
58 N2EFAS20 00000009 00000000 00000000 0000039c 2**0 CONTENTS, RELOC, READONLY
59 N2EDEC20 0000000d 00000000 00000000 000003a5 2**0 CONTENTS, READONLY
60 N2ESMA30 0000000d 00000000 00000000 000003b2 2**0 CONTENTS, RELOC, READONLY
61 N2EFAS30 0000000f 00000000 00000000 000003bf 2**0 CONTENTS, RELOC, READONLY
62 N2EDEC30 0000005f 00000000 00000000 000003ce 2**0 CONTENTS, RELOC, READONLY
63 N2ESMA40 0000000d 00000000 00000000 0000042d 2**0 CONTENTS, RELOC, READONLY
64 N2EFAS40 0000000f 00000000 00000000 0000043a 2**0 CONTENTS, RELOC, READONLY
65 N2ESMA50 00000002 00000000 00000000 00000449 2**0 CONTENTS, READONLY
66 N2EFAS50 00000003 00000000 00000000 0000044b 2**0 CONTENTS, READONLY
67 N2EDEC50 00000009 00000000 00000000 0000044e 2**0 CONTENTS, READONLY
68 N2ESMA60 0000000c 00000000 00000000 00000457 2**0 CONTENTS, RELOC, READONLY
69 N2EFAS60 00000019 00000000 00000000 00000463 2**0 CONTENTS, RELOC, READONLY
70 N2EFAS61 00000016 00000000 00000000 0000047c 2**0 CONTENTS, RELOC, READONLY
71 N2EDEC60 00000000 00000000 00000000 00000492 2**0 CONTENTS, READONLY
72 LZMA_DEC00 0000002e 00000000 00000000 00000492 2**0 CONTENTS, RELOC, READONLY
73 LZMA_ELF00 00000048 00000000 00000000 000004c0 2**0 CONTENTS, READONLY
74 LZMA_DEC10 00000a86 00000000 00000000 00000508 2**0 CONTENTS, READONLY
75 LZMA_DEC20 00000a86 00000000 00000000 00000f8e 2**0 CONTENTS, READONLY
76 LZMA_DEC30 0000001a 00000000 00000000 00001a14 2**0 CONTENTS, READONLY
77 LZCKLLT9 00000003 00000000 00000000 00001a2e 2**0 CONTENTS, READONLY
78 ctok32.00 00000007 00000000 00000000 00001a31 2**0 CONTENTS, RELOC, READONLY
79 ctok32.10 0000000e 00000000 00000000 00001a38 2**0 CONTENTS, RELOC, READONLY
80 ctok32.20 0000001f 00000000 00000000 00001a46 2**0 CONTENTS, RELOC, READONLY
81 ctok32.30 00000007 00000000 00000000 00001a65 2**0 CONTENTS, RELOC, READONLY
82 ctok32.40 00000005 00000000 00000000 00001a6c 2**0 CONTENTS, RELOC, READONLY
83 LZCALLT9 00000001 00000000 00000000 00001a71 2**0 CONTENTS, READONLY
84 CALLTR00 0000000e 00000000 00000000 00001a72 2**0 CONTENTS, RELOC, READONLY
85 CTCLEVE1 00000005 00000000 00000000 00001a80 2**0 CONTENTS, RELOC, READONLY
86 CALLTR01 00000005 00000000 00000000 00001a85 2**0 CONTENTS, READONLY
87 CTBSHR01 00000004 00000000 00000000 00001a8a 2**0 CONTENTS, READONLY
88 CTBROR01 00000002 00000000 00000000 00001a8e 2**0 CONTENTS, READONLY
89 CTBSWA01 00000005 00000000 00000000 00001a90 2**0 CONTENTS, READONLY
90 CALLTR02 0000000e 00000000 00000000 00001a95 2**0 CONTENTS, RELOC, READONLY
91 CALLTR10 00000005 00000000 00000000 00001aa3 2**0 CONTENTS, RELOC, READONLY
92 CALLTRE8 00000002 00000000 00000000 00001aa8 2**0 CONTENTS, READONLY
93 CALLTRE9 00000002 00000000 00000000 00001aaa 2**0 CONTENTS, READONLY
94 CALLTR11 00000004 00000000 00000000 00001aac 2**0 CONTENTS, RELOC, READONLY
95 CTCLEVE2 00000005 00000000 00000000 00001ab0 2**0 CONTENTS, RELOC, READONLY
96 CALLTR12 00000002 00000000 00000000 00001ab5 2**0 CONTENTS, READONLY
97 CTBSHR11 00000004 00000000 00000000 00001ab7 2**0 CONTENTS, READONLY
98 CTBROR11 00000002 00000000 00000000 00001abb 2**0 CONTENTS, READONLY
99 CTBSWA11 00000005 00000000 00000000 00001abd 2**0 CONTENTS, READONLY
100 CALLTR13 00000005 00000000 00000000 00001ac2 2**0 CONTENTS, RELOC, READONLY
101 LINUZ990 00000005 00000000 00000000 00001ac7 2**0 CONTENTS, READONLY
102 UPX1HEAD 00000020 00000000 00000000 00001acc 2**0 CONTENTS, READONLY
1 LINUZ000 000000ab 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
2 LINUZ001 00000009 00000000 00000000 000000df 2**0 CONTENTS, RELOC, READONLY
3 LINUZ010 00000003 00000000 00000000 000000e8 2**0 CONTENTS, READONLY
4 LINUZ101 00000005 00000000 00000000 000000eb 2**0 CONTENTS, RELOC, READONLY
5 LINUZ110 0000002d 00000000 00000000 000000f0 2**0 CONTENTS, READONLY
6 LINUZ120 0000000c 00000000 00000000 0000011d 2**0 CONTENTS, RELOC, READONLY
7 LINUZ130 00000005 00000000 00000000 00000129 2**0 CONTENTS, RELOC, READONLY
8 LINUZ140 00000022 00000000 00000000 0000012e 2**0 CONTENTS, RELOC, READONLY
9 LINUZ141 00000003 00000000 00000000 00000150 2**0 CONTENTS, READONLY
10 LINUZ145 00000008 00000000 00000000 00000153 2**0 CONTENTS, RELOC, READONLY
11 LINUZ150 00000022 00000000 00000000 0000015b 2**0 CONTENTS, RELOC, READONLY
12 LZCALLT1 00000001 00000000 00000000 0000017d 2**0 CONTENTS, READONLY
13 LZCKLLT1 00000008 00000000 00000000 0000017e 2**0 CONTENTS, RELOC, READONLY
14 LBZIMAGE 0000001e 00000000 00000000 00000186 2**0 CONTENTS, RELOC, READONLY
15 LZIMAGE0 0000000f 00000000 00000000 000001a4 2**0 CONTENTS, RELOC, READONLY
16 LZCUTPOI 00000000 00000000 00000000 000001b3 2**0 CONTENTS, READONLY
17 N2BSMA10 00000003 00000000 00000000 000001b3 2**0 CONTENTS, RELOC, READONLY
18 N2BFAS10 00000002 00000000 00000000 000001b6 2**0 CONTENTS, RELOC, READONLY
19 N2BFAS11 00000006 00000000 00000000 000001b8 2**0 CONTENTS, READONLY
20 N2BDEC10 0000000b 00000000 00000000 000001be 2**0 CONTENTS, READONLY
21 N2BSMA20 00000005 00000000 00000000 000001c9 2**0 CONTENTS, RELOC, READONLY
22 N2BFAS20 00000009 00000000 00000000 000001ce 2**0 CONTENTS, RELOC, READONLY
23 N2BDEC20 0000000d 00000000 00000000 000001d7 2**0 CONTENTS, READONLY
24 N2BSMA30 0000000d 00000000 00000000 000001e4 2**0 CONTENTS, RELOC, READONLY
25 N2BFAS30 0000000f 00000000 00000000 000001f1 2**0 CONTENTS, RELOC, READONLY
26 N2BDEC30 0000003e 00000000 00000000 00000200 2**0 CONTENTS, RELOC, READONLY
27 N2BSMA40 0000000d 00000000 00000000 0000023e 2**0 CONTENTS, RELOC, READONLY
28 N2BFAS40 0000000f 00000000 00000000 0000024b 2**0 CONTENTS, RELOC, READONLY
29 N2BSMA50 00000002 00000000 00000000 0000025a 2**0 CONTENTS, READONLY
30 N2BFAS50 00000003 00000000 00000000 0000025c 2**0 CONTENTS, READONLY
31 N2BDEC50 00000009 00000000 00000000 0000025f 2**0 CONTENTS, READONLY
32 N2BSMA60 0000000c 00000000 00000000 00000268 2**0 CONTENTS, RELOC, READONLY
33 N2BFAS60 00000019 00000000 00000000 00000274 2**0 CONTENTS, RELOC, READONLY
34 N2BFAS61 00000016 00000000 00000000 0000028d 2**0 CONTENTS, RELOC, READONLY
35 N2BDEC60 00000000 00000000 00000000 000002a3 2**0 CONTENTS, READONLY
36 N2DSMA10 00000003 00000000 00000000 000002a3 2**0 CONTENTS, RELOC, READONLY
37 N2DFAS10 00000002 00000000 00000000 000002a6 2**0 CONTENTS, RELOC, READONLY
38 N2DFAS11 00000006 00000000 00000000 000002a8 2**0 CONTENTS, READONLY
39 N2DDEC10 0000000b 00000000 00000000 000002ae 2**0 CONTENTS, READONLY
40 N2DSMA20 00000005 00000000 00000000 000002b9 2**0 CONTENTS, RELOC, READONLY
41 N2DFAS20 00000009 00000000 00000000 000002be 2**0 CONTENTS, RELOC, READONLY
42 N2DDEC20 0000000d 00000000 00000000 000002c7 2**0 CONTENTS, READONLY
43 N2DSMA30 0000000d 00000000 00000000 000002d4 2**0 CONTENTS, RELOC, READONLY
44 N2DFAS30 0000000f 00000000 00000000 000002e1 2**0 CONTENTS, RELOC, READONLY
45 N2DDEC30 00000052 00000000 00000000 000002f0 2**0 CONTENTS, RELOC, READONLY
46 N2DSMA40 0000000d 00000000 00000000 00000342 2**0 CONTENTS, RELOC, READONLY
47 N2DFAS40 0000000f 00000000 00000000 0000034f 2**0 CONTENTS, RELOC, READONLY
48 N2DSMA50 00000002 00000000 00000000 0000035e 2**0 CONTENTS, READONLY
49 N2DFAS50 00000003 00000000 00000000 00000360 2**0 CONTENTS, READONLY
50 N2DDEC50 00000009 00000000 00000000 00000363 2**0 CONTENTS, READONLY
51 N2DSMA60 0000000c 00000000 00000000 0000036c 2**0 CONTENTS, RELOC, READONLY
52 N2DFAS60 00000019 00000000 00000000 00000378 2**0 CONTENTS, RELOC, READONLY
53 N2DFAS61 00000016 00000000 00000000 00000391 2**0 CONTENTS, RELOC, READONLY
54 N2DDEC60 00000000 00000000 00000000 000003a7 2**0 CONTENTS, READONLY
55 N2ESMA10 00000003 00000000 00000000 000003a7 2**0 CONTENTS, RELOC, READONLY
56 N2EFAS10 00000002 00000000 00000000 000003aa 2**0 CONTENTS, RELOC, READONLY
57 N2EFAS11 00000006 00000000 00000000 000003ac 2**0 CONTENTS, READONLY
58 N2EDEC10 0000000b 00000000 00000000 000003b2 2**0 CONTENTS, READONLY
59 N2ESMA20 00000005 00000000 00000000 000003bd 2**0 CONTENTS, RELOC, READONLY
60 N2EFAS20 00000009 00000000 00000000 000003c2 2**0 CONTENTS, RELOC, READONLY
61 N2EDEC20 0000000d 00000000 00000000 000003cb 2**0 CONTENTS, READONLY
62 N2ESMA30 0000000d 00000000 00000000 000003d8 2**0 CONTENTS, RELOC, READONLY
63 N2EFAS30 0000000f 00000000 00000000 000003e5 2**0 CONTENTS, RELOC, READONLY
64 N2EDEC30 0000005f 00000000 00000000 000003f4 2**0 CONTENTS, RELOC, READONLY
65 N2ESMA40 0000000d 00000000 00000000 00000453 2**0 CONTENTS, RELOC, READONLY
66 N2EFAS40 0000000f 00000000 00000000 00000460 2**0 CONTENTS, RELOC, READONLY
67 N2ESMA50 00000002 00000000 00000000 0000046f 2**0 CONTENTS, READONLY
68 N2EFAS50 00000003 00000000 00000000 00000471 2**0 CONTENTS, READONLY
69 N2EDEC50 00000009 00000000 00000000 00000474 2**0 CONTENTS, READONLY
70 N2ESMA60 0000000c 00000000 00000000 0000047d 2**0 CONTENTS, RELOC, READONLY
71 N2EFAS60 00000019 00000000 00000000 00000489 2**0 CONTENTS, RELOC, READONLY
72 N2EFAS61 00000016 00000000 00000000 000004a2 2**0 CONTENTS, RELOC, READONLY
73 N2EDEC60 00000000 00000000 00000000 000004b8 2**0 CONTENTS, READONLY
74 LZMA_DEC00 0000002e 00000000 00000000 000004b8 2**0 CONTENTS, RELOC, READONLY
75 LZMA_ELF00 00000048 00000000 00000000 000004e6 2**0 CONTENTS, READONLY
76 LZMA_DEC10 00000a86 00000000 00000000 0000052e 2**0 CONTENTS, READONLY
77 LZMA_DEC20 00000a86 00000000 00000000 00000fb4 2**0 CONTENTS, READONLY
78 LZMA_DEC30 0000001a 00000000 00000000 00001a3a 2**0 CONTENTS, READONLY
79 LZCKLLT9 00000003 00000000 00000000 00001a54 2**0 CONTENTS, READONLY
80 ctok32.00 00000009 00000000 00000000 00001a57 2**0 CONTENTS, RELOC, READONLY
81 ctok32.10 0000000e 00000000 00000000 00001a60 2**0 CONTENTS, RELOC, READONLY
82 ctok32.20 00000021 00000000 00000000 00001a6e 2**0 CONTENTS, RELOC, READONLY
83 ctok32.30 00000007 00000000 00000000 00001a8f 2**0 CONTENTS, RELOC, READONLY
84 ctok32.40 00000005 00000000 00000000 00001a96 2**0 CONTENTS, RELOC, READONLY
85 LZCALLT9 00000001 00000000 00000000 00001a9b 2**0 CONTENTS, READONLY
86 CALLTR00 0000000e 00000000 00000000 00001a9c 2**0 CONTENTS, RELOC, READONLY
87 CTCLEVE1 00000005 00000000 00000000 00001aaa 2**0 CONTENTS, RELOC, READONLY
88 CALLTR01 00000005 00000000 00000000 00001aaf 2**0 CONTENTS, READONLY
89 CTBSHR01 00000004 00000000 00000000 00001ab4 2**0 CONTENTS, READONLY
90 CTBROR01 00000002 00000000 00000000 00001ab8 2**0 CONTENTS, READONLY
91 CTBSWA01 00000005 00000000 00000000 00001aba 2**0 CONTENTS, READONLY
92 CALLTR02 0000000e 00000000 00000000 00001abf 2**0 CONTENTS, RELOC, READONLY
93 CALLTR10 00000005 00000000 00000000 00001acd 2**0 CONTENTS, RELOC, READONLY
94 CALLTRE8 00000002 00000000 00000000 00001ad2 2**0 CONTENTS, READONLY
95 CALLTRE9 00000002 00000000 00000000 00001ad4 2**0 CONTENTS, READONLY
96 CALLTR11 00000004 00000000 00000000 00001ad6 2**0 CONTENTS, RELOC, READONLY
97 CTCLEVE2 00000005 00000000 00000000 00001ada 2**0 CONTENTS, RELOC, READONLY
98 CALLTR12 00000002 00000000 00000000 00001adf 2**0 CONTENTS, READONLY
99 CTBSHR11 00000004 00000000 00000000 00001ae1 2**0 CONTENTS, READONLY
100 CTBROR11 00000002 00000000 00000000 00001ae5 2**0 CONTENTS, READONLY
101 CTBSWA11 00000005 00000000 00000000 00001ae7 2**0 CONTENTS, READONLY
102 CALLTR13 00000005 00000000 00000000 00001aec 2**0 CONTENTS, RELOC, READONLY
103 LINUZ990 00000005 00000000 00000000 00001af1 2**0 CONTENTS, READONLY
104 UPX1HEAD 00000020 00000000 00000000 00001af6 2**0 CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d N2BSMA10 00000000 N2BSMA10
00000000 l d N2BFAS11 00000000 N2BFAS11
@ -147,6 +149,8 @@ SYMBOL TABLE:
00000000 l d LINUZ120 00000000 LINUZ120
00000000 l d LINUZ130 00000000 LINUZ130
00000000 l d LINUZ140 00000000 LINUZ140
00000000 l d LINUZ141 00000000 LINUZ141
00000000 l d LINUZ145 00000000 LINUZ145
00000000 l d LINUZ150 00000000 LINUZ150
00000000 l d LZCALLT1 00000000 LZCALLT1
00000000 l d LZCKLLT1 00000000 LZCKLLT1
@ -218,9 +222,9 @@ SYMBOL TABLE:
00000000 *UND* 00000000 dec_offset
00000000 *UND* 00000000 unc_offset
00000000 *UND* 00000000 neg_length_mov
00000000 *UND* 00000000 neg_page_offset
00000000 *UND* 00000000 filter_cto
00000000 *UND* 00000000 filter_length
00000000 *UND* 00000000 neg_page_offset
00000000 *UND* 00000000 copy_source
00000000 *UND* 00000000 copy_dest
00000000 *UND* 00000000 words_to_copy
@ -258,6 +262,11 @@ OFFSET TYPE VALUE
00000015 R_386_32 unc_offset
0000001b R_386_32 neg_length_mov
RELOCATION RECORDS FOR [LINUZ145]:
OFFSET TYPE VALUE
00000002 R_386_8 filter_cto
00000004 R_386_32 filter_length
RELOCATION RECORDS FOR [LINUZ150]:
OFFSET TYPE VALUE
00000006 R_386_32 load_physical_address
@ -447,7 +456,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ctok32.00]:
OFFSET TYPE VALUE
00000001 R_386_PC8 ctok32.20
00000003 R_386_PC8 ctok32.20
RELOCATION RECORDS FOR [ctok32.10]:
OFFSET TYPE VALUE