Я использую программу, которая ведет себя так, как мне не нравится. Он может записывать в реестр, даже если он запускается от имени пользователя, у которого нет прав администратора. Я не верю, что есть что-то еще, что я могу описать так, как я могу ограничить программу для вызова функций API, которые связаны с редактированием ключей / строк реестра? Существуют ли общепринятые методы, помогающие мне достичь своей цели? Является ли ответ на мой вопрос плохо задокументированным или это то, что я мог найти на веб-сайте Microsoft всего несколькими щелчками мыши?

2 ответа2

1

Программа наверняка будет работать со сбоями, если будет отказано в доступе к ее ключам реестра.

Если вы не доверяете этой программе, изолируйте ее от своего реестра с помощью Sandboxie :

Sandboxie использует технологию изоляции для отделения программ от базовой операционной системы, предотвращая нежелательные изменения ваших личных данных, программ и приложений, которые безопасно хранятся на вашем жестком диске.

Таким образом, программа может изменять все, что захочет, но Sandboxie перенаправляет все модификации, чтобы не влиять на остальную часть системы.

0

Как я могу ограничить программу для вызова функций API, связанных с редактированием ключей / строк реестра?

Модель безопасности Windows разработана для того же сценария. Каждый ключ реестра имеет список контроля доступа (ACL), в котором указываются доверенные лица (например, учетная запись пользователя) и действия, которые им разрешено выполнять (например, читать) над ключом.

Чтобы использовать это для ограничения вашего приложения, создайте учетную запись пользователя без прав администратора и всегда запускайте приложение в контексте этого пользователя. Вы можете использовать возможность запуска Windows от имени другого пользователя для выполнения приложения таким образом, без необходимости фактически входить в систему с ограниченной учетной записью.

По умолчанию стандартные пользователи имеют доступ только для чтения к общесистемным частям реестра, таким как ветка HKLM, и могут вносить изменения только в ветку HKCU своей учетной записи.

Если вы хотите дополнительно ограничить разрешения реестра учетной записи, вам следует изменить соответствующие ветви реестра, чтобы указать разрешения, требуемые для учетной записи пользователя. Вы можете использовать Microsoft Process Monitor, чтобы увидеть, к какому реестру он обращается, и для чего могут потребоваться измененные разрешения.

Следует иметь в виду, что почти для всех приложений Windows необходим доступ к реестру для правильной работы. Массовая блокировка такого доступа может помешать программе выполнить предназначенную функцию.

Дополнительная информация:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .