Arquivo de registro do Windows editado com duas ferramentas diferentes, resultados diferentes [closed]

1

Eu estou tentando duas ferramentas diferentes para editar e remover todos os nós de uma seção de registro do Windows:

  • chntpw , que foi essencialmente projetado para editar arquivos de senha (SAM), mas agora possui um shell interativo para editar arquivos de registro.

  • hivex , que está mais atualizado e destinado principalmente à edição de registro de propósito geral.

Só para ter uma ideia sobre as diferenças entre esses programas, peguei meu arquivo BCD (que é usado pelo Gerenciador de Inicialização do Windows) e usei esses dois programas para excluir todos os nós.

Como esperado, os arquivos resultantes têm o mesmo tamanho, mas não são idênticos. Quando abri cada um com hivex ou chntpw , ambos os editores mostram 0 nós para ambos os arquivos.

No entanto, quando abro o arquivo hivex , um arquivo que supostamente tem 0 nós, vejo os dados restantes de seu estado anterior.

Por outro lado, o resultado de chntpw não possui dados residuais dos nós.

Agora, estou me informando sobre o formato do arquivo de registro, por isso devo perguntar:

Se eu fosse usar um, qual deles devo escolher? Eu obviamente quero simular o comportamento do parser / escritor da Microsoft de forma mais realista (eu quero ser capaz de enganá-los). Então, os dados restantes têm algum significado; O Gerenciador de Inicialização do Windows daria algum erro se eu usar hivex para criar um arquivo BCD falso?

PS: A questão é independente do meu propósito principal, que eu espero que esteja claro: Eu quero consertar / criar o arquivo BCD (Boot Config Data) sem usar o instalador oficial do Windows. Então, se você tiver algum conselho nessa direção, sinta-se à vontade para dar.

    
por osolmaz 21.03.2014 / 20:21

1 resposta

2

O Hivex é explicitamente projetado para não remover dados antigos do arquivo. Essa é uma meta importante porque o formato da seção do Registro não está documentado e ninguém, exceto a MSFT, realmente entende como ela funciona e não queremos destruir dados no processo de fazer alterações.

Observe que não significa que o hivex não pode excluir nós. Você pode excluir os nós por meio da API e esses nós não serão vistos pelas chamadas regulares do Registro do Windows, mas nenhum dado será removido / removido / truncado do arquivo subjacente.

Se você deseja um arquivo de seção vazio, sugiro iniciar com um arquivo de seção vazio. Existe um arquivo de hive vazio no código-fonte do hivex (chamado 'minimal') que você pode usar.

    
por 22.03.2014 / 08:27