有没有一个纯Python库来解析Windows注册表文件?

问题描述 投票:0回答:5

是否有一个纯Python(即完全跨平台)库用于解析Windows注册表文件(NTUSER.DAT)?只读访问是可以接受的。

如果没有,存在哪些资源来记录注册表文件的逆向工程结构?

谢谢!

更新 由于在提出这个问题时似乎不存在纯 Python 解决方案,因此我继续编写了一个。 python-registry 向 Windows 注册表文件公开 Pythonic 的只读接口。

python registry
5个回答
13
投票

winreg显然仅适用于Windows,并且不读取注册表配置单元文件(NTUSER.DAT等),而是直接访问注册表。

您正在寻找的是一个用于解析配置单元文件的库,看起来这个库可能有效:

https://rwmj.wordpress.com/2010/11/28/use-hivex-from-python-to-read-and-write-windows-registry-hive-files/

示例代码看起来很有希望:

# Use hivex to pull out a registry key.
h = hivex.Hivex ("/tmp/ntuser.dat")

key = h.root ()
key = h.node_get_child (key, "Software")
key = h.node_get_child (key, "Microsoft")
key = h.node_get_child (key, "Internet Explorer")
key = h.node_get_child (key, "Main")

val = h.node_get_value (key, "Start Page")
start_page = h.value_value (val)
#print start_page

# The registry key is encoded as UTF-16LE, so reencode it.
start_page = start_page[1].decode ('utf-16le').encode ('utf-8')

print "User %s's IE home page is %s" % (username, start_page)

缺点是它仍然不是纯Python,而是另一个跨平台库的Python包装器。

编辑:

如果你必须拥有没有二进制依赖的纯Python代码,你可以看看

creddump

它似乎是纯Python,并且能够以跨平台方式读取注册表配置单元,但它是一个专用工具而不是库 - 那里的代码可能需要一些调整。



2
投票

在 google 上搜索“python windowsregistry”会返回

_winreg
模块。不过,它似乎不是跨平台的。

通过谷歌搜索“Windows 注册表文件格式”,出现以下内容:http://pogostick.net/~pnh/ntpasswd/WinReg.txt


2
投票

我找到了这个文档http://sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf其中有很多链接的文档


1
投票

您可能想看看 winreg。 这里:http://docs.python.org/library/_winreg.html

不太确定这是否是您要找的。

© www.soinside.com 2019 - 2024. All rights reserved.