Что означает путь '\ REGISTRY \ A \…' в журнале Sysinternals Procmon?

22

Я использую утилиту Sysinternals Procmon для контроля доступа к реестру некоторыми программами. Большинство записей журнала имеют свойство Path, начинающееся с HKCU\…или HKLM\…, соответствующее кустам реестра, HKEY_CURRENT_USERи HKEY_LOCAL_MACHINEэто можно увидеть с помощью Regedit. Но у некоторых записей есть Путь, начинающийся с \REGISTRY\A\…:

введите описание изображения здесь

Не могли бы вы объяснить, что это за реестр? Могу ли я увидеть это с помощью Regedit или другой утилиты? Могу ли я получить к нему доступ программно?

Я использую Windows 8.1 Enterprise x64 .


ОБНОВЛЕНИЕ: Я связался с разработчиками Procmon, и они указали мне на следующие ресурсы MSDN, посвященные этому вопросу:

Владимир Решетников
источник
2
Связанный вопрос: stackoverflow.com/questions/4611291/…
Владимир Решетников
Вы пытались щелкнуть правой кнопкой мыши и выбрать Перейти к ?
Synetech
Да, но он переходит к неродственному ключу.
Владимир Решетников
Вы уверены, что это не связано? Вы пытались использовать переход к аналогичному ключу, чтобы увидеть, переходит ли он к аналогичному ключу или к совершенно другому ключу? Например, если registry\a\foobar\1прыгает, hkcu\software\blah\aно registry\a\foobar\2прыгает hklm\software\microsoft\internet explorer, то они кажутся несвязанными, но если второй прыгает hkcu\software\blah\b, то, похоже, они каким-то образом связаны ; есть какое-то отображение.
Synetech
Хм, я думаю, я знаю, как вы можете точно узнать, что это такое, но придется подождать до завтрашнего утра (моего времени), когда я смогу это проверить…
Synetech

Ответы:

7

Это улей приложения , который можно увидеть в волатильности без названия! Ульи приложения - это кусты реестра, загружаемые приложениями пользовательского режима для хранения данных о состоянии приложения. Приложение вызывает функцию RegLoadAppKey для загрузки куста приложения.

больше информации о

http://msdn.microsoft.com/en-us/library/windows/hardware/jj673019%28v=vs.85%29.aspx

abs2run
источник
1
Можно ли редактировать или удалять эти данные полностью?
Максим
5

Что означает путь '\ REGISTRY \ A \…' в журнале Sysinternals Procmon? Не могли бы вы объяснить, что это за реестр? Могу ли я увидеть это с помощью Regedit или другой утилиты? Могу ли я получить к нему доступ программно?

Я не могу воспроизвести то, что вы видите в моей системе, но я могу рассказать вам, как вы можете узнать, что у вас есть. Вы можете увидеть список всех кустов реестра, которые в настоящее время смонтированы под любым именем (включая кусты всей системы, кусты пользователей для пользователей, которые в данный момент вошли в систему, и любые кусты, загруженные вручную или программным обеспечением) в следующем разделе реестра. Он покажет как внутренний путь реестра, так и путь к файлу куста (рисунок 1).

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

Вы можете использовать эту команду, чтобы увидеть, какие службы размещены конкретным экземпляром svchost.exe. Я использовал pid (1240), который он использовал во время скриншота; замените его текущим PID.

tasklist /svc /fi "pid eq 1240"

Рисунок 1 : Снимок экрана редактора реестра с выделенным ключом списка кустов, показывающий подключенные кусты реестра

Снимок экрана редактора реестра с выделенным ключом hivelist

Synetech
источник
2
\REGISTRY\Aне указан в hivelistключе. Ответ от @ abs2run правильный ответ в целом.
Eryk Sun
1
Хотя информация о ней hivelistинтересна и полезна, хотя это не объясняет \REGISTRY\A.
Бинки
5

\REGISTRY\Aскрытый куст реестра, используемый приложениями из Магазина Windows (или приложения в стиле Metro).

Петр Шаталин
источник
2
Несколько проблем: • У этого вопроса есть вопрос о кусте реестра, но он касается Windows 7 , поэтому не похоже, что он связан с приложениями Windows. • Даже если вы правы, что и как именно приложения Windows используют; то есть, что это обеспечивает, что обычный реестр нет? • На странице Википедии, на которую вы ссылались, реестр вообще не упоминается, поэтому у нас нет возможности подтвердить то, что вы сказали, или узнать об этом.
Synetech
В win10, если вы ведете журнал загрузки procmon и фильтруете «путь содержит \ registry \ a» и «операция - это regloadkey», в деталях вы увидите «путь куста: system32 \ config \ BBI» и множество «путь куста» : activationstore.dat "файлы, обработанные для приложений Windows во время загрузки. Иногда служба dcomlaunch занимает много времени с кустом BBI в зависимости от количества пользователей.
js2010
4

Мне нужно ответить на свой вопрос в комментариях.

Чтобы редактировать частный улей, он должен быть загружен раньше.

Для Visual Studio это можно сделать так:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/f636ee47-1eb7-45ed-ae2a-674cbabb8b2c/clear-mru-list-in-visual-studio-2017?forum=visualstudiogeneral

Повышая изоляцию и устойчивость VS 2017, он теперь использует улей частного реестра. Внутренне VS использует перенаправление, и хотя для расширений VS (которые являются dll) это прозрачно, для внешних процессов (которые являются exes) это заставляет их не работать.

Чтобы вручную изменить значения в кусте частного реестра, вы можете использовать regedit.exe для загрузки частного улья. Вам нужно выбрать узел HKEY_USERS и нажать меню «Файл»> «Загрузить куст ...». Вы выбираете файл privateregistry.bin, присваиваете имя кусту (я ввел «VS2017PrivateRegistry»), и теперь вы видите, что ключ 15.0_Config заполнен как обычно (примечание: используйте File> Unload Hive, когда закончите):

Скриншот

Чтобы программно изменить значения в кусте частного реестра, вам нужно либо создать расширение для VS, либо, если вы хотите использовать внешний exe-файл, вам нужно использовать функцию RegLoadAppKey или избегать прямого использования реестра и использования диспетчера внешних настроек. См. Раздел «Изменение: уменьшение влияния реестра» в разделе «Преодоление изменений в расширяемости Visual Studio 2017».

Не забудьте выгрузить улей в regedit перед тем, как запускать приложение, используя его.

Максим
источник