Class: Rex::ElfParsey::ElfBase::ProgramHeader

Inherits:
GenericHeader show all
Defined in:
lib/rex/elfparsey/elfbase.rb

Instance Attribute Summary

Attributes inherited from GenericStruct

#struct

Instance Method Summary collapse

Methods inherited from GenericStruct

#[], #keys, #method_missing, #v

Constructor Details

#initialize(rawdata, ei_data) ⇒ ProgramHeader

Returns a new instance of ProgramHeader


235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
# File 'lib/rex/elfparsey/elfbase.rb', line 235

def initialize(rawdata, ei_data)
  # Identify the data encoding and parse Program Header
  if ei_data == ELFDATA2LSB
    program_header = ELF32_PHDR_LSB.make_struct
  elsif ei_data == ELFDATA2MSB
    program_header = ELF32_PHDR_MSB.make_struct
  else
    raise ElfHeaderError, "Invalid data encoding", caller
  end

  if !program_header.from_s(rawdata)
    raise ProgramHeaderError, "Couldn't parse Program Header", caller
  end

  self.struct = program_header
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rex::ElfParsey::ElfBase::GenericStruct