두 가지 다른 도구로 편집된 Windows 레지스트리 파일, 다른 결과

두 가지 다른 도구로 편집된 Windows 레지스트리 파일, 다른 결과

Windows 레지스트리 하이브에서 모든 노드를 편집하고 제거하기 위해 두 가지 도구를 사용하고 있습니다.

  • chntpw기본적으로 비밀번호(SAM) 파일을 편집하도록 설계되었지만 이제는 레지스트리 파일을 편집할 수 있는 대화형 셸이 있습니다.

  • hivex이는 최신 버전이며 주로 일반 목적의 레지스트리 편집을 위한 것입니다.

이 프로그램 간의 차이점에 대해 알아보기 위해 BCD 파일(Windows 부팅 관리자에서 사용됨)을 가져와 이 두 프로그램을 모두 사용하여 모든 노드를 삭제했습니다.

예상대로 결과 파일의 크기는 동일하지만 동일하지는 않습니다. hivex또는 중 하나를 사용하여 각각 열면 chntpw두 편집기 모두 두 파일에 대해 0 노드를 표시합니다.

hivex그러나 노드가 0개인 것으로 추정되는 파일인 님의 파일을 열면 이전 상태의 남은 데이터가 표시됩니다.

반대로, chntpw의 결과에는 노드의 잔여 데이터가 없습니다.

현재 저는 레지스트리 파일 형식에 대해 교육 중이므로 다음 사항에 대해 질문해야 합니다.

하나를 사용한다면 어떤 것을 선택해야 합니까? 나는 분명히 Microsoft의 파서/작성기의 동작을 가장 현실적으로 시뮬레이션하고 싶습니다(나는 그것을 속일 수 있기를 원합니다). 남은 데이터도 어떤 의미를 갖습니까? hivex가짜 BCD 파일을 만드는 데 사용하면 Windows 부팅 관리자에서 오류가 발생합니까 ?

추신: 이 질문은 내 주요 목적과 별개입니다. 공식 Windows 설치 프로그램을 사용하지 않고 BCD(부팅 구성 데이터) 파일을 수정/생성하고 싶습니다. 그러므로 그 방향에 대한 조언이 있다면 자유롭게 알려주십시오.

답변1

Hivex는 파일에서 오래된 데이터를 제거하지 않도록 명시적으로 설계되었습니다. 레지스트리 하이브 형식은 문서화되지 않았고 MSFT를 제외한 어느 누구도 이 형식이 어떻게 작동하는지 실제로 이해하지 못하고 변경 과정에서 데이터를 파괴하고 싶지 않기 때문에 이는 중요한 목표입니다.

참고하세요.~ 아니다이는 hivex가 노드를 삭제할 수 없다는 것을 의미합니다. API를 통해 노드를 삭제할 수 있으며 해당 노드는 일반 Windows 레지스트리 호출로 표시되지 않지만 기본 파일에서 데이터가 삭제/제거/잘리지 않습니다.

빈 하이브 파일을 원한다면 빈 하이브 파일로 시작하는 것이 좋습니다. hivex 소스 코드에는 사용할 수 있는 빈 하이브 파일('최소'라고 함)이 있습니다.

관련 정보