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 690 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 1139 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 1126 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