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

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

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

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

  • hivexque é mais atualizado e destinado principalmente à edição de registro de uso geral.

Só para ter uma ideia das 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 hivexou chntpw, ambos os editores mostram 0 nós para ambos os arquivos.

No entanto, quando abro hivexo arquivo de, um arquivo que supostamente possui 0 nós, vejo dados restantes de seu estado anterior.

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

Agora, estou me educando sobre o formato do arquivo de registro, então devo perguntar:

Se eu fosse usar um, qual deveria escolher? Obviamente, quero simular o comportamento do analisador/escritor da Microsoft de forma mais realista (quero ser capaz de enganá-los). O mesmo acontece com os dados restantes que têm algum significado; o Gerenciador de inicialização do Windows apresentaria algum erro se eu usasse hivexpara criar um arquivo BCD falso?

PS: A questão independe do meu objetivo principal, que espero ter ficado claro: quero corrigir/criar o arquivo BCD (Boot Config Data) sem usar o instalador oficial do Windows. Portanto, se você tiver algum conselho nesse sentido, fique à vontade para dar.

Responder1

O Hivex foi projetado explicitamente para não remover dados antigos do arquivo. Este é um objetivo importante porque o formato do hive do registro não está documentado e ninguém, exceto a MSFT, realmente entende como ele funciona, e não queremos destruir dados no processo de fazer alterações.

Observe que isso faznãosignifica que o hivex não pode excluir nós. Você pode excluir nós por meio da API e esses nós não serão vistos por chamadas regulares de registro do Windows, mas nenhum dado será limpo/removido/truncado do arquivo subjacente.

Se você quiser um arquivo hive vazio, sugiro começar com um arquivo hive vazio. Há um arquivo hive vazio no código-fonte do hivex (chamado 'mínimo') que você pode usar.

informação relacionada