
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 소스 코드에는 사용할 수 있는 빈 하이브 파일('최소'라고 함)이 있습니다.