Method: Rex::PeParsey::PeMemDump.new_from_file

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

.new_from_file(filename, disk_backed = false) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/rex/peparsey/pe_memdump.rb', line 23

def self.new_from_file(filename, disk_backed = false)

  if filename[-4, 4] != '.rng'
    raise "Not a .rng file: #{filename}"
  end

  if filename[-9, 9] == "index.rng"
    raise SkipError
  end

  file = File.open(filename, 'rb')

  if disk_backed
    obj = ImageSource::Disk.new(file)
  else
    obj = ImageSource::Memory.new(file.read)
    obj.close
  end

  return self.new(obj, filename.gsub(/.*[\/\\]/, '')[0,8].hex)
end