lib/rex/registry/nodekey.rb in librex-0.0.68 vs lib/rex/registry/nodekey.rb in librex-0.0.70
- old
+ new
@@ -5,49 +5,49 @@
module Rex
module Registry
class NodeKey
- attr_accessor :timestamp, :parent_offset, :subkeys_count, :lf_record_offset
- attr_accessor :value_count, :value_list_offset, :security_key_offset
- attr_accessor :class_name_offset, :name_length, :class_name_length, :full_path
- attr_accessor :name, :lf_record, :value_list, :class_name_data, :readable_timestamp
+ attr_accessor :timestamp, :parent_offset, :subkeys_count, :lf_record_offset
+ attr_accessor :value_count, :value_list_offset, :security_key_offset
+ attr_accessor :class_name_offset, :name_length, :class_name_length, :full_path
+ attr_accessor :name, :lf_record, :value_list, :class_name_data, :readable_timestamp
- def initialize(hive, offset)
+ def initialize(hive, offset)
- offset = offset + 0x04
+ offset = offset + 0x04
- nk_header = hive[offset, 2]
- nk_type = hive[offset+0x02, 2]
+ nk_header = hive[offset, 2]
+ nk_type = hive[offset+0x02, 2]
- if nk_header !~ /nk/
- return
- end
+ if nk_header !~ /nk/
+ return
+ end
- @timestamp = hive[offset+0x04, 8].unpack('q').first
- @parent_offset = hive[offset+0x10, 4].unpack('l').first
- @subkeys_count = hive[offset+0x14, 4].unpack('l').first
- @lf_record_offset = hive[offset+0x1c, 4].unpack('l').first
- @value_count = hive[offset+0x24, 4].unpack('l').first
- @value_list_offset = hive[offset+0x28, 4].unpack('l').first
- @security_key_offset = hive[offset+0x2c, 4].unpack('l').first
- @class_name_offset = hive[offset+0x30, 4].unpack('l').first
- @name_length = hive[offset+0x48, 2].unpack('c').first
- @class_name_length = hive[offset+0x4a, 2].unpack('c').first
- @name = hive[offset+0x4c, @name_length].to_s
+ @timestamp = hive[offset+0x04, 8].unpack('q').first
+ @parent_offset = hive[offset+0x10, 4].unpack('l').first
+ @subkeys_count = hive[offset+0x14, 4].unpack('l').first
+ @lf_record_offset = hive[offset+0x1c, 4].unpack('l').first
+ @value_count = hive[offset+0x24, 4].unpack('l').first
+ @value_list_offset = hive[offset+0x28, 4].unpack('l').first
+ @security_key_offset = hive[offset+0x2c, 4].unpack('l').first
+ @class_name_offset = hive[offset+0x30, 4].unpack('l').first
+ @name_length = hive[offset+0x48, 2].unpack('c').first
+ @class_name_length = hive[offset+0x4a, 2].unpack('c').first
+ @name = hive[offset+0x4c, @name_length].to_s
- windows_time = @timestamp
- unix_time = windows_time/10000000-11644473600
- ruby_time = Time.at(unix_time)
+ windows_time = @timestamp
+ unix_time = windows_time/10000000-11644473600
+ ruby_time = Time.at(unix_time)
- @readable_timestamp = ruby_time
+ @readable_timestamp = ruby_time
- @lf_record = LFBlock.new(hive, @lf_record_offset + 0x1000) if @lf_record_offset != -1
- @value_list = ValueList.new(hive, @value_list_offset + 0x1000, @value_count) if @value_list_offset != -1
+ @lf_record = LFBlock.new(hive, @lf_record_offset + 0x1000) if @lf_record_offset != -1
+ @value_list = ValueList.new(hive, @value_list_offset + 0x1000, @value_count) if @value_list_offset != -1
- @class_name_data = hive[@class_name_offset + 0x04 + 0x1000, @class_name_length]
+ @class_name_data = hive[@class_name_offset + 0x04 + 0x1000, @class_name_length]
- end
+ end
end
end
end