forked from williballenthin/python-registry
-
Notifications
You must be signed in to change notification settings - Fork 0
Read access to Windows Registry files.
License
jallmantalbot/python-registry
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
python-registry =============== Introduction ------------ python-registry was originally written by Willi Ballenthin, a forensicator at Mandiant who wanted to access the contents of the Windows Registry from his Linux laptop. python-registry currently provides read-only access to Windows Registry files, such as NTUSER.DAT, userdiff, and SAM. The interface is two-fold: a high-level interface suitable for most tasks, and a low level set of parsing objects and methods which may be used for advanced study of the Windows Registry. python-registry is written in pure Python, making it portable across all major platforms. Usage ----- Most users will find the Registry.Registry module most appropriate. The module exposes three classes: the Registry, the RegistryKey, and the RegistryValue. The Registry organizes parsing and access to the Windows Registry file. The RegistryKey is a convenient interface into the tree-like structure of the Windows Registry. A RegistryKey may have children RegistryKeys, and may also have values associated with it. A RegistryValue can be thought of as the tuple (name, datatype, value) associated with a RegistryKey. python-registry supports all major datatypes, such as RegSZ, RegDWord, and RegBin. To open a Windows Registry file, its this easy: import sys from Registry import Registry reg = Registry.Registry(sys.argv[1]) Print all keys in a Registry def rec(key, depth=0): print "\t" * depth + key.path() for subkey in key.subkeys(): rec(subkey, depth + 1) rec(reg.root()) Find a key and print all string values try: key = reg.open("SOFTWARE\\Microsoft\\Windows\\Current Version\\Run") except Registry.RegistryKeyNotFoundException: print "Couldn't find Run key. Exiting..." sys.exit(-1) for value in [v for v key.values() \ if v.value_type() == Registry.RegSZ or \ v.value_type() == Registry.RegExpandSZ]: print "%s: %s" % (value.name(), value.value()) Advanced users who wish to study the structure of the Windows Registry may find the Registry.RegistryParse module useful. This module implements all known structures of the Windows Registry. Testing ------- python-registry was developed using Python 2.6.5 on Ubuntu Linux. More importantly, the package was tested against a small set of Windows XP SP3 Registry files acquired from one of the author's virtual machines. The script testing/RegTester.py will parse the .reg files exported by Microsoft Regedit and compare the values parsed by python-registry. This tool can be used to identify regressions and deficiencies in the development of python-registry. Wanted ------ *) Bug reports. *) Feedback. python-registry was originally developed to scratch one of the author's itches. Now he hopes it can be of use to someone outside of his lonely NYC apartment. License ------- As of version 0.2.0, python-registry is released under the Apache 2.0 license. Before that, python-registry was released under the GPLv3. Sources ------- Nearly all structure definitions used in python-registry came from one of two sources: 1) WinReg.txt, by B.H., which may be accessed at: http://pogostick.net/~pnh/ntpasswd/WinReg.txt 2) The Windows NT Registry File Format version 0.4, by Timothy D. Morgan, which may be accessed at: https://docs.google.com/viewer?url=http%3A%2F%2Fsentinelchicken.com%2Fdata%2FTheWindowsNTRegistryFileFormat.pdf Copies of these resources are included in the documentation/ directory of the python-registry source. The source directory for python-registry contains a sample/ subdirectory that contains small programs that use python-registry. For example, regview.py is a read-only clone of Microsoft Window's Regedit, implemented in a few hundred lines.
About
Read access to Windows Registry files.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 100.0%