Skip to main content

Regipy is a python library for parsing offline registry hives!

Requires Python 3.9 or higher.

Features:

  • Use as a library

  • Recurse over the registry hive, from root or a given path and get all subkeys and values

  • Read specific subkeys and values

  • Apply transaction logs on a registry hive

  • Command Line Tools:
    • Dump an entire registry hive to json

    • Apply transaction logs on a registry hive

    • Compare registry hives

    • Execute plugins from a robust plugin system (i.e: amcache, shimcache, extract computer name…)

Project page:

https://github.com/mkorman90/regipy

Using as a library:

from regipy.registry import RegistryHive
reg = RegistryHive('/Users/martinkorman/Documents/TestEvidence/Registry/Vibranium-NTUSER.DAT')

# Iterate over a registry hive recursively:
for entry in reg.recurse_subkeys(as_json=True):
    print(entry)

# Iterate over a key and get all subkeys and their modification time:
for sk in reg.get_key('Software').get_subkeys():
    print(sk.name, convert_wintime(sk.header.last_modified).isoformat())

# Get values from a specific registry key:
reg.get_key('Software\Microsoft\Internet Explorer\BrowserEmulation').get_values(as_json=True)

# Use plugins:
from regipy.plugins.ntuser.ntuser_persistence import NTUserPersistencePlugin
NTUserPersistencePlugin(reg, as_json=True).run()

# Run all validated plugins on a registry hive:
run_relevant_plugins(reg, as_json=True)

# Include unvalidated plugins (may return incomplete/inaccurate data):
run_relevant_plugins(reg, as_json=True, include_unvalidated=True)

Install

Install regipy and the command line tools dependencies:

pip install regipy[cli]

NOTE: using pip with regipy[cli] instead of the plain regipy is a significant change from version 1.9.x

For using regipy as a library, install only regipy which comes with fewer dependencies:

pip install regipy

Rust-accelerated backend (alpha)

An optional Rust implementation of the core parser is available as an opt-in backend. It is a drop-in replacement validated 1:1 against the pure-Python parser (every key path, timestamp, value and plugin output over the whole test corpus, with matching SHA-256 traversal digests) and is dramatically faster on value-dense hives — a full traversal of a SOFTWARE hive drops from over 12 minutes to under a third of a second (~2,500x), and Windows 10 SYSTEM hives speed up by ~1,000x:

pip install regipy[rust]

from regipy.registry_rs import RegistryHive  # instead of regipy.registry

reg = RegistryHive('/tmp/NTUSER.dat')
# Same API: get_key, iter_values, recurse_subkeys, plugins, ...

See regipy-rs/README.md and regipy-rs/BENCHMARKS.md for details.

Plugin Validation

Regipy plugins are validated using test cases to ensure they return accurate data. By default, only validated plugins are executed when using run_relevant_plugins() or the CLI tools.

To include unvalidated plugins (which may return incomplete or inaccurate data):

# As a library:
run_relevant_plugins(reg, as_json=True, include_unvalidated=True)
# CLI:
regipy-plugins-run /path/to/hive -o output.json --include-unvalidated

Unvalidated plugins will log a warning when executed. Use them at your own discretion.

Available Plugins

NTUSER Plugins:

  • user_assist - Parses User Assist execution history

  • typed_urls - Retrieves typed URLs from IE history

  • typed_paths - Retrieves typed file paths

  • ntuser_persistence - Retrieves persistence entries (Run, RunOnce, etc.)

  • shellbag_plugin - Parses Shellbag items

  • network_drives_plugin - Retrieves mapped network drives

  • terminal_services_history - Parses RDP/Terminal Server client data

  • winrar_plugin - Parses WinRAR archive history

  • winscp_saved_sessions - Retrieves WinSCP saved sessions

  • word_wheel_query - Parses Windows Search word wheel query

  • wsl - Gets WSL distribution information

  • installed_programs_ntuser - Retrieves installed programs

  • ntuser_classes_installer - Parses class installer information

  • recentdocs - Parses recently opened documents

  • comdlg32 - Parses Open/Save dialog MRU lists

  • runmru - Parses Run dialog MRU list

  • muicache - Parses MUI Cache (application display names)

  • appkeys - Parses application keyboard shortcuts

  • sysinternals - Parses Sysinternals tools EULA acceptance

  • putty - Parses PuTTY sessions and SSH host keys

SOFTWARE Plugins:

  • installed_programs_software - Retrieves installed programs

  • profilelist_plugin - Parses user profile information

  • uac_plugin - Gets User Access Control settings

  • winver_plugin - Gets OS version information

  • last_logon_plugin - Gets last logon information

  • image_file_execution_options - Retrieves IFEO entries

  • print_demon_plugin - Gets installed printer ports

  • ras_tracing - Gets tracing/debugging configuration

  • disablesr_plugin - Gets system restore disable status

  • spp_clients_plugin - Determines volumes monitored by VSS

  • susclient_plugin - Extracts Windows Update client info

  • software_classes_installer - Parses class installer information

  • software_plugin - Retrieves persistence entries

  • app_paths - Parses application paths registry entries

  • appinit_dlls - Parses AppInit_DLLs persistence entries

  • appcert_dlls - Parses AppCertDLLs persistence entries

  • appcompat_flags - Parses application compatibility flags

  • windows_defender - Parses Windows Defender configuration

  • powershell_logging - Parses PowerShell logging configuration

  • execution_policy - Parses PowerShell execution policies

  • networklist - Parses network connection history

SYSTEM Plugins:

  • shimcache - Parses Shimcache/AppCompatCache

  • services - Enumerates services and parameters

  • usbstor_plugin - Parses connected USB storage devices

  • background_activity_moderator - Gets BAM execution data

  • network_data - Gets network interface configuration

  • routes - Gets network routes

  • computer_name - Gets the computer name

  • timezone_data / timezone_data2 - Gets timezone configuration

  • safeboot_configuration - Gets safeboot configuration

  • active_control_set - Gets the active control set

  • backuprestore_plugin - Gets backup/restore exclusion entries

  • processor_architecture - Gets processor architecture info

  • previous_winver_plugin - Gets previous Windows version info

  • codepage - Gets system codepage information

  • host_domain_name - Gets host and domain name

  • crash_dump - Gets crash control information

  • diag_sr - Gets diagnostic system restore information

  • disable_last_access - Gets LastAccessTime disable status

  • wdigest - Gets WDIGEST authentication configuration

  • bootkey - Extracts the Windows boot key

  • shutdown - Gets shutdown time data

  • usb_devices - Parses USB device connection history

  • mounted_devices - Parses mounted device information

  • shares - Parses network share configuration

  • pagefile - Parses pagefile configuration

  • lsa_packages - Parses LSA security packages

  • pending_file_rename - Parses pending file rename operations

SAM Plugins:

  • local_sid - Extracts the machine local SID

  • samparse - Parses user accounts from SAM hive

SECURITY Plugins:

  • domain_sid - Extracts domain name and SID

AMCACHE Plugins:

  • amcache - Parses Amcache application execution history

BCD Plugins:

  • boot_entry_list - Lists Windows BCD boot entries

USRCLASS Plugins:

  • usrclass_shellbag_plugin - Parses USRCLASS Shellbag items

Release files for regipy 6.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for regipy 6.3.0
File Size Uploaded
regipy-6.3.0.tar.gz 107.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for regipy 6.3.0
File Interpreter ABI Platform
regipy-6.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 246.6 kB

Release files / regipy-6.3.0.tar.gz

Download URL regipy-6.3.0.tar.gz
Size 107.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9c23f1f0b13680b79104fad4367fad63d8c44935a8a8658baec3e52f39e1ad47
BLAKE2b-256 checksum
How to use checksums
25a29427da67acc61b39cda35be4cc788a9c99e27622b514e1c6ba87a90adb84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / regipy-6.3.0-py3-none-any.whl

Download URL regipy-6.3.0-py3-none-any.whl
Size 139.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1387aff68a8f7f4786460ab421d8bedc16df3b6a47e485c24d1ef38512289aeb
BLAKE2b-256 checksum
How to use checksums
bea9eb79898a037c2082317a45c4f41959a9e08e8c6456a506cadba483805405
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

6.3.0 This release

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.3.0

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.2

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.4.1

2 release files

2.3.5

2 release files

2.3.3

2 release files

2.3.2

1 release file

2.3.1

1 release file

2.3.0

2 release files

2.2.2

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.9.4

1 release file

1.9.3

1 release file

1.9.2

1 release file

1.9.1

1 release file

1.9.0

1 release file

1.8.4

1 release file

1.8.2

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.7.0

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.7

1 release file

1.5.6

1 release file

1.5.5

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.5

1 release file

1.4.2

1 release file

1.4.0

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.0

1 release file

1.2.5

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page