Merge.
This commit is contained in:
commit
a7ca0fec88
22
src/p_elf.h
22
src/p_elf.h
@ -95,6 +95,20 @@ struct Dyn
|
|||||||
__attribute_packed;
|
__attribute_packed;
|
||||||
|
|
||||||
|
|
||||||
|
template <class TElfITypes>
|
||||||
|
struct External_Note
|
||||||
|
{
|
||||||
|
typedef typename TElfITypes::Word Word;
|
||||||
|
|
||||||
|
Word xn_namesz; // includes terminating '\0'
|
||||||
|
Word xn_datasz;
|
||||||
|
Word xn_type;
|
||||||
|
//char xn_name[N]; // terminate with '\0'
|
||||||
|
//char xn_data[M]; // aligned to 0 mod 4
|
||||||
|
}
|
||||||
|
__attribute_packed;
|
||||||
|
|
||||||
|
|
||||||
} // namespace N_Elf
|
} // namespace N_Elf
|
||||||
|
|
||||||
|
|
||||||
@ -282,6 +296,7 @@ struct ElfClass_32
|
|||||||
typedef N_Elf32::Shdr<ElfITypes> Shdr;
|
typedef N_Elf32::Shdr<ElfITypes> Shdr;
|
||||||
typedef N_Elf ::Dyn <ElfITypes> Dyn;
|
typedef N_Elf ::Dyn <ElfITypes> Dyn;
|
||||||
typedef N_Elf32::Sym <ElfITypes> Sym;
|
typedef N_Elf32::Sym <ElfITypes> Sym;
|
||||||
|
typedef N_Elf ::External_Note<ElfITypes> External_Note;
|
||||||
|
|
||||||
static void compileTimeAssertions() {
|
static void compileTimeAssertions() {
|
||||||
BeLePolicy::compileTimeAssertions();
|
BeLePolicy::compileTimeAssertions();
|
||||||
@ -316,6 +331,7 @@ struct ElfClass_64
|
|||||||
typedef N_Elf64::Shdr<ElfITypes> Shdr;
|
typedef N_Elf64::Shdr<ElfITypes> Shdr;
|
||||||
typedef N_Elf ::Dyn <ElfITypes> Dyn;
|
typedef N_Elf ::Dyn <ElfITypes> Dyn;
|
||||||
typedef N_Elf64::Sym <ElfITypes> Sym;
|
typedef N_Elf64::Sym <ElfITypes> Sym;
|
||||||
|
typedef N_Elf ::External_Note<ElfITypes> External_Note;
|
||||||
|
|
||||||
static void compileTimeAssertions() {
|
static void compileTimeAssertions() {
|
||||||
BeLePolicy::compileTimeAssertions();
|
BeLePolicy::compileTimeAssertions();
|
||||||
@ -353,36 +369,42 @@ typedef ElfClass_Host32::Phdr Elf32_Phdr;
|
|||||||
typedef ElfClass_Host32::Shdr Elf32_Shdr;
|
typedef ElfClass_Host32::Shdr Elf32_Shdr;
|
||||||
typedef ElfClass_Host32::Dyn Elf32_Dyn;
|
typedef ElfClass_Host32::Dyn Elf32_Dyn;
|
||||||
typedef ElfClass_Host32::Sym Elf32_Sym;
|
typedef ElfClass_Host32::Sym Elf32_Sym;
|
||||||
|
typedef ElfClass_Host32::External_Note Elf32_External_Note;
|
||||||
|
|
||||||
typedef ElfClass_Host64::Ehdr Elf64_Ehdr;
|
typedef ElfClass_Host64::Ehdr Elf64_Ehdr;
|
||||||
typedef ElfClass_Host64::Phdr Elf64_Phdr;
|
typedef ElfClass_Host64::Phdr Elf64_Phdr;
|
||||||
typedef ElfClass_Host64::Shdr Elf64_Shdr;
|
typedef ElfClass_Host64::Shdr Elf64_Shdr;
|
||||||
typedef ElfClass_Host64::Dyn Elf64_Dyn;
|
typedef ElfClass_Host64::Dyn Elf64_Dyn;
|
||||||
typedef ElfClass_Host64::Sym Elf64_Sym;
|
typedef ElfClass_Host64::Sym Elf64_Sym;
|
||||||
|
typedef ElfClass_Host64::External_Note Elf64_External_Note;
|
||||||
|
|
||||||
typedef ElfClass_BE32::Ehdr Elf_BE32_Ehdr;
|
typedef ElfClass_BE32::Ehdr Elf_BE32_Ehdr;
|
||||||
typedef ElfClass_BE32::Phdr Elf_BE32_Phdr;
|
typedef ElfClass_BE32::Phdr Elf_BE32_Phdr;
|
||||||
typedef ElfClass_BE32::Shdr Elf_BE32_Shdr;
|
typedef ElfClass_BE32::Shdr Elf_BE32_Shdr;
|
||||||
typedef ElfClass_BE32::Dyn Elf_BE32_Dyn;
|
typedef ElfClass_BE32::Dyn Elf_BE32_Dyn;
|
||||||
typedef ElfClass_BE32::Sym Elf_BE32_Sym;
|
typedef ElfClass_BE32::Sym Elf_BE32_Sym;
|
||||||
|
typedef ElfClass_BE32::External_Note Elf_BE32_External_Note;
|
||||||
|
|
||||||
typedef ElfClass_BE64::Ehdr Elf_BE64_Ehdr;
|
typedef ElfClass_BE64::Ehdr Elf_BE64_Ehdr;
|
||||||
typedef ElfClass_BE64::Phdr Elf_BE64_Phdr;
|
typedef ElfClass_BE64::Phdr Elf_BE64_Phdr;
|
||||||
typedef ElfClass_BE64::Shdr Elf_BE64_Shdr;
|
typedef ElfClass_BE64::Shdr Elf_BE64_Shdr;
|
||||||
typedef ElfClass_BE64::Dyn Elf_BE64_Dyn;
|
typedef ElfClass_BE64::Dyn Elf_BE64_Dyn;
|
||||||
typedef ElfClass_BE64::Sym Elf_BE64_Sym;
|
typedef ElfClass_BE64::Sym Elf_BE64_Sym;
|
||||||
|
typedef ElfClass_BE64::External_Note Elf_BE64_External_Note;
|
||||||
|
|
||||||
typedef ElfClass_LE32::Ehdr Elf_LE32_Ehdr;
|
typedef ElfClass_LE32::Ehdr Elf_LE32_Ehdr;
|
||||||
typedef ElfClass_LE32::Phdr Elf_LE32_Phdr;
|
typedef ElfClass_LE32::Phdr Elf_LE32_Phdr;
|
||||||
typedef ElfClass_LE32::Shdr Elf_LE32_Shdr;
|
typedef ElfClass_LE32::Shdr Elf_LE32_Shdr;
|
||||||
typedef ElfClass_LE32::Dyn Elf_LE32_Dyn;
|
typedef ElfClass_LE32::Dyn Elf_LE32_Dyn;
|
||||||
typedef ElfClass_LE32::Sym Elf_LE32_Sym;
|
typedef ElfClass_LE32::Sym Elf_LE32_Sym;
|
||||||
|
typedef ElfClass_LE32::External_Note Elf_LE32_External_Note;
|
||||||
|
|
||||||
typedef ElfClass_LE64::Ehdr Elf_LE64_Ehdr;
|
typedef ElfClass_LE64::Ehdr Elf_LE64_Ehdr;
|
||||||
typedef ElfClass_LE64::Phdr Elf_LE64_Phdr;
|
typedef ElfClass_LE64::Phdr Elf_LE64_Phdr;
|
||||||
typedef ElfClass_LE64::Shdr Elf_LE64_Shdr;
|
typedef ElfClass_LE64::Shdr Elf_LE64_Shdr;
|
||||||
typedef ElfClass_LE64::Dyn Elf_LE64_Dyn;
|
typedef ElfClass_LE64::Dyn Elf_LE64_Dyn;
|
||||||
typedef ElfClass_LE64::Sym Elf_LE64_Sym;
|
typedef ElfClass_LE64::Sym Elf_LE64_Sym;
|
||||||
|
typedef ElfClass_LE64::External_Note Elf_LE64_External_Note;
|
||||||
|
|
||||||
|
|
||||||
#endif /* already included */
|
#endif /* already included */
|
||||||
|
|||||||
200
src/p_vmlinx.cpp
200
src/p_vmlinx.cpp
@ -52,9 +52,11 @@ static const
|
|||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
PackVmlinuxBase<T>::PackVmlinuxBase(InputFile *f,
|
PackVmlinuxBase<T>::PackVmlinuxBase(InputFile *f,
|
||||||
unsigned e_machine, unsigned elfclass, unsigned elfdata) :
|
unsigned e_machine, unsigned elfclass, unsigned elfdata,
|
||||||
|
char const *const boot_label) :
|
||||||
super(f),
|
super(f),
|
||||||
my_e_machine(e_machine), my_elfclass(elfclass), my_elfdata(elfdata),
|
my_e_machine(e_machine), my_elfclass(elfclass), my_elfdata(elfdata),
|
||||||
|
my_boot_label(boot_label),
|
||||||
n_ptload(0), phdri(NULL), shdri(NULL), shstrtab(NULL)
|
n_ptload(0), phdri(NULL), shdri(NULL), shstrtab(NULL)
|
||||||
{
|
{
|
||||||
ElfClass::compileTimeAssertions();
|
ElfClass::compileTimeAssertions();
|
||||||
@ -175,27 +177,27 @@ bool PackVmlinuxBase<T>::canPack()
|
|||||||
// Put PT_LOAD together at the beginning, ascending by .p_paddr.
|
// Put PT_LOAD together at the beginning, ascending by .p_paddr.
|
||||||
qsort(phdri, ehdri.e_phnum, sizeof(*phdri), compare_Phdr);
|
qsort(phdri, ehdri.e_phnum, sizeof(*phdri), compare_Phdr);
|
||||||
|
|
||||||
// Check that PT_LOADs form one contiguous chunk of the file.
|
// Find convex hull of physical addresses, and count the PT_LOAD.
|
||||||
|
// Ignore ".bss": .p_filesz < .p_memsz
|
||||||
|
unsigned phys_lo= ~0u, phys_hi= 0u;
|
||||||
for (unsigned j = 0; j < ehdri.e_phnum; ++j) {
|
for (unsigned j = 0; j < ehdri.e_phnum; ++j) {
|
||||||
if (Phdr::PT_LOAD==phdri[j].p_type) {
|
if (Phdr::PT_LOAD==phdri[j].p_type) {
|
||||||
|
// Check for general sanity (not necessarily required.)
|
||||||
if (0xfff & (phdri[j].p_offset | phdri[j].p_paddr
|
if (0xfff & (phdri[j].p_offset | phdri[j].p_paddr
|
||||||
| phdri[j].p_align | phdri[j].p_vaddr) ) {
|
| phdri[j].p_align | phdri[j].p_vaddr) ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (0 < j) {
|
if (phys_lo > phdri[j].p_paddr) {
|
||||||
unsigned const org = (0u - phdri[j].p_align) &
|
phys_lo = phdri[j].p_paddr;
|
||||||
(-1 + phdri[j].p_align +
|
}
|
||||||
phdri[j-1].p_filesz + phdri[j-1].p_offset);
|
if (phys_hi < (phdri[j].p_filesz + phdri[j].p_paddr)) {
|
||||||
unsigned const loc = (0u - phdri[j].p_align) &
|
phys_hi = (phdri[j].p_filesz + phdri[j].p_paddr);
|
||||||
(-1 + phdri[j].p_align + phdri[j].p_offset);
|
|
||||||
if (org!=loc) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
++n_ptload;
|
++n_ptload;
|
||||||
sz_ptload = phdri[j].p_filesz + phdri[j].p_offset - phdri[0].p_offset;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
paddr_min = phys_lo;
|
||||||
|
sz_ptload = phys_hi - phys_lo;
|
||||||
return 0 < n_ptload;
|
return 0 < n_ptload;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,9 +231,29 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
|||||||
fo->write(&ehdro, sizeof(ehdro)); fo_off+= sizeof(ehdro);
|
fo->write(&ehdro, sizeof(ehdro)); fo_off+= sizeof(ehdro);
|
||||||
fo->write(shdro, sizeof(shdro)); fo_off+= sizeof(shdro);
|
fo->write(shdro, sizeof(shdro)); fo_off+= sizeof(shdro);
|
||||||
|
|
||||||
|
// Notice overlap [containment] of physical PT_LOAD[2] into PTLOAD[1]
|
||||||
|
// in this vmlinux for x86_64 from Fedora Core 6 on 2007-01-07:
|
||||||
|
//Program Headers:
|
||||||
|
// Type Offset VirtAddr PhysAddr
|
||||||
|
// FileSiz MemSiz Flags Align
|
||||||
|
// LOAD 0x0000000000200000 0xffffffff80200000 0x0000000000200000
|
||||||
|
// 0x000000000034bce8 0x000000000034bce8 R E 200000
|
||||||
|
// LOAD 0x000000000054c000 0xffffffff8054c000 0x000000000054c000
|
||||||
|
// 0x00000000000ed004 0x00000000001702a4 RWE 200000
|
||||||
|
// LOAD 0x0000000000800000 0xffffffffff600000 0x00000000005f5000
|
||||||
|
// 0x0000000000000c08 0x0000000000000c08 RWE 200000
|
||||||
|
// NOTE 0x0000000000000000 0x0000000000000000 0x0000000000000000
|
||||||
|
// 0x0000000000000000 0x0000000000000000 R 8
|
||||||
|
// Therefore we must "compose" the convex hull to be loaded.
|
||||||
|
|
||||||
ph.u_len = sz_ptload;
|
ph.u_len = sz_ptload;
|
||||||
fi->seek(phdri[0].p_offset, SEEK_SET);
|
memset(ibuf, 0, sz_ptload);
|
||||||
fi->readx(ibuf, ph.u_len);
|
for (unsigned j = 0; j < ehdri.e_phnum; ++j) {
|
||||||
|
if (Phdr::PT_LOAD==phdri[j].p_type) {
|
||||||
|
fi->seek(phdri[j].p_offset, SEEK_SET);
|
||||||
|
fi->readx(ibuf + (phdri[j].p_paddr - paddr_min), phdri[j].p_filesz);
|
||||||
|
}
|
||||||
|
}
|
||||||
checkAlreadyPacked(ibuf + ph.u_len - 1024, 1024);
|
checkAlreadyPacked(ibuf + ph.u_len - 1024, 1024);
|
||||||
|
|
||||||
// prepare filter
|
// prepare filter
|
||||||
@ -370,16 +392,16 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
|||||||
unc_ker.st_shndx = 1; // .text
|
unc_ker.st_shndx = 1; // .text
|
||||||
fo->write(&unc_ker, sizeof(unc_ker)); fo_off += sizeof(unc_ker);
|
fo->write(&unc_ker, sizeof(unc_ker)); fo_off += sizeof(unc_ker);
|
||||||
|
|
||||||
// '\0' before and after the name we want
|
unsigned const lablen = strlen(my_boot_label);
|
||||||
char const strtab[] = "\0decompress_kernel";
|
|
||||||
|
|
||||||
while (0!=*p++) ;
|
while (0!=*p++) ;
|
||||||
shdro[6].sh_name = ptr_diff(p, shstrtab);
|
shdro[6].sh_name = ptr_diff(p, shstrtab);
|
||||||
shdro[6].sh_type = Shdr::SHT_STRTAB;
|
shdro[6].sh_type = Shdr::SHT_STRTAB;
|
||||||
shdro[6].sh_offset = fo_off;
|
shdro[6].sh_offset = fo_off;
|
||||||
shdro[6].sh_size = sizeof(strtab); // includes both '\0'
|
shdro[6].sh_size = 2+ lablen; // '\0' before and after
|
||||||
shdro[6].sh_addralign = 1;
|
shdro[6].sh_addralign = 1;
|
||||||
fo->write(strtab, sizeof(strtab)); fo_off += sizeof(strtab);
|
fo->seek(1, SEEK_CUR); // the '\0' before
|
||||||
|
fo->write(my_boot_label, 1+ lablen); // include the '\0' terminator
|
||||||
|
fo_off += 2+ lablen;
|
||||||
|
|
||||||
fo->seek(0, SEEK_SET);
|
fo->seek(0, SEEK_SET);
|
||||||
fo->write(&ehdro, sizeof(ehdro));
|
fo->write(&ehdro, sizeof(ehdro));
|
||||||
@ -595,7 +617,32 @@ void PackVmlinuxI386::buildLoader(const Filter *ft)
|
|||||||
addFilter32(ft->id);
|
addFilter32(ft->id);
|
||||||
}
|
}
|
||||||
addLoader("LINUX990",
|
addLoader("LINUX990",
|
||||||
ph.first_offset_found == 1 ? "LINUX991" : "",
|
((ph.first_offset_found == 1) ? "LINUX991" : ""),
|
||||||
|
"LINUX992,IDENTSTR,UPX1HEAD", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PackVmlinuxAMD64::buildLoader(const Filter *ft)
|
||||||
|
{
|
||||||
|
// prepare loader
|
||||||
|
initLoader(stub_amd64_linux_kernel_vmlinux, sizeof(stub_amd64_linux_kernel_vmlinux));
|
||||||
|
addLoader("LINUX000",
|
||||||
|
(0x40==(0xf0 & ft->id)) ? "LXCKLLT1" : (ft->id ? "LXCALLT1" : ""),
|
||||||
|
"LXMOVEUP",
|
||||||
|
getDecompressorSections(),
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
if (ft->id) {
|
||||||
|
assert(ft->calls > 0);
|
||||||
|
if (0x40==(0xf0 & ft->id)) {
|
||||||
|
addLoader("LXCKLLT9", NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
addLoader("LXCALLT9", NULL);
|
||||||
|
}
|
||||||
|
addFilter32(ft->id);
|
||||||
|
}
|
||||||
|
addLoader("LINUX990",
|
||||||
|
((ph.first_offset_found == 1) ? "LINUX991" : ""),
|
||||||
"LINUX992,IDENTSTR,UPX1HEAD", NULL);
|
"LINUX992,IDENTSTR,UPX1HEAD", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -645,28 +692,58 @@ unsigned PackVmlinuxI386::write_vmlinux_head(
|
|||||||
Shdr *const stxt
|
Shdr *const stxt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// ENTRY_POINT
|
|
||||||
fo->write(&stub_i386_linux_kernel_vmlinux_head[0],
|
|
||||||
sizeof(stub_i386_linux_kernel_vmlinux_head)-2*(1+ 4) +1);
|
|
||||||
U32 tmp_u32 = ehdri.e_entry; fo->write(&tmp_u32, 4);
|
|
||||||
|
|
||||||
// COMPRESSED_LENGTH
|
// COMPRESSED_LENGTH
|
||||||
fo->write(&stub_i386_linux_kernel_vmlinux_head[
|
fo->write(&stub_i386_linux_kernel_vmlinux_head[0],
|
||||||
sizeof(stub_i386_linux_kernel_vmlinux_head)-(1+ 4)], 1);
|
sizeof(stub_i386_linux_kernel_vmlinux_head)-(1+ 4) +1);
|
||||||
tmp_u32 = ph.c_len; fo->write(&tmp_u32, 4);
|
U32 tmp_u32; tmp_u32 = ph.c_len; fo->write(&tmp_u32, 4);
|
||||||
|
|
||||||
stxt->sh_size += sizeof(stub_i386_linux_kernel_vmlinux_head);
|
stxt->sh_size += sizeof(stub_i386_linux_kernel_vmlinux_head);
|
||||||
|
|
||||||
return sizeof(stub_i386_linux_kernel_vmlinux_head);
|
return sizeof(stub_i386_linux_kernel_vmlinux_head);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned PackVmlinuxAMD64::write_vmlinux_head(
|
||||||
|
OutputFile *const fo,
|
||||||
|
Shdr *const stxt
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// COMPRESSED_LENGTH
|
||||||
|
fo->write(&stub_amd64_linux_kernel_vmlinux_head[0],
|
||||||
|
sizeof(stub_amd64_linux_kernel_vmlinux_head)-(1+ 4) +1);
|
||||||
|
U32 tmp_u32; tmp_u32 = ph.c_len; fo->write(&tmp_u32, 4);
|
||||||
|
printf(" Compressed length=0x%x\n", ph.c_len);
|
||||||
|
printf("UnCompressed length=0x%x\n", ph.u_len);
|
||||||
|
|
||||||
|
stxt->sh_size += sizeof(stub_amd64_linux_kernel_vmlinux_head);
|
||||||
|
|
||||||
|
return sizeof(stub_amd64_linux_kernel_vmlinux_head);
|
||||||
|
}
|
||||||
|
|
||||||
void PackVmlinuxARM::defineDecompressorSymbols()
|
void PackVmlinuxARM::defineDecompressorSymbols()
|
||||||
{
|
{
|
||||||
|
super::defineDecompressorSymbols();
|
||||||
linker->defineSymbol( "COMPRESSED_LENGTH", ph.c_len);
|
linker->defineSymbol( "COMPRESSED_LENGTH", ph.c_len);
|
||||||
linker->defineSymbol("UNCOMPRESSED_LENGTH", ph.u_len);
|
linker->defineSymbol("UNCOMPRESSED_LENGTH", ph.u_len);
|
||||||
linker->defineSymbol("METHOD", ph.method);
|
linker->defineSymbol("METHOD", ph.method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PackVmlinuxI386::defineDecompressorSymbols()
|
||||||
|
{
|
||||||
|
super::defineDecompressorSymbols();
|
||||||
|
linker->defineSymbol("ENTRY_POINT", phdri[0].p_paddr);
|
||||||
|
linker->defineSymbol("PHYSICAL_START", phdri[0].p_paddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PackVmlinuxAMD64::defineDecompressorSymbols()
|
||||||
|
{
|
||||||
|
super::defineDecompressorSymbols();
|
||||||
|
// We assume a 32-bit boot loader, so we use the 32-bit convention
|
||||||
|
// of "enter at the beginning" (startup_32). The 64-bit convention
|
||||||
|
// would be to use ehdri.e_entry (startup_64).
|
||||||
|
linker->defineSymbol("ENTRY_POINT", phdri[0].p_paddr);
|
||||||
|
linker->defineSymbol("PHYSICAL_START", phdri[0].p_paddr);
|
||||||
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuxARM::write_vmlinux_head(
|
unsigned PackVmlinuxARM::write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *const fo,
|
||||||
Shdr *const stxt
|
Shdr *const stxt
|
||||||
@ -738,18 +815,16 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
//# create a compressed vmlinux image from the original vmlinux
|
//# create a compressed vmlinux image from the original vmlinux
|
||||||
//#
|
//#
|
||||||
//
|
//
|
||||||
//targets := vmlinux upx-head.o upx-piggy.o
|
//targets := vmlinux upx-piggy.o
|
||||||
//
|
//
|
||||||
//LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32
|
//LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32
|
||||||
//
|
//
|
||||||
//$(obj)/vmlinux: $(obj)/upx-head.o $(obj)/upx-piggy.o FORCE
|
//$(obj)/vmlinux: $(obj)/upx-piggy.o FORCE
|
||||||
// $(call if_changed,ld)
|
// $(call if_changed,ld)
|
||||||
// @:
|
// @:
|
||||||
//
|
//
|
||||||
//$(obj)/upx-piggy.o: vmlinux FORCE
|
//$(obj)/upx-piggy.o: vmlinux FORCE
|
||||||
// rm -f $@
|
// upx --lzma -f -o $@ $<; touch $@
|
||||||
// upx --best -o $@ $<
|
|
||||||
// touch $@
|
|
||||||
//
|
//
|
||||||
//#
|
//#
|
||||||
//# The ORIGINAL build sequence using gzip is:
|
//# The ORIGINAL build sequence using gzip is:
|
||||||
@ -776,17 +851,12 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
//# boot/compressed/upx-piggy.o by upx format vmlinux/386
|
//# boot/compressed/upx-piggy.o by upx format vmlinux/386
|
||||||
//#
|
//#
|
||||||
//# In arch/i386/boot:
|
//# In arch/i386/boot:
|
||||||
//# boot/compressed/vmlinux by ld upx-head.o upx-piggy.o
|
//# boot/compressed/vmlinux by ld upx-piggy.o
|
||||||
//# boot/vmlinux.bin by objcopy
|
//# boot/vmlinux.bin by objcopy
|
||||||
//# boot/bzImage by arch/i386/boot/tools/build with
|
//# boot/bzImage by arch/i386/boot/tools/build with
|
||||||
//# bootsect and setup
|
//# bootsect and setup
|
||||||
//#
|
//#
|
||||||
//-----
|
//-----
|
||||||
//
|
|
||||||
//----- arch/i386/boot/compressed/upx-head.S
|
|
||||||
//startup_32: .globl startup_32 # In: %esi=0x90000 setup data "real_mode pointer"
|
|
||||||
// /* All code is in stub/src/i386-linux.kernel.vmlinux-head.S */
|
|
||||||
//-----
|
|
||||||
|
|
||||||
#if 0 /*{*/
|
#if 0 /*{*/
|
||||||
// For Debian nslu2-linux (2.6.19), only this Makefile changes:
|
// For Debian nslu2-linux (2.6.19), only this Makefile changes:
|
||||||
@ -828,7 +898,7 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
-
|
-
|
||||||
-$(obj)/piggy.o: $(obj)/piggy.gz FORCE
|
-$(obj)/piggy.o: $(obj)/piggy.gz FORCE
|
||||||
+$(obj)/upx-piggy.o: vmlinux FORCE
|
+$(obj)/upx-piggy.o: vmlinux FORCE
|
||||||
+ rm -f $@; upx --lzma -o $@ $<; touch $@
|
+ upx --lzma -f -o $@ $<; touch $@
|
||||||
|
|
||||||
CFLAGS_font_acorn_8x8.o := -Dstatic=
|
CFLAGS_font_acorn_8x8.o := -Dstatic=
|
||||||
|
|
||||||
@ -848,7 +918,7 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
//# create a compressed vmlinux image from the original vmlinux
|
//# create a compressed vmlinux image from the original vmlinux
|
||||||
//#
|
//#
|
||||||
//
|
//
|
||||||
//HEAD = upx-head.o
|
//HEAD =
|
||||||
//SYSTEM = $(TOPDIR)/vmlinux
|
//SYSTEM = $(TOPDIR)/vmlinux
|
||||||
//
|
//
|
||||||
//OBJECTS = $(HEAD)
|
//OBJECTS = $(HEAD)
|
||||||
@ -884,7 +954,7 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Example test jig:
|
// Example test jig:
|
||||||
// $ gcc -o test-piggy -nostartfiles -nostdlib test-piggy.o piggy.o
|
// $ gcc -m32 -o test-piggy -nostartfiles -nostdlib test-piggy.o piggy.o
|
||||||
// $ gdb test-piggy
|
// $ gdb test-piggy
|
||||||
// (gdb) run >dumped
|
// (gdb) run >dumped
|
||||||
// (gdb) /* Execute [single step, etc.; the decompressor+unfilter moves!]
|
// (gdb) /* Execute [single step, etc.; the decompressor+unfilter moves!]
|
||||||
@ -930,7 +1000,6 @@ bool PackVmlinuxAMD64::has_valid_vmlinux_head()
|
|||||||
// pushl $0x100000 # 1MB address
|
// pushl $0x100000 # 1MB address
|
||||||
// call mmap
|
// call mmap
|
||||||
// leal -0x9000(%esp),%esi # expect "lea 0x9000(%esi),%esp" later
|
// leal -0x9000(%esp),%esi # expect "lea 0x9000(%esi),%esp" later
|
||||||
// push %cs
|
|
||||||
///* Fall into .text of upx-compressed vmlinux. */
|
///* Fall into .text of upx-compressed vmlinux. */
|
||||||
//-----
|
//-----
|
||||||
|
|
||||||
@ -964,51 +1033,6 @@ Linker* PackVmlinuxAMD64::newLinker() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PackVmlinuxAMD64::buildLoader(const Filter *ft)
|
|
||||||
{
|
|
||||||
// prepare loader
|
|
||||||
initLoader(stub_amd64_linux_kernel_vmlinux, sizeof(stub_amd64_linux_kernel_vmlinux));
|
|
||||||
addLoader("LINUX000",
|
|
||||||
(0x40==(0xf0 & ft->id)) ? "LXCKLLT1" : (ft->id ? "LXCALLT1" : ""),
|
|
||||||
"LXMOVEUP",
|
|
||||||
getDecompressorSections(),
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if (ft->id) {
|
|
||||||
assert(ft->calls > 0);
|
|
||||||
if (0x40==(0xf0 & ft->id)) {
|
|
||||||
addLoader("LXCKLLT9", NULL);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
addLoader("LXCALLT9", NULL);
|
|
||||||
}
|
|
||||||
addFilter32(ft->id);
|
|
||||||
}
|
|
||||||
addLoader("LINUX990,IDENTSTR,UPX1HEAD", NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
unsigned PackVmlinuxAMD64::write_vmlinux_head(
|
|
||||||
OutputFile *const fo,
|
|
||||||
Shdr *const stxt
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// ENTRY_POINT
|
|
||||||
fo->write(&stub_amd64_linux_kernel_vmlinux_head[0],
|
|
||||||
sizeof(stub_amd64_linux_kernel_vmlinux_head)-2*(1+ 4) +1);
|
|
||||||
unsigned const t = BeLePolicy::get32(&ehdri.e_entry);
|
|
||||||
U32 tmp_u32; tmp_u32 = t;
|
|
||||||
fo->write(&tmp_u32, 4);
|
|
||||||
|
|
||||||
// COMPRESSED_LENGTH
|
|
||||||
fo->write(&stub_amd64_linux_kernel_vmlinux_head[
|
|
||||||
sizeof(stub_amd64_linux_kernel_vmlinux_head)-(1+ 4)], 1);
|
|
||||||
tmp_u32 = ph.c_len; fo->write(&tmp_u32, 4);
|
|
||||||
|
|
||||||
stxt->sh_size += sizeof(stub_amd64_linux_kernel_vmlinux_head);
|
|
||||||
|
|
||||||
return sizeof(stub_amd64_linux_kernel_vmlinux_head);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// instantiate instances
|
// instantiate instances
|
||||||
|
|||||||
@ -57,7 +57,7 @@ protected:
|
|||||||
typedef typename ElfClass::Sym Sym;
|
typedef typename ElfClass::Sym Sym;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PackVmlinuxBase(InputFile *, unsigned, unsigned, unsigned);
|
PackVmlinuxBase(InputFile *, unsigned, unsigned, unsigned, char const *);
|
||||||
virtual ~PackVmlinuxBase();
|
virtual ~PackVmlinuxBase();
|
||||||
virtual int getVersion() const { return 13; }
|
virtual int getVersion() const { return 13; }
|
||||||
|
|
||||||
@ -65,9 +65,11 @@ protected:
|
|||||||
unsigned int const my_e_machine;
|
unsigned int const my_e_machine;
|
||||||
unsigned char const my_elfclass;
|
unsigned char const my_elfclass;
|
||||||
unsigned char const my_elfdata;
|
unsigned char const my_elfdata;
|
||||||
|
char const *const my_boot_label;
|
||||||
|
|
||||||
int n_ptload;
|
int n_ptload;
|
||||||
unsigned sz_ptload;
|
unsigned sz_ptload;
|
||||||
|
unsigned paddr_min;
|
||||||
Phdr *phdri; // from input file
|
Phdr *phdri; // from input file
|
||||||
Shdr *shdri; // from input file
|
Shdr *shdri; // from input file
|
||||||
char *shstrtab; // from input file
|
char *shstrtab; // from input file
|
||||||
@ -97,7 +99,7 @@ class PackVmlinuxI386 : public PackVmlinuxBase<ElfClass_LE32>
|
|||||||
typedef PackVmlinuxBase<ElfClass_LE32> super;
|
typedef PackVmlinuxBase<ElfClass_LE32> super;
|
||||||
public:
|
public:
|
||||||
PackVmlinuxI386(InputFile *f) : super(f, Ehdr::EM_386,
|
PackVmlinuxI386(InputFile *f) : super(f, Ehdr::EM_386,
|
||||||
Ehdr::ELFCLASS32, Ehdr::ELFDATA2LSB) { }
|
Ehdr::ELFCLASS32, Ehdr::ELFDATA2LSB, "startup_32") { }
|
||||||
virtual int getFormat() const { return UPX_F_VMLINUX_i386; }
|
virtual int getFormat() const { return UPX_F_VMLINUX_i386; }
|
||||||
virtual const char *getName() const { return "vmlinux/386"; }
|
virtual const char *getName() const { return "vmlinux/386"; }
|
||||||
virtual const char *getFullName(const options_t *) const { return "i386-linux.kernel.vmlinux"; }
|
virtual const char *getFullName(const options_t *) const { return "i386-linux.kernel.vmlinux"; }
|
||||||
@ -106,6 +108,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void buildLoader(const Filter *ft);
|
virtual void buildLoader(const Filter *ft);
|
||||||
|
virtual void defineDecompressorSymbols();
|
||||||
virtual Linker* newLinker() const;
|
virtual Linker* newLinker() const;
|
||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
@ -121,7 +124,7 @@ class PackVmlinuxARM : public PackVmlinuxBase<ElfClass_LE32>
|
|||||||
typedef PackVmlinuxBase<ElfClass_LE32> super;
|
typedef PackVmlinuxBase<ElfClass_LE32> super;
|
||||||
public:
|
public:
|
||||||
PackVmlinuxARM(InputFile *f) : super(f, Ehdr::EM_ARM,
|
PackVmlinuxARM(InputFile *f) : super(f, Ehdr::EM_ARM,
|
||||||
Ehdr::ELFCLASS32, Ehdr::ELFDATA2LSB) { }
|
Ehdr::ELFCLASS32, Ehdr::ELFDATA2LSB, "decompress_kernel") { }
|
||||||
virtual int getFormat() const { return UPX_F_VMLINUX_ARM; }
|
virtual int getFormat() const { return UPX_F_VMLINUX_ARM; }
|
||||||
virtual const char *getName() const { return "vmlinux/ARM"; }
|
virtual const char *getName() const { return "vmlinux/ARM"; }
|
||||||
virtual const char *getFullName(const options_t *) const { return "ARM-linux.kernel.vmlinux"; }
|
virtual const char *getFullName(const options_t *) const { return "ARM-linux.kernel.vmlinux"; }
|
||||||
@ -130,10 +133,10 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void buildLoader(const Filter *ft);
|
virtual void buildLoader(const Filter *ft);
|
||||||
|
virtual void defineDecompressorSymbols();
|
||||||
virtual Linker* newLinker() const;
|
virtual Linker* newLinker() const;
|
||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual void defineDecompressorSymbols();
|
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *const fo,
|
||||||
Shdr *const stxt
|
Shdr *const stxt
|
||||||
@ -146,7 +149,7 @@ class PackVmlinuxAMD64 : public PackVmlinuxBase<ElfClass_LE64>
|
|||||||
typedef PackVmlinuxBase<ElfClass_LE64> super;
|
typedef PackVmlinuxBase<ElfClass_LE64> super;
|
||||||
public:
|
public:
|
||||||
PackVmlinuxAMD64(InputFile *f) : super(f, Ehdr::EM_X86_64,
|
PackVmlinuxAMD64(InputFile *f) : super(f, Ehdr::EM_X86_64,
|
||||||
Ehdr::ELFCLASS64, Ehdr::ELFDATA2LSB) { }
|
Ehdr::ELFCLASS64, Ehdr::ELFDATA2LSB, "startup_32") { }
|
||||||
virtual int getFormat() const { return UPX_F_VMLINUX_AMD64; }
|
virtual int getFormat() const { return UPX_F_VMLINUX_AMD64; }
|
||||||
virtual const char *getName() const { return "vmlinux/AMD64"; }
|
virtual const char *getName() const { return "vmlinux/AMD64"; }
|
||||||
virtual const char *getFullName(const options_t *) const { return "amd64-linux.kernel.vmlinux"; }
|
virtual const char *getFullName(const options_t *) const { return "amd64-linux.kernel.vmlinux"; }
|
||||||
@ -155,6 +158,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void buildLoader(const Filter *ft);
|
virtual void buildLoader(const Filter *ft);
|
||||||
|
virtual void defineDecompressorSymbols();
|
||||||
virtual Linker* newLinker() const;
|
virtual Linker* newLinker() const;
|
||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
|
|||||||
@ -1394,6 +1394,7 @@ void Packer::compressWithFilters(upx_bytep i_ptr, unsigned i_len,
|
|||||||
if (compress(i_ptr, i_len, o_tmp, cconf))
|
if (compress(i_ptr, i_len, o_tmp, cconf))
|
||||||
{
|
{
|
||||||
unsigned lsize = 0;
|
unsigned lsize = 0;
|
||||||
|
// findOverlapOperhead() might be slow; omit if already too big.
|
||||||
if (ph.c_len + lsize + hdr_c_len <= best_ph.c_len + best_ph_lsize + best_hdr_c_len)
|
if (ph.c_len + lsize + hdr_c_len <= best_ph.c_len + best_ph_lsize + best_hdr_c_len)
|
||||||
{
|
{
|
||||||
// get results
|
// get results
|
||||||
|
|||||||
@ -212,8 +212,6 @@ const char *Packer::getDecompressorSections() const
|
|||||||
|| UPX_F_LINUX_ELFPPC32 ==ph.format
|
|| UPX_F_LINUX_ELFPPC32 ==ph.format
|
||||||
|| UPX_F_LINUX_ELF32_ARMBE==ph.format
|
|| UPX_F_LINUX_ELF32_ARMBE==ph.format
|
||||||
|| UPX_F_BSD_ELF_i386 ==ph.format
|
|| UPX_F_BSD_ELF_i386 ==ph.format
|
||||||
|| UPX_F_VMLINUX_AMD64 ==ph.format
|
|
||||||
|| UPX_F_VMLINUX_ARM ==ph.format
|
|
||||||
) {
|
) {
|
||||||
return opt->small ? lzma_elf_small : lzma_elf_fast;
|
return opt->small ? lzma_elf_small : lzma_elf_fast;
|
||||||
}
|
}
|
||||||
@ -247,8 +245,6 @@ void Packer::defineDecompressorSymbols()
|
|||||||
|| UPX_F_LINUX_ELFPPC32 ==ph.format
|
|| UPX_F_LINUX_ELFPPC32 ==ph.format
|
||||||
|| UPX_F_LINUX_ELF32_ARMBE==ph.format
|
|| UPX_F_LINUX_ELF32_ARMBE==ph.format
|
||||||
|| UPX_F_BSD_ELF_i386 ==ph.format
|
|| UPX_F_BSD_ELF_i386 ==ph.format
|
||||||
|| UPX_F_VMLINUX_AMD64 ==ph.format
|
|
||||||
|| UPX_F_VMLINUX_ARM ==ph.format
|
|
||||||
) {
|
) {
|
||||||
// ELF calls the decompressor many times; the parameters change!
|
// ELF calls the decompressor many times; the parameters change!
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -968,6 +968,10 @@ void PeFile::processTls(Interval *iv) // pass 1
|
|||||||
memcpy(otls + sizeof(tls),ibuf + tlsdatastart,sotls - sizeof(tls));
|
memcpy(otls + sizeof(tls),ibuf + tlsdatastart,sotls - sizeof(tls));
|
||||||
tlsindex = tlsp->tlsindex - ih.imagebase;
|
tlsindex = tlsp->tlsindex - ih.imagebase;
|
||||||
info("TLS: %u bytes tls data and %u relocations added",sotls - (unsigned) sizeof(tls),iv->ivnum);
|
info("TLS: %u bytes tls data and %u relocations added",sotls - (unsigned) sizeof(tls),iv->ivnum);
|
||||||
|
|
||||||
|
// makes sure tls index is zero after decompression
|
||||||
|
if (tlsindex && tlsindex < ih.imagesize)
|
||||||
|
set_le32(ibuf + tlsindex, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PeFile::processTls(Reloc *rel,const Interval *iv,unsigned newaddr) // pass 2
|
void PeFile::processTls(Reloc *rel,const Interval *iv,unsigned newaddr) // pass 2
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* amd64-linux.kernel.vmlinux-head.h
|
/* amd64-linux.kernel.vmlinux-head.h
|
||||||
created from amd64-linux.kernel.vmlinux-head.bin, 39 (0x27) bytes
|
created from amd64-linux.kernel.vmlinux-head.bin, 37 (0x25) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@ -28,12 +28,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_SIZE 39
|
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_SIZE 37
|
||||||
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_ADLER32 0x7a591357
|
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_ADLER32 0x81fb1575
|
||||||
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_CRC32 0xf4f6740a
|
#define STUB_AMD64_LINUX_KERNEL_VMLINUX_HEAD_CRC32 0xf78f5286
|
||||||
|
|
||||||
unsigned char stub_amd64_linux_kernel_vmlinux_head[39] = {
|
unsigned char stub_amd64_linux_kernel_vmlinux_head[37] = {
|
||||||
140,200,131,192, 8,142,216,142,192,141,142, 0,144, 0, 0,137, /* 0x 0 */
|
140,200,131,192, 8,142,216,142,192,142,224,142,232,141,142, 0, /* 0x 0 */
|
||||||
73,248,137, 65,252, 15,178, 97,248,106, 0,157, 14,184, 0, 0, /* 0x 10 */
|
144, 0, 0,137, 73,248,137, 65,252, 15,178, 97,248,106, 0,157, /* 0x 10 */
|
||||||
0, 0,232,252,255,255,255 /* 0x 20 */
|
232,252,255,255,255 /* 0x 20 */
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
/* i386-linux.kernel.vmlinux-head.h
|
/* i386-linux.kernel.vmlinux-head.h
|
||||||
created from i386-linux.kernel.vmlinux-head.bin, 39 (0x27) bytes
|
created from i386-linux.kernel.vmlinux-head.bin, 37 (0x25) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@ -28,12 +28,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_SIZE 39
|
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_SIZE 37
|
||||||
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_ADLER32 0x7a591357
|
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_ADLER32 0x81fb1575
|
||||||
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_CRC32 0xf4f6740a
|
#define STUB_I386_LINUX_KERNEL_VMLINUX_HEAD_CRC32 0xf78f5286
|
||||||
|
|
||||||
unsigned char stub_i386_linux_kernel_vmlinux_head[39] = {
|
unsigned char stub_i386_linux_kernel_vmlinux_head[37] = {
|
||||||
140,200,131,192, 8,142,216,142,192,141,142, 0,144, 0, 0,137, /* 0x 0 */
|
140,200,131,192, 8,142,216,142,192,142,224,142,232,141,142, 0, /* 0x 0 */
|
||||||
73,248,137, 65,252, 15,178, 97,248,106, 0,157, 14,184, 0, 0, /* 0x 10 */
|
144, 0, 0,137, 73,248,137, 65,252, 15,178, 97,248,106, 0,157, /* 0x 10 */
|
||||||
0, 0,232,252,255,255,255 /* 0x 20 */
|
232,252,255,255,255 /* 0x 20 */
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -36,6 +36,8 @@
|
|||||||
movl %cs,%eax; addl $1<<3,%eax # the next segment after %cs
|
movl %cs,%eax; addl $1<<3,%eax # the next segment after %cs
|
||||||
movl %eax,%ds
|
movl %eax,%ds
|
||||||
movl %eax,%es
|
movl %eax,%es
|
||||||
|
movl %eax,%fs
|
||||||
|
movl %eax,%gs
|
||||||
leal 0x9000(%esi),%ecx # 0x99000 typical
|
leal 0x9000(%esi),%ecx # 0x99000 typical
|
||||||
movl %ecx,-8(%ecx) # 32-bit offset for stack pointer
|
movl %ecx,-8(%ecx) # 32-bit offset for stack pointer
|
||||||
movl %eax,-4(%ecx) # segment for stack pointer
|
movl %eax,-4(%ecx) # segment for stack pointer
|
||||||
@ -53,9 +55,7 @@
|
|||||||
|
|
||||||
pushl $0; popf # subsumes "cli; cld"; also clears NT for buggy BIOS
|
pushl $0; popf # subsumes "cli; cld"; also clears NT for buggy BIOS
|
||||||
|
|
||||||
push %cs
|
// PackVmlinuxI386::pack knows the format of the following instruction.
|
||||||
// PackVmlinuxI386::pack knows the format of the next two instructions.
|
|
||||||
movl $ ENTRY_POINT,%eax # destination of uncompression (and entry point)
|
|
||||||
call COMPRESSED_LENGTH
|
call COMPRESSED_LENGTH
|
||||||
// Compressed data appears >here<, then decompressor.
|
// Compressed data appears >here<, then decompressor.
|
||||||
|
|
||||||
|
|||||||
@ -47,9 +47,75 @@
|
|||||||
*/
|
*/
|
||||||
section LINUX000
|
section LINUX000
|
||||||
//// .byte 0xf1 // qemu In-Circuit-Emulator breakpoint
|
//// .byte 0xf1 // qemu In-Circuit-Emulator breakpoint
|
||||||
pop edx // &compressed; length at -4(#edx)
|
|
||||||
|
|
||||||
push eax // MATCH00(1/2) entry address; __BOOT_CS
|
#if 0 /*{*/
|
||||||
|
// VGA debugging; In: edi= &putstr (linux/arch/*/boot/compressed/misc.c) */
|
||||||
|
jmp .L10
|
||||||
|
print_hex: // %eax in " %.8x"; ebx= &putstr; clobbers edi,edx,ecx
|
||||||
|
sub esp,12
|
||||||
|
mov edi,esp
|
||||||
|
mov edx,eax
|
||||||
|
cld
|
||||||
|
|
||||||
|
mov al,' '
|
||||||
|
stosb
|
||||||
|
mov ecx,8
|
||||||
|
.L30:
|
||||||
|
rol edx,4
|
||||||
|
mov al,dl
|
||||||
|
and al,0xf
|
||||||
|
cmp al,10
|
||||||
|
sbb al,0x69
|
||||||
|
das
|
||||||
|
stosb
|
||||||
|
loop .L30
|
||||||
|
mov al,0
|
||||||
|
stosb
|
||||||
|
|
||||||
|
push esp
|
||||||
|
call ebx
|
||||||
|
add esp,4+ 3*4
|
||||||
|
ret
|
||||||
|
|
||||||
|
print_stk8: // eax= &putstr
|
||||||
|
push ebp
|
||||||
|
mov ebp,esp
|
||||||
|
push ebx
|
||||||
|
mov ebx,eax // &putstr
|
||||||
|
push esi
|
||||||
|
push edi
|
||||||
|
|
||||||
|
mov esi,-8
|
||||||
|
.L20:
|
||||||
|
mov eax,[ebp + 4*esi + 8*4 + 8]
|
||||||
|
call print_hex
|
||||||
|
inc esi
|
||||||
|
jnz .L20
|
||||||
|
|
||||||
|
sub esp,4
|
||||||
|
mov edi,esp
|
||||||
|
push edi
|
||||||
|
mov al,'\n'
|
||||||
|
stosb
|
||||||
|
mov al,0
|
||||||
|
stosb
|
||||||
|
call ebx // NL
|
||||||
|
add esp,4+ 4
|
||||||
|
|
||||||
|
pop edi
|
||||||
|
pop esi
|
||||||
|
pop ebx
|
||||||
|
pop ebp
|
||||||
|
ret
|
||||||
|
.L10:
|
||||||
|
mov ebx,edi // &putstr in better register
|
||||||
|
#endif /*}*/
|
||||||
|
|
||||||
|
pop edx // &compressed; length at -4(#edx)
|
||||||
|
push %cs
|
||||||
|
push offset ENTRY_POINT // MATCH00
|
||||||
|
mov eax, offset PHYSICAL_START // destination of uncompression
|
||||||
|
|
||||||
push edi // MATCH01 save
|
push edi // MATCH01 save
|
||||||
push esi // MATCH02 save
|
push esi // MATCH02 save
|
||||||
|
|
||||||
@ -112,6 +178,15 @@ move_up:
|
|||||||
add eax, ~ALIGN + UNLAP
|
add eax, ~ALIGN + UNLAP
|
||||||
and eax, ALIGN
|
and eax, ALIGN
|
||||||
|
|
||||||
|
#if 0 /*{*/
|
||||||
|
pusha
|
||||||
|
mov eax,ebx // &putstr
|
||||||
|
call print_stk8
|
||||||
|
popa
|
||||||
|
.L5:
|
||||||
|
pause
|
||||||
|
jmp .L5
|
||||||
|
#endif /*}*/
|
||||||
std
|
std
|
||||||
// copy decompressor
|
// copy decompressor
|
||||||
lea esi,[-1+ ecx + esi] // unmoved top -1 of decompressor
|
lea esi,[-1+ ecx + esi] // unmoved top -1 of decompressor
|
||||||
@ -131,6 +206,7 @@ move_up:
|
|||||||
cld
|
cld
|
||||||
lea esi,[4+ edi] // &compressed [after move]
|
lea esi,[4+ edi] // &compressed [after move]
|
||||||
mov edi,ebp // &uncompressed
|
mov edi,ebp // &uncompressed
|
||||||
|
|
||||||
section LINUX991
|
section LINUX991
|
||||||
or ebp, -1 // decompressor assumption
|
or ebp, -1 // decompressor assumption
|
||||||
section LINUX992
|
section LINUX992
|
||||||
|
|||||||
@ -2,100 +2,100 @@ tmp/amd64-linux.kernel.vmlinux.bin: file format elf32-i386
|
|||||||
|
|
||||||
Sections:
|
Sections:
|
||||||
Idx Name Size VMA LMA File off Algn Flags
|
Idx Name Size VMA LMA File off Algn Flags
|
||||||
0 LINUX000 00000004 00000000 00000000 00000034 2**0 CONTENTS, READONLY
|
0 LINUX000 0000000e 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
|
||||||
1 LXCALLT1 00000001 00000000 00000000 00000038 2**0 CONTENTS, READONLY
|
1 LXCALLT1 00000001 00000000 00000000 00000042 2**0 CONTENTS, READONLY
|
||||||
2 LXCKLLT1 00000003 00000000 00000000 00000039 2**0 CONTENTS, RELOC, READONLY
|
2 LXCKLLT1 00000003 00000000 00000000 00000043 2**0 CONTENTS, RELOC, READONLY
|
||||||
3 LXMOVEUP 0000000a 00000000 00000000 0000003c 2**0 CONTENTS, RELOC, READONLY
|
3 LXMOVEUP 0000000a 00000000 00000000 00000046 2**0 CONTENTS, RELOC, READONLY
|
||||||
4 N2BSMA10 00000003 00000000 00000000 00000046 2**0 CONTENTS, RELOC, READONLY
|
4 N2BSMA10 00000003 00000000 00000000 00000050 2**0 CONTENTS, RELOC, READONLY
|
||||||
5 N2BFAS10 00000002 00000000 00000000 00000049 2**0 CONTENTS, RELOC, READONLY
|
5 N2BFAS10 00000002 00000000 00000000 00000053 2**0 CONTENTS, RELOC, READONLY
|
||||||
6 N2BFAS11 00000006 00000000 00000000 0000004b 2**0 CONTENTS, READONLY
|
6 N2BFAS11 00000006 00000000 00000000 00000055 2**0 CONTENTS, READONLY
|
||||||
7 N2BDEC10 0000000b 00000000 00000000 00000051 2**0 CONTENTS, READONLY
|
7 N2BDEC10 0000000b 00000000 00000000 0000005b 2**0 CONTENTS, READONLY
|
||||||
8 N2BSMA20 00000005 00000000 00000000 0000005c 2**0 CONTENTS, RELOC, READONLY
|
8 N2BSMA20 00000005 00000000 00000000 00000066 2**0 CONTENTS, RELOC, READONLY
|
||||||
9 N2BFAS20 00000009 00000000 00000000 00000061 2**0 CONTENTS, RELOC, READONLY
|
9 N2BFAS20 00000009 00000000 00000000 0000006b 2**0 CONTENTS, RELOC, READONLY
|
||||||
10 N2BDEC20 0000000d 00000000 00000000 0000006a 2**0 CONTENTS, READONLY
|
10 N2BDEC20 0000000d 00000000 00000000 00000074 2**0 CONTENTS, READONLY
|
||||||
11 N2BSMA30 0000000d 00000000 00000000 00000077 2**0 CONTENTS, RELOC, READONLY
|
11 N2BSMA30 0000000d 00000000 00000000 00000081 2**0 CONTENTS, RELOC, READONLY
|
||||||
12 N2BFAS30 0000000f 00000000 00000000 00000084 2**0 CONTENTS, RELOC, READONLY
|
12 N2BFAS30 0000000f 00000000 00000000 0000008e 2**0 CONTENTS, RELOC, READONLY
|
||||||
13 N2BDEC30 0000003e 00000000 00000000 00000093 2**0 CONTENTS, RELOC, READONLY
|
13 N2BDEC30 0000003e 00000000 00000000 0000009d 2**0 CONTENTS, RELOC, READONLY
|
||||||
14 N2BSMA40 0000000d 00000000 00000000 000000d1 2**0 CONTENTS, RELOC, READONLY
|
14 N2BSMA40 0000000d 00000000 00000000 000000db 2**0 CONTENTS, RELOC, READONLY
|
||||||
15 N2BFAS40 0000000f 00000000 00000000 000000de 2**0 CONTENTS, RELOC, READONLY
|
15 N2BFAS40 0000000f 00000000 00000000 000000e8 2**0 CONTENTS, RELOC, READONLY
|
||||||
16 N2BSMA50 00000002 00000000 00000000 000000ed 2**0 CONTENTS, READONLY
|
16 N2BSMA50 00000002 00000000 00000000 000000f7 2**0 CONTENTS, READONLY
|
||||||
17 N2BFAS50 00000003 00000000 00000000 000000ef 2**0 CONTENTS, READONLY
|
17 N2BFAS50 00000003 00000000 00000000 000000f9 2**0 CONTENTS, READONLY
|
||||||
18 N2BDEC50 00000009 00000000 00000000 000000f2 2**0 CONTENTS, READONLY
|
18 N2BDEC50 00000009 00000000 00000000 000000fc 2**0 CONTENTS, READONLY
|
||||||
19 N2BSMA60 0000000c 00000000 00000000 000000fb 2**0 CONTENTS, RELOC, READONLY
|
19 N2BSMA60 0000000c 00000000 00000000 00000105 2**0 CONTENTS, RELOC, READONLY
|
||||||
20 N2BFAS60 00000019 00000000 00000000 00000107 2**0 CONTENTS, RELOC, READONLY
|
20 N2BFAS60 00000019 00000000 00000000 00000111 2**0 CONTENTS, RELOC, READONLY
|
||||||
21 N2BFAS61 00000016 00000000 00000000 00000120 2**0 CONTENTS, RELOC, READONLY
|
21 N2BFAS61 00000016 00000000 00000000 0000012a 2**0 CONTENTS, RELOC, READONLY
|
||||||
22 N2BDEC60 00000000 00000000 00000000 00000136 2**0 CONTENTS, READONLY
|
22 N2BDEC60 00000000 00000000 00000000 00000140 2**0 CONTENTS, READONLY
|
||||||
23 N2DSMA10 00000003 00000000 00000000 00000136 2**0 CONTENTS, RELOC, READONLY
|
23 N2DSMA10 00000003 00000000 00000000 00000140 2**0 CONTENTS, RELOC, READONLY
|
||||||
24 N2DFAS10 00000002 00000000 00000000 00000139 2**0 CONTENTS, RELOC, READONLY
|
24 N2DFAS10 00000002 00000000 00000000 00000143 2**0 CONTENTS, RELOC, READONLY
|
||||||
25 N2DFAS11 00000006 00000000 00000000 0000013b 2**0 CONTENTS, READONLY
|
25 N2DFAS11 00000006 00000000 00000000 00000145 2**0 CONTENTS, READONLY
|
||||||
26 N2DDEC10 0000000b 00000000 00000000 00000141 2**0 CONTENTS, READONLY
|
26 N2DDEC10 0000000b 00000000 00000000 0000014b 2**0 CONTENTS, READONLY
|
||||||
27 N2DSMA20 00000005 00000000 00000000 0000014c 2**0 CONTENTS, RELOC, READONLY
|
27 N2DSMA20 00000005 00000000 00000000 00000156 2**0 CONTENTS, RELOC, READONLY
|
||||||
28 N2DFAS20 00000009 00000000 00000000 00000151 2**0 CONTENTS, RELOC, READONLY
|
28 N2DFAS20 00000009 00000000 00000000 0000015b 2**0 CONTENTS, RELOC, READONLY
|
||||||
29 N2DDEC20 0000000d 00000000 00000000 0000015a 2**0 CONTENTS, READONLY
|
29 N2DDEC20 0000000d 00000000 00000000 00000164 2**0 CONTENTS, READONLY
|
||||||
30 N2DSMA30 0000000d 00000000 00000000 00000167 2**0 CONTENTS, RELOC, READONLY
|
30 N2DSMA30 0000000d 00000000 00000000 00000171 2**0 CONTENTS, RELOC, READONLY
|
||||||
31 N2DFAS30 0000000f 00000000 00000000 00000174 2**0 CONTENTS, RELOC, READONLY
|
31 N2DFAS30 0000000f 00000000 00000000 0000017e 2**0 CONTENTS, RELOC, READONLY
|
||||||
32 N2DDEC30 00000052 00000000 00000000 00000183 2**0 CONTENTS, RELOC, READONLY
|
32 N2DDEC30 00000052 00000000 00000000 0000018d 2**0 CONTENTS, RELOC, READONLY
|
||||||
33 N2DSMA40 0000000d 00000000 00000000 000001d5 2**0 CONTENTS, RELOC, READONLY
|
33 N2DSMA40 0000000d 00000000 00000000 000001df 2**0 CONTENTS, RELOC, READONLY
|
||||||
34 N2DFAS40 0000000f 00000000 00000000 000001e2 2**0 CONTENTS, RELOC, READONLY
|
34 N2DFAS40 0000000f 00000000 00000000 000001ec 2**0 CONTENTS, RELOC, READONLY
|
||||||
35 N2DSMA50 00000002 00000000 00000000 000001f1 2**0 CONTENTS, READONLY
|
35 N2DSMA50 00000002 00000000 00000000 000001fb 2**0 CONTENTS, READONLY
|
||||||
36 N2DFAS50 00000003 00000000 00000000 000001f3 2**0 CONTENTS, READONLY
|
36 N2DFAS50 00000003 00000000 00000000 000001fd 2**0 CONTENTS, READONLY
|
||||||
37 N2DDEC50 00000009 00000000 00000000 000001f6 2**0 CONTENTS, READONLY
|
37 N2DDEC50 00000009 00000000 00000000 00000200 2**0 CONTENTS, READONLY
|
||||||
38 N2DSMA60 0000000c 00000000 00000000 000001ff 2**0 CONTENTS, RELOC, READONLY
|
38 N2DSMA60 0000000c 00000000 00000000 00000209 2**0 CONTENTS, RELOC, READONLY
|
||||||
39 N2DFAS60 00000019 00000000 00000000 0000020b 2**0 CONTENTS, RELOC, READONLY
|
39 N2DFAS60 00000019 00000000 00000000 00000215 2**0 CONTENTS, RELOC, READONLY
|
||||||
40 N2DFAS61 00000016 00000000 00000000 00000224 2**0 CONTENTS, RELOC, READONLY
|
40 N2DFAS61 00000016 00000000 00000000 0000022e 2**0 CONTENTS, RELOC, READONLY
|
||||||
41 N2DDEC60 00000000 00000000 00000000 0000023a 2**0 CONTENTS, READONLY
|
41 N2DDEC60 00000000 00000000 00000000 00000244 2**0 CONTENTS, READONLY
|
||||||
42 N2ESMA10 00000003 00000000 00000000 0000023a 2**0 CONTENTS, RELOC, READONLY
|
42 N2ESMA10 00000003 00000000 00000000 00000244 2**0 CONTENTS, RELOC, READONLY
|
||||||
43 N2EFAS10 00000002 00000000 00000000 0000023d 2**0 CONTENTS, RELOC, READONLY
|
43 N2EFAS10 00000002 00000000 00000000 00000247 2**0 CONTENTS, RELOC, READONLY
|
||||||
44 N2EFAS11 00000006 00000000 00000000 0000023f 2**0 CONTENTS, READONLY
|
44 N2EFAS11 00000006 00000000 00000000 00000249 2**0 CONTENTS, READONLY
|
||||||
45 N2EDEC10 0000000b 00000000 00000000 00000245 2**0 CONTENTS, READONLY
|
45 N2EDEC10 0000000b 00000000 00000000 0000024f 2**0 CONTENTS, READONLY
|
||||||
46 N2ESMA20 00000005 00000000 00000000 00000250 2**0 CONTENTS, RELOC, READONLY
|
46 N2ESMA20 00000005 00000000 00000000 0000025a 2**0 CONTENTS, RELOC, READONLY
|
||||||
47 N2EFAS20 00000009 00000000 00000000 00000255 2**0 CONTENTS, RELOC, READONLY
|
47 N2EFAS20 00000009 00000000 00000000 0000025f 2**0 CONTENTS, RELOC, READONLY
|
||||||
48 N2EDEC20 0000000d 00000000 00000000 0000025e 2**0 CONTENTS, READONLY
|
48 N2EDEC20 0000000d 00000000 00000000 00000268 2**0 CONTENTS, READONLY
|
||||||
49 N2ESMA30 0000000d 00000000 00000000 0000026b 2**0 CONTENTS, RELOC, READONLY
|
49 N2ESMA30 0000000d 00000000 00000000 00000275 2**0 CONTENTS, RELOC, READONLY
|
||||||
50 N2EFAS30 0000000f 00000000 00000000 00000278 2**0 CONTENTS, RELOC, READONLY
|
50 N2EFAS30 0000000f 00000000 00000000 00000282 2**0 CONTENTS, RELOC, READONLY
|
||||||
51 N2EDEC30 0000005f 00000000 00000000 00000287 2**0 CONTENTS, RELOC, READONLY
|
51 N2EDEC30 0000005f 00000000 00000000 00000291 2**0 CONTENTS, RELOC, READONLY
|
||||||
52 N2ESMA40 0000000d 00000000 00000000 000002e6 2**0 CONTENTS, RELOC, READONLY
|
52 N2ESMA40 0000000d 00000000 00000000 000002f0 2**0 CONTENTS, RELOC, READONLY
|
||||||
53 N2EFAS40 0000000f 00000000 00000000 000002f3 2**0 CONTENTS, RELOC, READONLY
|
53 N2EFAS40 0000000f 00000000 00000000 000002fd 2**0 CONTENTS, RELOC, READONLY
|
||||||
54 N2ESMA50 00000002 00000000 00000000 00000302 2**0 CONTENTS, READONLY
|
54 N2ESMA50 00000002 00000000 00000000 0000030c 2**0 CONTENTS, READONLY
|
||||||
55 N2EFAS50 00000003 00000000 00000000 00000304 2**0 CONTENTS, READONLY
|
55 N2EFAS50 00000003 00000000 00000000 0000030e 2**0 CONTENTS, READONLY
|
||||||
56 N2EDEC50 00000009 00000000 00000000 00000307 2**0 CONTENTS, READONLY
|
56 N2EDEC50 00000009 00000000 00000000 00000311 2**0 CONTENTS, READONLY
|
||||||
57 N2ESMA60 0000000c 00000000 00000000 00000310 2**0 CONTENTS, RELOC, READONLY
|
57 N2ESMA60 0000000c 00000000 00000000 0000031a 2**0 CONTENTS, RELOC, READONLY
|
||||||
58 N2EFAS60 00000019 00000000 00000000 0000031c 2**0 CONTENTS, RELOC, READONLY
|
58 N2EFAS60 00000019 00000000 00000000 00000326 2**0 CONTENTS, RELOC, READONLY
|
||||||
59 N2EFAS61 00000016 00000000 00000000 00000335 2**0 CONTENTS, RELOC, READONLY
|
59 N2EFAS61 00000016 00000000 00000000 0000033f 2**0 CONTENTS, RELOC, READONLY
|
||||||
60 N2EDEC60 00000000 00000000 00000000 0000034b 2**0 CONTENTS, READONLY
|
60 N2EDEC60 00000000 00000000 00000000 00000355 2**0 CONTENTS, READONLY
|
||||||
61 LZMA_DEC00 0000002e 00000000 00000000 0000034b 2**0 CONTENTS, RELOC, READONLY
|
61 LZMA_DEC00 0000002e 00000000 00000000 00000355 2**0 CONTENTS, RELOC, READONLY
|
||||||
62 LZMA_ELF00 00000048 00000000 00000000 00000379 2**0 CONTENTS, READONLY
|
62 LZMA_ELF00 00000048 00000000 00000000 00000383 2**0 CONTENTS, READONLY
|
||||||
63 LZMA_DEC10 00000a86 00000000 00000000 000003c1 2**0 CONTENTS, READONLY
|
63 LZMA_DEC10 00000a86 00000000 00000000 000003cb 2**0 CONTENTS, READONLY
|
||||||
64 LZMA_DEC20 00000a86 00000000 00000000 00000e47 2**0 CONTENTS, READONLY
|
64 LZMA_DEC20 00000a86 00000000 00000000 00000e51 2**0 CONTENTS, READONLY
|
||||||
65 LZMA_DEC30 0000001a 00000000 00000000 000018cd 2**0 CONTENTS, READONLY
|
65 LZMA_DEC30 0000001a 00000000 00000000 000018d7 2**0 CONTENTS, READONLY
|
||||||
66 LXCKLLT9 00000003 00000000 00000000 000018e7 2**0 CONTENTS, READONLY
|
66 LXCKLLT9 00000003 00000000 00000000 000018f1 2**0 CONTENTS, READONLY
|
||||||
67 ctok32.00 00000009 00000000 00000000 000018ea 2**0 CONTENTS, RELOC, READONLY
|
67 ctok32.00 00000009 00000000 00000000 000018f4 2**0 CONTENTS, RELOC, READONLY
|
||||||
68 ctok32.10 0000000e 00000000 00000000 000018f3 2**0 CONTENTS, RELOC, READONLY
|
68 ctok32.10 0000000e 00000000 00000000 000018fd 2**0 CONTENTS, RELOC, READONLY
|
||||||
69 ctok32.20 00000021 00000000 00000000 00001901 2**0 CONTENTS, RELOC, READONLY
|
69 ctok32.20 00000021 00000000 00000000 0000190b 2**0 CONTENTS, RELOC, READONLY
|
||||||
70 ctok32.30 00000007 00000000 00000000 00001922 2**0 CONTENTS, RELOC, READONLY
|
70 ctok32.30 00000007 00000000 00000000 0000192c 2**0 CONTENTS, RELOC, READONLY
|
||||||
71 ctok32.40 00000005 00000000 00000000 00001929 2**0 CONTENTS, RELOC, READONLY
|
71 ctok32.40 00000005 00000000 00000000 00001933 2**0 CONTENTS, RELOC, READONLY
|
||||||
72 LXCALLT9 00000002 00000000 00000000 0000192e 2**0 CONTENTS, READONLY
|
72 LXCALLT9 00000002 00000000 00000000 00001938 2**0 CONTENTS, READONLY
|
||||||
73 CALLTR00 0000000e 00000000 00000000 00001930 2**0 CONTENTS, RELOC, READONLY
|
73 CALLTR00 0000000e 00000000 00000000 0000193a 2**0 CONTENTS, RELOC, READONLY
|
||||||
74 CTCLEVE1 00000005 00000000 00000000 0000193e 2**0 CONTENTS, RELOC, READONLY
|
74 CTCLEVE1 00000005 00000000 00000000 00001948 2**0 CONTENTS, RELOC, READONLY
|
||||||
75 CALLTR01 00000005 00000000 00000000 00001943 2**0 CONTENTS, READONLY
|
75 CALLTR01 00000005 00000000 00000000 0000194d 2**0 CONTENTS, READONLY
|
||||||
76 CTBSHR01 00000004 00000000 00000000 00001948 2**0 CONTENTS, READONLY
|
76 CTBSHR01 00000004 00000000 00000000 00001952 2**0 CONTENTS, READONLY
|
||||||
77 CTBROR01 00000002 00000000 00000000 0000194c 2**0 CONTENTS, READONLY
|
77 CTBROR01 00000002 00000000 00000000 00001956 2**0 CONTENTS, READONLY
|
||||||
78 CTBSWA01 00000005 00000000 00000000 0000194e 2**0 CONTENTS, READONLY
|
78 CTBSWA01 00000005 00000000 00000000 00001958 2**0 CONTENTS, READONLY
|
||||||
79 CALLTR02 0000000e 00000000 00000000 00001953 2**0 CONTENTS, RELOC, READONLY
|
79 CALLTR02 0000000e 00000000 00000000 0000195d 2**0 CONTENTS, RELOC, READONLY
|
||||||
80 CALLTR10 00000005 00000000 00000000 00001961 2**0 CONTENTS, RELOC, READONLY
|
80 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY
|
||||||
81 CALLTRE8 00000002 00000000 00000000 00001966 2**0 CONTENTS, READONLY
|
81 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY
|
||||||
82 CALLTRE9 00000002 00000000 00000000 00001968 2**0 CONTENTS, READONLY
|
82 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY
|
||||||
83 CALLTR11 00000004 00000000 00000000 0000196a 2**0 CONTENTS, RELOC, READONLY
|
83 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY
|
||||||
84 CTCLEVE2 00000005 00000000 00000000 0000196e 2**0 CONTENTS, RELOC, READONLY
|
84 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY
|
||||||
85 CALLTR12 00000002 00000000 00000000 00001973 2**0 CONTENTS, READONLY
|
85 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
|
||||||
86 CTBSHR11 00000004 00000000 00000000 00001975 2**0 CONTENTS, READONLY
|
86 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY
|
||||||
87 CTBROR11 00000002 00000000 00000000 00001979 2**0 CONTENTS, READONLY
|
87 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY
|
||||||
88 CTBSWA11 00000005 00000000 00000000 0000197b 2**0 CONTENTS, READONLY
|
88 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY
|
||||||
89 CALLTR13 00000005 00000000 00000000 00001980 2**0 CONTENTS, RELOC, READONLY
|
89 CALLTR13 00000005 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY
|
||||||
90 LINUX990 00000037 00000000 00000000 00001985 2**0 CONTENTS, READONLY
|
90 LINUX990 00000037 00000000 00000000 0000198f 2**0 CONTENTS, READONLY
|
||||||
91 LINUX991 00000003 00000000 00000000 000019bc 2**0 CONTENTS, READONLY
|
91 LINUX991 00000003 00000000 00000000 000019c6 2**0 CONTENTS, READONLY
|
||||||
92 LINUX992 00000002 00000000 00000000 000019bf 2**0 CONTENTS, READONLY
|
92 LINUX992 00000002 00000000 00000000 000019c9 2**0 CONTENTS, READONLY
|
||||||
93 UPX1HEAD 00000020 00000000 00000000 000019c1 2**0 CONTENTS, READONLY
|
93 UPX1HEAD 00000020 00000000 00000000 000019cb 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
|
||||||
@ -191,6 +191,8 @@ SYMBOL TABLE:
|
|||||||
00000000 l d LINUX991 00000000 LINUX991
|
00000000 l d LINUX991 00000000 LINUX991
|
||||||
00000000 l d LINUX992 00000000 LINUX992
|
00000000 l d LINUX992 00000000 LINUX992
|
||||||
00000000 l d UPX1HEAD 00000000 UPX1HEAD
|
00000000 l d UPX1HEAD 00000000 UPX1HEAD
|
||||||
|
00000000 *UND* 00000000 ENTRY_POINT
|
||||||
|
00000000 *UND* 00000000 PHYSICAL_START
|
||||||
00000000 *UND* 00000000 filter_cto
|
00000000 *UND* 00000000 filter_cto
|
||||||
00000000 *UND* 00000000 filter_length
|
00000000 *UND* 00000000 filter_length
|
||||||
00000000 *UND* 00000000 lzma_stack_adjust
|
00000000 *UND* 00000000 lzma_stack_adjust
|
||||||
@ -198,6 +200,11 @@ SYMBOL TABLE:
|
|||||||
00000000 *UND* 00000000 lzma_c_len
|
00000000 *UND* 00000000 lzma_c_len
|
||||||
00000000 *UND* 00000000 lzma_properties
|
00000000 *UND* 00000000 lzma_properties
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [LINUX000]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000003 R_386_32 ENTRY_POINT
|
||||||
|
00000008 R_386_32 PHYSICAL_START
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [LXCKLLT1]:
|
RELOCATION RECORDS FOR [LXCKLLT1]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
00000002 R_386_8 filter_cto
|
00000002 R_386_8 filter_cto
|
||||||
|
|||||||
@ -2,100 +2,100 @@ tmp/i386-linux.kernel.vmlinux.bin: file format elf32-i386
|
|||||||
|
|
||||||
Sections:
|
Sections:
|
||||||
Idx Name Size VMA LMA File off Algn Flags
|
Idx Name Size VMA LMA File off Algn Flags
|
||||||
0 LINUX000 00000004 00000000 00000000 00000034 2**0 CONTENTS, READONLY
|
0 LINUX000 0000000e 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
|
||||||
1 LXCALLT1 00000001 00000000 00000000 00000038 2**0 CONTENTS, READONLY
|
1 LXCALLT1 00000001 00000000 00000000 00000042 2**0 CONTENTS, READONLY
|
||||||
2 LXCKLLT1 00000003 00000000 00000000 00000039 2**0 CONTENTS, RELOC, READONLY
|
2 LXCKLLT1 00000003 00000000 00000000 00000043 2**0 CONTENTS, RELOC, READONLY
|
||||||
3 LXMOVEUP 0000000a 00000000 00000000 0000003c 2**0 CONTENTS, RELOC, READONLY
|
3 LXMOVEUP 0000000a 00000000 00000000 00000046 2**0 CONTENTS, RELOC, READONLY
|
||||||
4 N2BSMA10 00000003 00000000 00000000 00000046 2**0 CONTENTS, RELOC, READONLY
|
4 N2BSMA10 00000003 00000000 00000000 00000050 2**0 CONTENTS, RELOC, READONLY
|
||||||
5 N2BFAS10 00000002 00000000 00000000 00000049 2**0 CONTENTS, RELOC, READONLY
|
5 N2BFAS10 00000002 00000000 00000000 00000053 2**0 CONTENTS, RELOC, READONLY
|
||||||
6 N2BFAS11 00000006 00000000 00000000 0000004b 2**0 CONTENTS, READONLY
|
6 N2BFAS11 00000006 00000000 00000000 00000055 2**0 CONTENTS, READONLY
|
||||||
7 N2BDEC10 0000000b 00000000 00000000 00000051 2**0 CONTENTS, READONLY
|
7 N2BDEC10 0000000b 00000000 00000000 0000005b 2**0 CONTENTS, READONLY
|
||||||
8 N2BSMA20 00000005 00000000 00000000 0000005c 2**0 CONTENTS, RELOC, READONLY
|
8 N2BSMA20 00000005 00000000 00000000 00000066 2**0 CONTENTS, RELOC, READONLY
|
||||||
9 N2BFAS20 00000009 00000000 00000000 00000061 2**0 CONTENTS, RELOC, READONLY
|
9 N2BFAS20 00000009 00000000 00000000 0000006b 2**0 CONTENTS, RELOC, READONLY
|
||||||
10 N2BDEC20 0000000d 00000000 00000000 0000006a 2**0 CONTENTS, READONLY
|
10 N2BDEC20 0000000d 00000000 00000000 00000074 2**0 CONTENTS, READONLY
|
||||||
11 N2BSMA30 0000000d 00000000 00000000 00000077 2**0 CONTENTS, RELOC, READONLY
|
11 N2BSMA30 0000000d 00000000 00000000 00000081 2**0 CONTENTS, RELOC, READONLY
|
||||||
12 N2BFAS30 0000000f 00000000 00000000 00000084 2**0 CONTENTS, RELOC, READONLY
|
12 N2BFAS30 0000000f 00000000 00000000 0000008e 2**0 CONTENTS, RELOC, READONLY
|
||||||
13 N2BDEC30 0000003e 00000000 00000000 00000093 2**0 CONTENTS, RELOC, READONLY
|
13 N2BDEC30 0000003e 00000000 00000000 0000009d 2**0 CONTENTS, RELOC, READONLY
|
||||||
14 N2BSMA40 0000000d 00000000 00000000 000000d1 2**0 CONTENTS, RELOC, READONLY
|
14 N2BSMA40 0000000d 00000000 00000000 000000db 2**0 CONTENTS, RELOC, READONLY
|
||||||
15 N2BFAS40 0000000f 00000000 00000000 000000de 2**0 CONTENTS, RELOC, READONLY
|
15 N2BFAS40 0000000f 00000000 00000000 000000e8 2**0 CONTENTS, RELOC, READONLY
|
||||||
16 N2BSMA50 00000002 00000000 00000000 000000ed 2**0 CONTENTS, READONLY
|
16 N2BSMA50 00000002 00000000 00000000 000000f7 2**0 CONTENTS, READONLY
|
||||||
17 N2BFAS50 00000003 00000000 00000000 000000ef 2**0 CONTENTS, READONLY
|
17 N2BFAS50 00000003 00000000 00000000 000000f9 2**0 CONTENTS, READONLY
|
||||||
18 N2BDEC50 00000009 00000000 00000000 000000f2 2**0 CONTENTS, READONLY
|
18 N2BDEC50 00000009 00000000 00000000 000000fc 2**0 CONTENTS, READONLY
|
||||||
19 N2BSMA60 0000000c 00000000 00000000 000000fb 2**0 CONTENTS, RELOC, READONLY
|
19 N2BSMA60 0000000c 00000000 00000000 00000105 2**0 CONTENTS, RELOC, READONLY
|
||||||
20 N2BFAS60 00000019 00000000 00000000 00000107 2**0 CONTENTS, RELOC, READONLY
|
20 N2BFAS60 00000019 00000000 00000000 00000111 2**0 CONTENTS, RELOC, READONLY
|
||||||
21 N2BFAS61 00000016 00000000 00000000 00000120 2**0 CONTENTS, RELOC, READONLY
|
21 N2BFAS61 00000016 00000000 00000000 0000012a 2**0 CONTENTS, RELOC, READONLY
|
||||||
22 N2BDEC60 00000000 00000000 00000000 00000136 2**0 CONTENTS, READONLY
|
22 N2BDEC60 00000000 00000000 00000000 00000140 2**0 CONTENTS, READONLY
|
||||||
23 N2DSMA10 00000003 00000000 00000000 00000136 2**0 CONTENTS, RELOC, READONLY
|
23 N2DSMA10 00000003 00000000 00000000 00000140 2**0 CONTENTS, RELOC, READONLY
|
||||||
24 N2DFAS10 00000002 00000000 00000000 00000139 2**0 CONTENTS, RELOC, READONLY
|
24 N2DFAS10 00000002 00000000 00000000 00000143 2**0 CONTENTS, RELOC, READONLY
|
||||||
25 N2DFAS11 00000006 00000000 00000000 0000013b 2**0 CONTENTS, READONLY
|
25 N2DFAS11 00000006 00000000 00000000 00000145 2**0 CONTENTS, READONLY
|
||||||
26 N2DDEC10 0000000b 00000000 00000000 00000141 2**0 CONTENTS, READONLY
|
26 N2DDEC10 0000000b 00000000 00000000 0000014b 2**0 CONTENTS, READONLY
|
||||||
27 N2DSMA20 00000005 00000000 00000000 0000014c 2**0 CONTENTS, RELOC, READONLY
|
27 N2DSMA20 00000005 00000000 00000000 00000156 2**0 CONTENTS, RELOC, READONLY
|
||||||
28 N2DFAS20 00000009 00000000 00000000 00000151 2**0 CONTENTS, RELOC, READONLY
|
28 N2DFAS20 00000009 00000000 00000000 0000015b 2**0 CONTENTS, RELOC, READONLY
|
||||||
29 N2DDEC20 0000000d 00000000 00000000 0000015a 2**0 CONTENTS, READONLY
|
29 N2DDEC20 0000000d 00000000 00000000 00000164 2**0 CONTENTS, READONLY
|
||||||
30 N2DSMA30 0000000d 00000000 00000000 00000167 2**0 CONTENTS, RELOC, READONLY
|
30 N2DSMA30 0000000d 00000000 00000000 00000171 2**0 CONTENTS, RELOC, READONLY
|
||||||
31 N2DFAS30 0000000f 00000000 00000000 00000174 2**0 CONTENTS, RELOC, READONLY
|
31 N2DFAS30 0000000f 00000000 00000000 0000017e 2**0 CONTENTS, RELOC, READONLY
|
||||||
32 N2DDEC30 00000052 00000000 00000000 00000183 2**0 CONTENTS, RELOC, READONLY
|
32 N2DDEC30 00000052 00000000 00000000 0000018d 2**0 CONTENTS, RELOC, READONLY
|
||||||
33 N2DSMA40 0000000d 00000000 00000000 000001d5 2**0 CONTENTS, RELOC, READONLY
|
33 N2DSMA40 0000000d 00000000 00000000 000001df 2**0 CONTENTS, RELOC, READONLY
|
||||||
34 N2DFAS40 0000000f 00000000 00000000 000001e2 2**0 CONTENTS, RELOC, READONLY
|
34 N2DFAS40 0000000f 00000000 00000000 000001ec 2**0 CONTENTS, RELOC, READONLY
|
||||||
35 N2DSMA50 00000002 00000000 00000000 000001f1 2**0 CONTENTS, READONLY
|
35 N2DSMA50 00000002 00000000 00000000 000001fb 2**0 CONTENTS, READONLY
|
||||||
36 N2DFAS50 00000003 00000000 00000000 000001f3 2**0 CONTENTS, READONLY
|
36 N2DFAS50 00000003 00000000 00000000 000001fd 2**0 CONTENTS, READONLY
|
||||||
37 N2DDEC50 00000009 00000000 00000000 000001f6 2**0 CONTENTS, READONLY
|
37 N2DDEC50 00000009 00000000 00000000 00000200 2**0 CONTENTS, READONLY
|
||||||
38 N2DSMA60 0000000c 00000000 00000000 000001ff 2**0 CONTENTS, RELOC, READONLY
|
38 N2DSMA60 0000000c 00000000 00000000 00000209 2**0 CONTENTS, RELOC, READONLY
|
||||||
39 N2DFAS60 00000019 00000000 00000000 0000020b 2**0 CONTENTS, RELOC, READONLY
|
39 N2DFAS60 00000019 00000000 00000000 00000215 2**0 CONTENTS, RELOC, READONLY
|
||||||
40 N2DFAS61 00000016 00000000 00000000 00000224 2**0 CONTENTS, RELOC, READONLY
|
40 N2DFAS61 00000016 00000000 00000000 0000022e 2**0 CONTENTS, RELOC, READONLY
|
||||||
41 N2DDEC60 00000000 00000000 00000000 0000023a 2**0 CONTENTS, READONLY
|
41 N2DDEC60 00000000 00000000 00000000 00000244 2**0 CONTENTS, READONLY
|
||||||
42 N2ESMA10 00000003 00000000 00000000 0000023a 2**0 CONTENTS, RELOC, READONLY
|
42 N2ESMA10 00000003 00000000 00000000 00000244 2**0 CONTENTS, RELOC, READONLY
|
||||||
43 N2EFAS10 00000002 00000000 00000000 0000023d 2**0 CONTENTS, RELOC, READONLY
|
43 N2EFAS10 00000002 00000000 00000000 00000247 2**0 CONTENTS, RELOC, READONLY
|
||||||
44 N2EFAS11 00000006 00000000 00000000 0000023f 2**0 CONTENTS, READONLY
|
44 N2EFAS11 00000006 00000000 00000000 00000249 2**0 CONTENTS, READONLY
|
||||||
45 N2EDEC10 0000000b 00000000 00000000 00000245 2**0 CONTENTS, READONLY
|
45 N2EDEC10 0000000b 00000000 00000000 0000024f 2**0 CONTENTS, READONLY
|
||||||
46 N2ESMA20 00000005 00000000 00000000 00000250 2**0 CONTENTS, RELOC, READONLY
|
46 N2ESMA20 00000005 00000000 00000000 0000025a 2**0 CONTENTS, RELOC, READONLY
|
||||||
47 N2EFAS20 00000009 00000000 00000000 00000255 2**0 CONTENTS, RELOC, READONLY
|
47 N2EFAS20 00000009 00000000 00000000 0000025f 2**0 CONTENTS, RELOC, READONLY
|
||||||
48 N2EDEC20 0000000d 00000000 00000000 0000025e 2**0 CONTENTS, READONLY
|
48 N2EDEC20 0000000d 00000000 00000000 00000268 2**0 CONTENTS, READONLY
|
||||||
49 N2ESMA30 0000000d 00000000 00000000 0000026b 2**0 CONTENTS, RELOC, READONLY
|
49 N2ESMA30 0000000d 00000000 00000000 00000275 2**0 CONTENTS, RELOC, READONLY
|
||||||
50 N2EFAS30 0000000f 00000000 00000000 00000278 2**0 CONTENTS, RELOC, READONLY
|
50 N2EFAS30 0000000f 00000000 00000000 00000282 2**0 CONTENTS, RELOC, READONLY
|
||||||
51 N2EDEC30 0000005f 00000000 00000000 00000287 2**0 CONTENTS, RELOC, READONLY
|
51 N2EDEC30 0000005f 00000000 00000000 00000291 2**0 CONTENTS, RELOC, READONLY
|
||||||
52 N2ESMA40 0000000d 00000000 00000000 000002e6 2**0 CONTENTS, RELOC, READONLY
|
52 N2ESMA40 0000000d 00000000 00000000 000002f0 2**0 CONTENTS, RELOC, READONLY
|
||||||
53 N2EFAS40 0000000f 00000000 00000000 000002f3 2**0 CONTENTS, RELOC, READONLY
|
53 N2EFAS40 0000000f 00000000 00000000 000002fd 2**0 CONTENTS, RELOC, READONLY
|
||||||
54 N2ESMA50 00000002 00000000 00000000 00000302 2**0 CONTENTS, READONLY
|
54 N2ESMA50 00000002 00000000 00000000 0000030c 2**0 CONTENTS, READONLY
|
||||||
55 N2EFAS50 00000003 00000000 00000000 00000304 2**0 CONTENTS, READONLY
|
55 N2EFAS50 00000003 00000000 00000000 0000030e 2**0 CONTENTS, READONLY
|
||||||
56 N2EDEC50 00000009 00000000 00000000 00000307 2**0 CONTENTS, READONLY
|
56 N2EDEC50 00000009 00000000 00000000 00000311 2**0 CONTENTS, READONLY
|
||||||
57 N2ESMA60 0000000c 00000000 00000000 00000310 2**0 CONTENTS, RELOC, READONLY
|
57 N2ESMA60 0000000c 00000000 00000000 0000031a 2**0 CONTENTS, RELOC, READONLY
|
||||||
58 N2EFAS60 00000019 00000000 00000000 0000031c 2**0 CONTENTS, RELOC, READONLY
|
58 N2EFAS60 00000019 00000000 00000000 00000326 2**0 CONTENTS, RELOC, READONLY
|
||||||
59 N2EFAS61 00000016 00000000 00000000 00000335 2**0 CONTENTS, RELOC, READONLY
|
59 N2EFAS61 00000016 00000000 00000000 0000033f 2**0 CONTENTS, RELOC, READONLY
|
||||||
60 N2EDEC60 00000000 00000000 00000000 0000034b 2**0 CONTENTS, READONLY
|
60 N2EDEC60 00000000 00000000 00000000 00000355 2**0 CONTENTS, READONLY
|
||||||
61 LZMA_DEC00 0000002e 00000000 00000000 0000034b 2**0 CONTENTS, RELOC, READONLY
|
61 LZMA_DEC00 0000002e 00000000 00000000 00000355 2**0 CONTENTS, RELOC, READONLY
|
||||||
62 LZMA_ELF00 00000048 00000000 00000000 00000379 2**0 CONTENTS, READONLY
|
62 LZMA_ELF00 00000048 00000000 00000000 00000383 2**0 CONTENTS, READONLY
|
||||||
63 LZMA_DEC10 00000a86 00000000 00000000 000003c1 2**0 CONTENTS, READONLY
|
63 LZMA_DEC10 00000a86 00000000 00000000 000003cb 2**0 CONTENTS, READONLY
|
||||||
64 LZMA_DEC20 00000a86 00000000 00000000 00000e47 2**0 CONTENTS, READONLY
|
64 LZMA_DEC20 00000a86 00000000 00000000 00000e51 2**0 CONTENTS, READONLY
|
||||||
65 LZMA_DEC30 0000001a 00000000 00000000 000018cd 2**0 CONTENTS, READONLY
|
65 LZMA_DEC30 0000001a 00000000 00000000 000018d7 2**0 CONTENTS, READONLY
|
||||||
66 LXCKLLT9 00000003 00000000 00000000 000018e7 2**0 CONTENTS, READONLY
|
66 LXCKLLT9 00000003 00000000 00000000 000018f1 2**0 CONTENTS, READONLY
|
||||||
67 ctok32.00 00000009 00000000 00000000 000018ea 2**0 CONTENTS, RELOC, READONLY
|
67 ctok32.00 00000009 00000000 00000000 000018f4 2**0 CONTENTS, RELOC, READONLY
|
||||||
68 ctok32.10 0000000e 00000000 00000000 000018f3 2**0 CONTENTS, RELOC, READONLY
|
68 ctok32.10 0000000e 00000000 00000000 000018fd 2**0 CONTENTS, RELOC, READONLY
|
||||||
69 ctok32.20 00000021 00000000 00000000 00001901 2**0 CONTENTS, RELOC, READONLY
|
69 ctok32.20 00000021 00000000 00000000 0000190b 2**0 CONTENTS, RELOC, READONLY
|
||||||
70 ctok32.30 00000007 00000000 00000000 00001922 2**0 CONTENTS, RELOC, READONLY
|
70 ctok32.30 00000007 00000000 00000000 0000192c 2**0 CONTENTS, RELOC, READONLY
|
||||||
71 ctok32.40 00000005 00000000 00000000 00001929 2**0 CONTENTS, RELOC, READONLY
|
71 ctok32.40 00000005 00000000 00000000 00001933 2**0 CONTENTS, RELOC, READONLY
|
||||||
72 LXCALLT9 00000002 00000000 00000000 0000192e 2**0 CONTENTS, READONLY
|
72 LXCALLT9 00000002 00000000 00000000 00001938 2**0 CONTENTS, READONLY
|
||||||
73 CALLTR00 0000000e 00000000 00000000 00001930 2**0 CONTENTS, RELOC, READONLY
|
73 CALLTR00 0000000e 00000000 00000000 0000193a 2**0 CONTENTS, RELOC, READONLY
|
||||||
74 CTCLEVE1 00000005 00000000 00000000 0000193e 2**0 CONTENTS, RELOC, READONLY
|
74 CTCLEVE1 00000005 00000000 00000000 00001948 2**0 CONTENTS, RELOC, READONLY
|
||||||
75 CALLTR01 00000005 00000000 00000000 00001943 2**0 CONTENTS, READONLY
|
75 CALLTR01 00000005 00000000 00000000 0000194d 2**0 CONTENTS, READONLY
|
||||||
76 CTBSHR01 00000004 00000000 00000000 00001948 2**0 CONTENTS, READONLY
|
76 CTBSHR01 00000004 00000000 00000000 00001952 2**0 CONTENTS, READONLY
|
||||||
77 CTBROR01 00000002 00000000 00000000 0000194c 2**0 CONTENTS, READONLY
|
77 CTBROR01 00000002 00000000 00000000 00001956 2**0 CONTENTS, READONLY
|
||||||
78 CTBSWA01 00000005 00000000 00000000 0000194e 2**0 CONTENTS, READONLY
|
78 CTBSWA01 00000005 00000000 00000000 00001958 2**0 CONTENTS, READONLY
|
||||||
79 CALLTR02 0000000e 00000000 00000000 00001953 2**0 CONTENTS, RELOC, READONLY
|
79 CALLTR02 0000000e 00000000 00000000 0000195d 2**0 CONTENTS, RELOC, READONLY
|
||||||
80 CALLTR10 00000005 00000000 00000000 00001961 2**0 CONTENTS, RELOC, READONLY
|
80 CALLTR10 00000005 00000000 00000000 0000196b 2**0 CONTENTS, RELOC, READONLY
|
||||||
81 CALLTRE8 00000002 00000000 00000000 00001966 2**0 CONTENTS, READONLY
|
81 CALLTRE8 00000002 00000000 00000000 00001970 2**0 CONTENTS, READONLY
|
||||||
82 CALLTRE9 00000002 00000000 00000000 00001968 2**0 CONTENTS, READONLY
|
82 CALLTRE9 00000002 00000000 00000000 00001972 2**0 CONTENTS, READONLY
|
||||||
83 CALLTR11 00000004 00000000 00000000 0000196a 2**0 CONTENTS, RELOC, READONLY
|
83 CALLTR11 00000004 00000000 00000000 00001974 2**0 CONTENTS, RELOC, READONLY
|
||||||
84 CTCLEVE2 00000005 00000000 00000000 0000196e 2**0 CONTENTS, RELOC, READONLY
|
84 CTCLEVE2 00000005 00000000 00000000 00001978 2**0 CONTENTS, RELOC, READONLY
|
||||||
85 CALLTR12 00000002 00000000 00000000 00001973 2**0 CONTENTS, READONLY
|
85 CALLTR12 00000002 00000000 00000000 0000197d 2**0 CONTENTS, READONLY
|
||||||
86 CTBSHR11 00000004 00000000 00000000 00001975 2**0 CONTENTS, READONLY
|
86 CTBSHR11 00000004 00000000 00000000 0000197f 2**0 CONTENTS, READONLY
|
||||||
87 CTBROR11 00000002 00000000 00000000 00001979 2**0 CONTENTS, READONLY
|
87 CTBROR11 00000002 00000000 00000000 00001983 2**0 CONTENTS, READONLY
|
||||||
88 CTBSWA11 00000005 00000000 00000000 0000197b 2**0 CONTENTS, READONLY
|
88 CTBSWA11 00000005 00000000 00000000 00001985 2**0 CONTENTS, READONLY
|
||||||
89 CALLTR13 00000005 00000000 00000000 00001980 2**0 CONTENTS, RELOC, READONLY
|
89 CALLTR13 00000005 00000000 00000000 0000198a 2**0 CONTENTS, RELOC, READONLY
|
||||||
90 LINUX990 00000037 00000000 00000000 00001985 2**0 CONTENTS, READONLY
|
90 LINUX990 00000037 00000000 00000000 0000198f 2**0 CONTENTS, READONLY
|
||||||
91 LINUX991 00000003 00000000 00000000 000019bc 2**0 CONTENTS, READONLY
|
91 LINUX991 00000003 00000000 00000000 000019c6 2**0 CONTENTS, READONLY
|
||||||
92 LINUX992 00000002 00000000 00000000 000019bf 2**0 CONTENTS, READONLY
|
92 LINUX992 00000002 00000000 00000000 000019c9 2**0 CONTENTS, READONLY
|
||||||
93 UPX1HEAD 00000020 00000000 00000000 000019c1 2**0 CONTENTS, READONLY
|
93 UPX1HEAD 00000020 00000000 00000000 000019cb 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
|
||||||
@ -191,6 +191,8 @@ SYMBOL TABLE:
|
|||||||
00000000 l d LINUX991 00000000 LINUX991
|
00000000 l d LINUX991 00000000 LINUX991
|
||||||
00000000 l d LINUX992 00000000 LINUX992
|
00000000 l d LINUX992 00000000 LINUX992
|
||||||
00000000 l d UPX1HEAD 00000000 UPX1HEAD
|
00000000 l d UPX1HEAD 00000000 UPX1HEAD
|
||||||
|
00000000 *UND* 00000000 ENTRY_POINT
|
||||||
|
00000000 *UND* 00000000 PHYSICAL_START
|
||||||
00000000 *UND* 00000000 filter_cto
|
00000000 *UND* 00000000 filter_cto
|
||||||
00000000 *UND* 00000000 filter_length
|
00000000 *UND* 00000000 filter_length
|
||||||
00000000 *UND* 00000000 lzma_stack_adjust
|
00000000 *UND* 00000000 lzma_stack_adjust
|
||||||
@ -198,6 +200,11 @@ SYMBOL TABLE:
|
|||||||
00000000 *UND* 00000000 lzma_c_len
|
00000000 *UND* 00000000 lzma_c_len
|
||||||
00000000 *UND* 00000000 lzma_properties
|
00000000 *UND* 00000000 lzma_properties
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [LINUX000]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000003 R_386_32 ENTRY_POINT
|
||||||
|
00000008 R_386_32 PHYSICAL_START
|
||||||
|
|
||||||
RELOCATION RECORDS FOR [LXCKLLT1]:
|
RELOCATION RECORDS FOR [LXCKLLT1]:
|
||||||
OFFSET TYPE VALUE
|
OFFSET TYPE VALUE
|
||||||
00000002 R_386_8 filter_cto
|
00000002 R_386_8 filter_cto
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user