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

339
Trolol1234

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

0
Отмените права доступа пользователей к ключам реестра, которые использует программа, но приложение сможет прочитать их (что хорошо, потому что без него работать не будет) Ramhound 5 лет назад 0
Я хотел бы изучить вопрос о разработке прокладки для приложения с помощью набора средств для обеспечения совместимости приложений Microsoft. Я уверен, что одно из исправлений поможет, например, VirtualRegistry. Знаете ли вы, что происходит с приложением, если оно не может записать ключи, произойдет сбой или просто не сохранится какой-либо конфиг? HelpingHand 5 лет назад 0

2 ответа на вопрос

1
harrymc

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

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

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

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

0
Twisty Impersonator

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

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

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

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

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

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

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