Skip to content

The minor version of a hive isn't used when parsing values #68

Description

@msuhanov

This issue is related to #7.

Windows doesn't support big data records when the minor version of the hive format is equal to or less than 3. For example, if a hive has the minor version set to 3, and there is a large value stored in this hive, and the value begins with the db string, then python-registry will treat such a value like the big data structure, but Windows will treat the value literally.

Example:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Registry/Registry.py", line 160, in value
    return self._vkrecord.data()
  File "Registry/RegistryParse.py", line 1024, in data
    d = self.raw_data()
  File "Registry/RegistryParse.py", line 923, in raw_data
    ret = d.child().large_data(data_length)
  File "Registry/RegistryParse.py", line 713, in large_data
    cell = HBINCell(self._buf, off, self)
  File "Registry/RegistryParse.py", line 501, in __init__
    self._size = self.unpack_int(0x0)
  File "Registry/RegistryParse.py", line 212, in unpack_int
    return struct.unpack_from(str("<i"), self._buf, self._offset + offset)[0]

The hive is attached.
test-db.zip

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions