Существует ли чистая библиотека Python для анализа файла реестра Windows? - PullRequest
8 голосов
/ 29 апреля 2011

Существует ли чисто Python (т.е. полностью кроссплатформенная) библиотека для анализа файлов реестра Windows (NTUSER.DAT)? Доступ только для чтения допустим.

Если нет, какие ресурсы существуют для документирования обратной структуры файлов реестра?

Спасибо!

Обновление Поскольку в то время, когда задавался этот вопрос, казалось, что чистого решения Python не существует, я решил написать его. python-registry предоставляет Python-интерфейс, доступный только для чтения, для файлов реестра Windows.

Ответы [ 5 ]

12 голосов
/ 29 апреля 2011

winreg, очевидно, предназначен только для Windows и не читает файлы кустов реестра (NTUSER.DAT и т. Д.), А напрямую обращается к реестру.

Что вам нужно, так это библиотека для разбора файлов кустов, и похоже, что эта может работать:

http://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 для другой кроссплатформенной библиотеки.

Edit:

Если вы должны иметь чистый код Python без двоичных зависимостей, вы можете взглянуть на этот проект: http://code.google.com/p/creddump/

Кажется, что это чистый python, и он способен читать кусты реестра кросс-платформенным способом, но специализированным инструментом, а не библиотекой - код там, вероятно, нуждается в некоторой адаптации.

2 голосов
/ 29 апреля 2011

Я нашел этот документ http://sentinelchicken.com/data/TheWindowsNTRegistryFileFormat.pdf, в котором много документов, связанных с

2 голосов
/ 29 апреля 2011
2 голосов
/ 29 апреля 2011

Поиск в google по запросу "реестр python windows" возвращает модуль _winreg Однако он не является кроссплатформенным.

Из поискового запроса "формат файла реестра Windows" это выглядит так: http://pogostick.net/~pnh/ntpasswd/WinReg.txt

1 голос
/ 29 апреля 2011

Возможно, вы захотите взглянуть на winreg. Здесь: http://docs.python.org/library/_winreg.html

Не совсем уверен, что это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...