36 lines
590 B
Ruby
36 lines
590 B
Ruby
# -*- coding: binary -*-
|
|
|
|
require 'rex/image_source/image_source'
|
|
require 'rex/struct2'
|
|
|
|
module Rex
|
|
module ImageSource
|
|
class Memory < ImageSource
|
|
|
|
attr_accessor :rawdata, :size, :file_offset
|
|
|
|
def initialize(_rawdata, _file_offset = 0)
|
|
self.rawdata = _rawdata
|
|
self.size = _rawdata.length
|
|
self.file_offset = _file_offset
|
|
end
|
|
|
|
def read(offset, len)
|
|
rawdata[offset, len]
|
|
end
|
|
|
|
def subsource(offset, len)
|
|
self.class.new(rawdata[offset, len], offset + file_offset)
|
|
end
|
|
|
|
def close
|
|
end
|
|
|
|
def index(*args)
|
|
rawdata.index(*args)
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|