C# Class Reko.ImageLoaders.Elf.Relocators.x86_64Relocator

Inheritance: ElfRelocator64
Exibir arquivo Open project: uxmal/reko

Public Methods

Method Description
Relocate ( Program program ) : void According to the ELF x86_64 documentation, the .rela.plt and .plt tables should contain the same number of entries, even if the individual entry sizes are distinct. The entries in .real.plt refer to symbols while the entries in .plt are (writeable) pointers. Any caller that jumps to one of pointers in the .plt table is a "trampoline", and should be replaced in the decompiled code with just a call to the symbol obtained from the .real.plt section.
RelocateEntry ( Program program, ElfSymbol sym, ElfSection referringSection, Elf64_Rela rela ) : void
RelocationTypeToString ( uint type ) : string
x86_64Relocator ( ElfLoader64 loader ) : Reko.Core

Private Methods

Method Description
LoadImportReferencesFromRelaPlt ( ) : void

Method Details

Relocate() public method

According to the ELF x86_64 documentation, the .rela.plt and .plt tables should contain the same number of entries, even if the individual entry sizes are distinct. The entries in .real.plt refer to symbols while the entries in .plt are (writeable) pointers. Any caller that jumps to one of pointers in the .plt table is a "trampoline", and should be replaced in the decompiled code with just a call to the symbol obtained from the .real.plt section.
public Relocate ( Program program ) : void
program Program
return void

RelocateEntry() public method

public RelocateEntry ( Program program, ElfSymbol sym, ElfSection referringSection, Elf64_Rela rela ) : void
program Program
sym ElfSymbol
referringSection ElfSection
rela Elf64_Rela
return void

RelocationTypeToString() public method

public RelocationTypeToString ( uint type ) : string
type uint
return string

x86_64Relocator() public method

public x86_64Relocator ( ElfLoader64 loader ) : Reko.Core
loader ElfLoader64
return Reko.Core