class Metasm::LoadedELF

Attributes

load_address[RW]

Public Instance Methods

addr_to_off(addr) click to toggle source
# File metasm/exe_format/elf.rb, line 677
def addr_to_off(addr)
        @load_address ||= 0
        addr >= @load_address ? addr - @load_address : addr if addr
end
decode_header(off = 0) click to toggle source

do not try to decode the section header by default

# File metasm/exe_format/elf_decode.rb, line 1082
def decode_header(off = 0)
        @encoded.ptr = off
        @header.decode self
        decode_program_header(@header.phoff+off)
end
decode_segments() click to toggle source

decodes the dynamic segment, fills segments.encoded

# File metasm/exe_format/elf_decode.rb, line 1069
def decode_segments
        if @load_address == 0 and @segments.find { |s| s.type == 'LOAD' and s.vaddr > @encoded.length }
                @load_address = @segments.find_all { |s| s.type == 'LOAD' }.map { |s| s.vaddr }.min
        end
        decode_segments_dynamic
        @segments.each { |s|
                if s.type == 'LOAD'
                        s.encoded = @encoded[addr_to_off(s.vaddr), s.memsz]
                end
        }
end