Windows 레지스트리 하이브가 비어 있는 것처럼 보이는 이유는 무엇입니까?

Windows 레지스트리 하이브가 비어 있는 것처럼 보이는 이유는 무엇입니까?

Windows 10 컴퓨터로 가서 "C:\Windows\System32\config"레지스트리 하이브 파일을 열려고 했습니다.

SOFTWARE예를 들어 Explorer에서 보고한 대로 크기는 정확히 128MB이지만 Visual Studio Code로 열면 비어 있는 것으로 표시됩니다. 메모장은 "다른 프로세스에서 사용 중"이기 때문에 열기를 거부합니다. 다른 파일( SYSTEM, SECURITY등) 에 대해서도 동일한 결과를 얻습니다 .

Windows가 내가 어리석은 짓을 하는 것을 막으려고 하는 걸까요? 이러한 파일은 어떤 면에서 특별한가요(레지스트리 호스팅 외에)?

답변1

Visual Studio Code는 파일을 열 수 없다는 개념을 이해하지 못하기 때문에 비어 있는 것으로 나타납니다. 그것들은 실제로 비어 있지 않습니다. vscode는 문자 그대로 비어 있는지 여부를 알 수 없습니다.

Windows에는 "배타적 개방"("공유 모드"라고도 하며 다른 곳에서는 "필수 잠금"이라고도 함)이라는 개념이 있습니다. 이는 일반적으로 데이터베이스 엔진이 데이터를 관리하는 동안 다른 프로그램이 데이터를 쓰는 것을 방지하기 위해 데이터베이스 소프트웨어에서 사용됩니다. 두 핸들러가 동시에 쓰기를 시도하면 전체 데이터베이스가 손상될 수 있습니다. 파일 시스템에도 동일하게 적용됩니다. Windows는 실제로 파일 시스템으로 마운트된 경우 원시 디스크 장치에 액세스하는 것을 허용하지 않습니다.

(그렇다고는 했지만~이다LMDB와 같이 동시 액세스를 위해 특별히 만들어진 데이터베이스 형식입니다.)

하지만주요한Windows 레지스트리에서 단독 열기를 사용하는 이유는 보안 강화를 위한 것입니다. 각 레지스트리 키에는 파일이나 폴더와 마찬가지로 일련의 권한(DACL/SACL)이 첨부될 수 있습니다. 레지스트리 하이브(특히 시스템 또는 보안 하이브)를 직접 열 수 있다면 권한을 통해 보호되어야 하는 데이터를 간단히 읽을 수 있습니다.

관련 정보