regedit: Fix syntax for deleting registry keys (RHBZ#737944).
[hivex.git] / README
1 hivex - by Richard W.M. Jones, rjones@redhat.com
2 Copyright (C) 2009-2010 Red Hat Inc.
3 ----------------------------------------------------------------------
4
5 This is a self-contained library for reading and writing Windows
6 Registry "hive" binary files.
7
8 Unlike many other tools in this area, it doesn't use the textual .REG
9 format for output, because parsing that is as much trouble as parsing
10 the original binary format.  Instead it makes the file available
11 through a C API, or there is a separate program to export the hive as
12 XML.
13
14 This library was derived from several sources:
15
16  . NTREG registry reader/writer library by Petter Nordahl-Hagen
17     (LGPL v2.1 licensed library and program)
18  . http://pogostick.net/~pnh/ntpasswd/WinReg.txt
19  . dumphive (a BSD-licensed Pascal program by Markus Stephany)
20  . http://www.sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf
21  . editreg program from Samba - this program was removed in later
22    versions of Samba, so you have to go back in the source repository
23    to find it (GPLv2+)
24  . http://amnesia.gtisc.gatech.edu/~moyix/suzibandit.ltd.uk/MSc/
25  . reverse engineering the format (see lib/tools/visualizer.ml)
26
27 Like NTREG, this library only attempts to read Windows NT registry
28 files (ie. not Windows 3.1 or Windows 95/98/ME).  See the link above
29 for documentation on the older formats if you wish to read them.
30
31 Unlike NTREG, this code is much more careful about handling error
32 cases, corrupt and malicious registry files, and endianness.
33
34 License
35 -------
36
37 The license for this library is LGPL v2.1, but not later versions.
38 For full details, see the file LICENSE in this directory.
39
40 Dependencies
41 ------------
42
43 To just build the library, the dependencies are quite minimal.  You
44 only need the following:
45
46 - An ISO C compiler.
47
48 - Perl tools 'pod2man' and 'pod2text'.
49
50 These dependencies are needed for the tools:
51
52 - Readline library (optional, to add command-line editing to hivexsh).
53
54 - libxml2 (optional, for hivexml).
55
56 If you want to make the generated files or change the API, then you
57 will need the OCaml interpreter (/usr/bin/ocaml).
58
59 To build the language bindings, you will need various extra packages.
60 See the configure output for more details.
61
62 Directories and tools
63 ---------------------
64
65 generator/
66
67         Generator used to write a lot of boilerplate code for
68         header files, documentation, language bindings etc.
69         The API for hivex is specified in the generator.
70
71 images/
72
73         Test hive files.  See images/README.
74
75 lib/
76
77         The C library.
78
79 ocaml/
80
81         OCaml bindings and tests.  The bindings are generated by
82         'generator/generator.ml'.
83
84 perl/
85
86         Perl bindings and tests.  The bindings are generated by
87         'generator/generator.ml'.
88
89 python/
90
91         NOTE: Python bindings are not yet written.  Your patches
92         are welcome (please modify generator/generator.ml to
93         add them).
94
95 regedit/
96         Regedit-like registry merging tool.
97
98 sh/
99
100         Interactive shell.  This also contains the old 'hivexget'
101         tool (originally written in C, now replaced by a hivexsh
102         shell script).
103
104 xml/
105
106         hivexml program which converts hive files to XML.