class Rex::ElfParsey::ElfBase::ElfHeader
Public Class Methods
new(rawdata)
click to toggle source
# File lib/rex/elfparsey/elfbase.rb, line 153 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 183 def e_ident struct.v['e_ident'] end