# RegistryHiveLib **Repository Path**: cjhdevact/RegistryHiveLib ## Basic Information - **Project Name**: RegistryHiveLib - **Description**: RegistryHiveLib is a .NET library for offline parsing of Windows registry hive files. It supports advanced features such as key traversal, value data reading, SDDL access, and transaction log recovery. RegistryHiveLib 是一个用于离线解析 Windows 注册表配置单元(hive)文件的 .NET 库。支持键遍历、值数据读取、SDDL 访问及事务日志恢复等高级功能。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-12 - **Last Updated**: 2026-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

RegistryHiveLib - .NET 注册表配置单元解析库

语言 EN | CN

## 关于本项目 RegistryHiveLib 是一个用于离线解析 Windows 注册表配置单元(hive)文件的 .NET 库。支持键遍历、值数据读取、SDDL 访问及事务日志恢复等高级功能。 ## 功能 - [x] 完整的注册表配置单元解析(REGF、HBIN、NK、VK、SK、LF/LH/LI/RI、DB 记录) - [x] 支持所有注册表值类型 - [x] 无需 Windows 注册表 API,可离线安全分析 hive 文件 - [x] 事务日志恢复(.LOG 文件) - [x] Hive 元数据(版本、校验和、时间戳、簇大小) - [x] 安全描述符访问(SK 记录),支持获取原始二进制数据或 SDDL 字符串 - [x] SID 翻译器(纯静态字典,不依赖系统 API) - [x] 扩展方法便于快速读取常用数据类型 ## 安装 ### 通过 NuGet(推荐) ``` dotnet add package RegistryHiveLib ``` 或使用 Visual Studio 包管理器控制台: ``` Install-Package RegistryHiveLib ``` ### 从 GitHub Releases 下载 从 [发布页](https://github.com/cjhdevact/RegistryHiveLib/releases/latest) 下载文件,可通过 NuGet 包管理器本地安装,或直接解压获取 `RegistryHiveLib.dll` 并添加引用。 ## 快速开始 ``` using CJH.RegistryHiveLib; // 1. 加载 hive 文件 var registry = new Registry(@"C:\Windows\System32\config\SOFTWARE"); // 2. 获取根键 RegistryKey root = registry.Root; // 3. 遍历子键和值 foreach (var subKey in root.Subkeys) { Console.WriteLine($"键: {subKey.Name}"); foreach (var value in subKey.Values) { Console.WriteLine($" {value.DisplayName} = {value.Value} ({value.ValueTypeString})"); } } // 4. 按路径查找键 RegistryKey versionKey = registry.Open("Microsoft\\Windows NT\\CurrentVersion"); // 5. 读取值 string productName = versionKey.GetStringValue("ProductName", "未知"); uint buildNumber = versionKey.GetDWordValue("CurrentBuild", 0); Console.WriteLine($"产品名称: {productName}"); Console.WriteLine($"内部版本: {buildNumber}"); // 6. 获取安全描述符 string sddl = versionKey.GetSecurityDescriptorSDDL(); if (!string.IsNullOrEmpty(sddl)) { Console.WriteLine($"SDDL: {sddl}"); } // 7. 事务日志恢复 using (var log = new RegistryLog(@"C:\path\to\SYSTEM", @"C:\path\to\SYSTEM.LOG")) { if (log.IsEligibleLog) { uint? seq = log.RecoverHive(); Console.WriteLine($"恢复完成,序列号: {seq}"); } } ``` ## 文档 - [中文版本](Doc.CN.md) - [英语版本](Doc.EN.md) ## 项目结构 ``` RegistryHiveLib/ ├── RegistryHiveLib/ # 库主项目 │ ├── RegistryHiveLib.cs # 核心库文件 │ └── RegistryHiveLib.csproj # 项目文件 ├── Tools/ # 辅助工具脚本 ├── Doc.CN.md # 中文文档 ├── Doc.EN.md # 英文文档 ├── ReadMe.md # ReadMe 英语版本 ├── ReadMe.CN.md # ReadMe 中文版本 ├── RegistryHiveLib.sln # Visual Studio 解决方案 ... ``` ## 参考资料 - [RegistryHiveLib](http://sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf) - 注册表 Hive 文件结构说明 - [python-registry](http://github.com/williballenthin/python-registry) - 参考了此项目的解析思路 ## 开源说明 本项目基于 MIT 许可证开源,详情请参阅 [License](License) 文件。 您可以在遵守许可证的前提下自由使用、修改和分发本软件。