Hi, I'm one of the authors of hivex, a program for reading Windows registry hive files:
http://libguestfs.org/hivex.3.html
The library can't currently read ReactOS hive files. I'm *very* hestitant to say anyone is "wrong" here since the documentation for hive files is obviously non-existent, but it appears that ReactOS doesn't fill in the end_pages field in the header, and instead relies on the size of the file itself.
For example, a hive downloaded from a fresh ReactOS install:
hivex_open: header fields: file version 1.3 sequence nos 3 3 (sequences nos should match if hive was synched at shutdown) original file name (only 32 chars are stored, name is probably truncated) root offset 0x70 + 0x1000 ** end of last page 0x1000 + 0x1000 (total file size 0x22000) checksum 0x8dc38fdf (calculated 0x8dc38fdf)
Notice that "end of last page" field is 0x1000, versus a completely different file size.
hivex currently refuses to read past the end_pages limit, and we are able to read every Windows hive that has ever been thrown at us.
If I hack hivex so that it ignores end_pages and simply uses the size of the file as a guide, then hivex can successfully read the whole of the file.
However I'm a bit unwilling to make this change to hivex just for ReactOS, since it works fine with real Windows already.
So I wonder if this could just be a mistake in ReactOS or if there's some deeper reason that I'm missing.
TIA,
Rich.