Methods

Class/Module Index [+]

Quicksearch

Rex::Post::Meterpreter::Extensions::Stdapi::Fs::FileStat

This class wrappers gathering information about a given file and implements the Rex::Post::FileStat interface in terms of data acquisition.

Attributes

client[RW]

Public Class Methods

new(file) click to toggle source

Returns an instance of a FileStat object.

# File lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb, line 48
def initialize(file)
        self.stathash = stat(file) if (file)
end

Public Instance Methods

update(stat_buf) click to toggle source

Swaps in a new stat hash.

# File lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb, line 55
def update(stat_buf)
        elem   = @@struct_stat
        hash   = {}
        offset = 0
        index  = 0

        while (index < elem.length)
                size = elem[index + 1]

                value   = stat_buf[offset, size].unpack(size == 2 ? 'v' : 'V')[0]
                offset += size

                hash[elem[index]] = value

                index += 2
        end

        return (self.stathash = hash)
end

Protected Instance Methods

stat(file) click to toggle source

Gets information about the supplied file and returns a populated hash to the requestor.

# File lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb, line 87
def stat(file)
        request = Packet.create_request('stdapi_fs_stat')

        request.add_tlv(TLV_TYPE_FILE_PATH, self.class.client.unicode_filter_decode( file ))

        response = self.class.client.send_request(request)
        stat_buf = response.get_tlv(TLV_TYPE_STAT_BUF).value

        # Next, we go through the returned stat_buf and fix up the values
        # and insert them into a hash
        return update(stat_buf)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.