Acesso à chave de registro negado mesmo com permissões corretas

0

Estou executando uma instalação limpa (com vários dias de uso) do Windows 10 home 64 bits, e encontro problemas ao acessar uma determinada chave do Registro. Quando o editor do Office VBA (processo de 32 bits com minha própria conta de usuário limitada) verifica o Registro em busca de controles disponíveis, ele atinge o {0002DF01-0000-0000-C000-000000000046} CLSID na ramificação HKCR \ CLSIDs e obtém um Acesso Negado ao abrir a chave no modo de leitura, que impede que continue. Essa chave está presente apenas na ramificação HKLM e não na ramificação HKCU. Vendo seu valor padrão, é para "Internet Explorer (Ver 1.0)". Existem duas cópias para isso; um diretamente no caminho Classes \ CLSID, o outro no caminho Classes \ WOW6432Node \ CLSID para processos de 32 bits. Uma vez que este é o Office 32 bits eu primeiro focado na versão WOW6432Node.

Meus testes até agora:

  • Essa chave já tinha permissão de leitura para minha conta de usuário ... o que dá?
  • O proprietário era TrustedInstaller (por que ele?) e as permissões foram explicitamente substituídas por essa chave (ou seja, não herdadas como eu suspeitaria - por quê?)
  • Alterei o proprietário para Administradores e adicionei minha conta de usuário específica com permissão total. A guia "acesso efetivo" do RegEdit confirma que esse usuário tem permissão total, mas o acesso negado ainda é acionado quando o IDE do VBA (executado sob essa mesma conta de usuário) tenta lê-lo?
  • Eu renomei temporariamente a chave (por exemplo, substituindo o primeiro "0" por um "1"). De acordo com o Process Monitor, o IDE do VBA agora pode ler a chave renomeada - sem acesso negado mais! Renomá-lo novamente dá o velho comportamento de novo ...
  • Pensando que isso pode ser um choque entre a versão de 32 e 64 bits da mesma chave, tentei fazer o mesmo com a versão de 64 bits dessa chave. Resultado: as permissões padrão já eram boas o suficiente, definindo a propriedade para os trabalhos de Administrador, dando aos Administradores controle total também funciona, mas renomeando a chave no RegEdit como administrador não é permitido? RegEdit lança uma "Chave de Renomeação de Erro - O Editor do Registro não pode renomear {0002DF01-0000-0000-C000-000000000046}. Erro ao renomear a chave." (uau, isso é uma informação útil!) O uso do Process Monitor revela que a operação RegRenameKey do RegEdit também resulta em um acesso negado aqui.
  • A execução do RegEdit com a conta do Sistema usando PsExec -s -i regedit.exe (conta confirmada pelo Gerenciador de Tarefas), ainda não é possível renomear a chave.

Parece que isso não é um problema de permissão em si; Parece que algum outro processo está ativamente monitorando o acesso a essa chave pelo nome e negando-a? Independentemente das permissões corretas que estão sendo definidas, os administradores não podem renomear a versão de 64 bits da chave, e os processos de 32 bits que tentam ler a versão de 32 bits da chave também recebem 'acesso negado'. Suponho que, desde a consulta de processos de 32 bits para o caminho genérico de Classes \ CLSID ... (ou seja, não com o caminho WOW6432Node explicitamente como minhas renomeações de RegEdit), isso dispara a mesma captura aqui.

Para completar a imagem: honestamente não consigo me lembrar de quando isso começou a acontecer; Eu notei isso algumas semanas atrás quando precisei dessa funcionalidade do VBA IDE novamente. Eu tenho o Sandboxie v5.18 instalado ao lado do Windows Defender padrão. Todo o software está atualizado e atualizado. Além disso, nenhum outro software de segurança invasivo é instalado. Desativar o serviço Sandboxie e o Windows Defender também não ajudou, e também não executou o Windows no modo de segurança.

Alguém tem alguma idéia do que pode estar acontecendo?

O contexto para qualquer pessoa curiosa e / ou que precise de ajuda para consertar isso também: Estou usando o Office 2010 profissional de 32 bits e acertei o bug do VBA IDE que resulta em não poder adicionar controles adicionais à sua caixa de ferramentas. ao projetar formulários no IDE. Eu posso selecionar "Controles adicionais" durante todo o dia (a partir do menu, bem como do menu de contexto pop-up da própria caixa de ferramentas), mas além de um breve flash da forma de mudança do cursor, nada acontece - nenhum diálogo "Controles adicionais" abre tudo, nenhum erro é mostrado, nada. A razão para isso acontecer é que, ao percorrer o registro em busca de CLSIDs do tipo "controle", o IDE do VBA apenas fecha o que está fazendo quando atinge um erro "acesso negado" ao ler uma chave do Registro. Usando o Process Monitor, você pode descobrir qual chave acionou o erro de permissão e corrigir as permissões definidas torna o VBA feliz novamente. Infelizmente, o bug já está presente há muito tempo e, embora não seja encontrado com frequência, o IMO ainda é um projeto ruim que não foi corrigido.

    
por Carl Colijn 29.05.2017 / 14:52

0 respostas