Class/Module Index [+]

Quicksearch

Rex::ImageSource::Disk

Attributes

file[RW]
file_offset[RW]
size[RW]

Public Class Methods

new(_file, _offset = 0, _len = nil) click to toggle source
# File lib/rex/image_source/disk.rb, line 16
def initialize(_file, _offset = 0, _len = nil)
        _len = _file.stat.size if !_len

        self.file         = _file
        self.file_offset  = _offset
        self.size         = _len
end

Public Instance Methods

close() click to toggle source
# File lib/rex/image_source/disk.rb, line 53
def close
        file.close
end
index(search, offset = 0) click to toggle source
# File lib/rex/image_source/disk.rb, line 33
def index(search, offset = 0)
        # do a sliding window search across the disk
        while offset < size

                # get a full window size if we can, we
                # don't want to read past our boundaries
                wsize = size - offset
                wsize = WINDOW_SIZE if wsize > WINDOW_SIZE

                window = self.read(offset, wsize)
                res = window.index(search)
                return res + offset if res
                offset += WINDOW_SIZE - WINDOW_OVERLAP
        end
end
read(offset, len) click to toggle source
# File lib/rex/image_source/disk.rb, line 24
def read(offset, len)
        if offset < 0 || offset+len > size
                raise RangeError, "Offset #{offset} outside of image source", caller
        end

        file.seek(file_offset + offset)
        file.read(len)
end
subsource(offset, len) click to toggle source
# File lib/rex/image_source/disk.rb, line 49
def subsource(offset, len)
        self.class.new(file, file_offset+offset, len)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.