Como posso restringir um programa para chamar funções da API que estão ligadas à edição de chaves / strings do registro?
O modelo de segurança do Windows é projetado para lidar com isso muito cenário . Cada chave do registro tem uma lista de controle de acesso (ACL) que especifica trustees (por exemplo, conta de usuário ) e as ações que eles podem tomar (por exemplo, ler) na chave.
Para aproveitar isso para restringir seu aplicativo, crie uma conta de usuário não-administrador e sempre execute o aplicativo no contexto desse usuário. Você pode usar o recurso Executar como outro usuário do Windows para executar o aplicativo dessa maneira sem ter que realmente fazer logon com a conta restrita.
Por padrão, os usuários padrão só têm acesso de Leitura às partes do Registro em todo o sistema, como a ramificação HKLM, e só podem fazer alterações na ramificação HKCU da própria conta.
Se você quiser limitar ainda mais as permissões do Registro da conta, modifique as ramificações apropriadas do Registro para especificar as permissões desejadas para a conta do usuário. Você pode usar o Monitor de processos da Microsoft para ver quais caminhos de registro estão acessando e que podem exigir permissões modificadas.
Vale a pena lembrar que quase todos os aplicativos do Windows precisam acessar o Registro para uma operação adequada. É muito provável que bloquear esse acesso por atacado evite que um programa execute a função pretendida.
Mais informações: