Methods

Class/Module Index [+]

Quicksearch

Rex::ElfParsey::ElfBase::ElfHeader

Public Class Methods

new(rawdata) click to toggle source
# File lib/rex/elfparsey/elfbase.rb, line 155
def initialize(rawdata)

        # Identify the data encoding and parse ELF Header
        elf_header = ELF32_EHDR_LSB.make_struct

        if !elf_header.from_s(rawdata)
                raise ElfHeaderError, "Couldn't parse ELF Header", caller
        end

        if elf_header.v['e_ident'][EI_DATA,1].unpack('C')[0] == ELFDATA2MSB
                elf_header = ELF32_EHDR_MSB.make_struct

                if !elf_header.from_s(rawdata)
                        raise ElfHeaderError, "Couldn't parse ELF Header", caller
                end
        end

        unless [ ELFDATA2LSB, ELFDATA2MSB ].include?(
        elf_header.v['e_ident'][EI_DATA,1].unpack('C')[0])
                raise ElfHeaderError, "Invalid data encoding", caller
        end

        # Identify the file as an ELF object file
        unless elf_header.v['e_ident'][EI_MAG0, 4] == ELFMAG
                raise ElfHeaderError, 'Invalid magic number', caller
        end

        self.struct = elf_header
end

Public Instance Methods

e_ident() click to toggle source
# File lib/rex/elfparsey/elfbase.rb, line 185
def e_ident
        struct.v['e_ident']
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.