30 lines
545 B
Ruby
30 lines
545 B
Ruby
# -*- coding: binary -*-
|
|
require_relative "valuekey"
|
|
|
|
module Rex
|
|
module Registry
|
|
|
|
class ValueList
|
|
|
|
attr_accessor :values
|
|
|
|
def initialize(hive, offset, number_of_values)
|
|
offset = offset + 4
|
|
inner_offset = 0
|
|
|
|
@values = []
|
|
|
|
1.upto(number_of_values) do |v|
|
|
valuekey_offset = hive[offset + inner_offset, 4]
|
|
next if !valuekey_offset
|
|
|
|
valuekey_offset = valuekey_offset.unpack('l').first
|
|
@values << ValueKey.new(hive, valuekey_offset + 0x1000)
|
|
inner_offset = inner_offset + 4
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|