Class: Rex::Post::Meterpreter::Extensions::Stdapi::Fs::FileStat
- Inherits:
-
FileStat
- Object
- FileStat
- Rex::Post::Meterpreter::Extensions::Stdapi::Fs::FileStat
- Defined in:
- lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb
Overview
This class wrappers gathering information about a given file and implements the Rex::Post::FileStat interface in terms of data acquisition.
Constant Summary collapse
- @@struct_stat =
[ 'st_dev', 4, # 0 'st_ino', 2, # 4 'st_mode', 2, # 6 'st_nlink', 2, # 8 'st_uid', 2, # 10 'st_gid', 2, # 12 'pad1', 2, # 14 'st_rdev', 4, # 16 'st_size', 4, # 20 'st_atime', 8, # 24 'st_mtime', 8, # 32 'st_ctime', 8, # 40 ]
Class Attribute Summary collapse
-
.client ⇒ Object
Returns the value of attribute client.
Attributes inherited from FileStat
Instance Method Summary collapse
-
#initialize(file) ⇒ FileStat
constructor
Returns an instance of a FileStat object.
-
#update(stat_buf) ⇒ Object
Swaps in a new stat hash.
Methods inherited from FileStat
#atime, #blksize, #blockdev?, #blocks, #chardev?, #ctime, #dev, #directory?, #executable?, #executable_real?, #file?, #filetype?, #ftype, #gid, #grpowned?, #ino, #mode, #mtime, #nlink, #owned?, #perm?, #pipe?, #pretty, #prettymode, #rdev, #readable?, #readable_real?, #setgid?, #setuid?, #size, #socket?, #sticky?, #symlink?, #uid, #writeable?, #writeable_real?
Constructor Details
#initialize(file) ⇒ FileStat
Returns an instance of a FileStat object.
49 50 51 |
# File 'lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb', line 49 def initialize(file) self.stathash = stat(file) if (file) end |
Class Attribute Details
.client ⇒ Object
Returns the value of attribute client.
22 23 24 |
# File 'lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb', line 22 def client @client end |
Instance Method Details
#update(stat_buf) ⇒ Object
Swaps in a new stat hash.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb', line 56 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 |