Можно ли предотвратить определенные процессы открытием / чтением определенного раздела реестра? Вариант использования для этого — усложнить обратный инжиниринг приложения.
И да и нет.
В реестре используется обычная модель управления доступом Windows, поэтому вы можете установить дескриптор безопасности для раздела реестра.
https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-key-security-and-access-rights
Однако обычная модель безопасности Windows связывает безопасность с учетной записью пользователя, а не с процессом. Любой процесс, выполняющийся с учетными данными безопасности одного пользователя, будет иметь такой же доступ к реестру, как и любой другой процесс в той же учетной записи.
В зависимости от того, чего вы пытаетесь достичь, этого может быть достаточно. Когда вы действительно хотите использовать процессную аутентификацию вместо пользовательской аутентификации, вы обычно получаете что-то вроде службы Windows, которая доступна только для некоторой специальной учетной записи «пользователя». Затем эта служба предоставляет собственный механизм аутентификации для проверки того, что к нему обращается правильный процесс. Это, как правило, все еще довольно хрупко — как правило, в итоге получается ключ какого-то рода, встроенный в «правильный» процесс, поэтому обратный инжиниринг может найти ключ и создать другой процесс, используя тот же ключ.
Других решений пока нет …