Method: Rex::PeParsey::PeBase#_parse_config_header

Defined in:
lib/rex/peparsey/pebase.rb

#_parse_config_headerObject

– doesn’t seem to be used – not compatible with 64-bit def self._parse_config_header(rawdata) header = IMAGE_LOAD_CONFIG_DIRECTORY32.make_struct header.from_s(rawdata) ConfigHeader.new(header) end ++



832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
# File 'lib/rex/peparsey/pebase.rb', line 832

def _parse_config_header

  #
  # Get the data directory entry, size, etc
  #
  exports_entry = _optional_header['DataDirectory'][IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG]
  rva           = exports_entry.v['VirtualAddress']
  size          = exports_entry.v['Size']

  return nil if size == 0

  #
  # Ok, so we have the data directory, now lets parse it
  #

  dirdata = _isource.read(rva_to_file_offset(rva), size)
  klass   = (ptr_64?) ? IMAGE_LOAD_CONFIG_DIRECTORY64 : IMAGE_LOAD_CONFIG_DIRECTORY32
  header  = klass.make_struct

  header.from_s(dirdata)

  @config = ConfigHeader.new(header)
end