MBR이란 간단하게 말해서 컴퓨터가 장착된 하드디스크의 정보를 확인하고 기동하기 위한 정보가 담긴 곳입니다. MBR, Partition, BR, Root Directory의 구조를 살펴보았습니다.
(그림 1)
○ DUCKJIN이라는 가상 하드 디스크를 만든 후에 그 하드 디스크에 메모장에 애국가 1절을 적어 저장한 후 실수로 삭제한 상황을 가정하였습니다. 그 데이터를 hxd을 이용하여 데이터 복구를 해보았습니다.
HXD를 관리자 권한으로 실행한 뒤 도구 -> 디스크 열기 -> 물리디스크에서 만든 가상의 디스크를 선택합니다. (읽기전용 열기 X)
열고 나면 여러가지가 보이는데 (그림 1)의 Partiton의 구조를 보고 LBA address가 위치한 4비트를 이용하여 MBR의 주소를 구하여 그 Sector로 이동하게 됩니다.
> (그림 1)의 구조를 보고 00 00 00 80이 MBR의 주소임을 알 수 있습니다. 16진수이므로 10진수로 바꾸면 128임을 알게 되어 128 Sector로 이동합니다.
그렇게 되면 (그림 2)의 BR 구조를 통해 Reserved Sec = 10 1A와 FAT SIZE#1와FAT SIZE#2 = 00 00 07 F3을 구할 수 있습니다. 16진수이므로 10진수로 바꾸게 되면 RE = 4122, FAT SIZE#1과 2는 각각 2035임을 구할 수 있습니다. MBR + RE + FATSIZE#1 + FATSIZE#2 = ROOT DIRECTORY가 됩니다. 즉 ROOT DIRECTORY = 8320이 되므로 8320 섹터로 이동하게 되면 루트 디렉토리가 됩니다.
제일 아래 쪽에 보면 .TXT로 끝나는 지워진 메모장 파일임을 알 수 있어서 (그림 3)의 루트 디렉토리의 구조를 통해 File Size = 00 00 00 7B, First Clus low = 01 5C임을 알게 되고, 10진수로 바꾸게 되면 File Size = 123, First Clus low = 348임을 알게 된다. First Clus low의 10진수로 나온 값을 2로 빼고 8을 곱하고 루트 디렉토리에 더합니다. (348-2) * 8 + 8320 = 11088이 나오게 되어서 11088sector로 이동하게 되면 나옵니다.
그 후 블록단위 선택을 하여서 10진수로 바꾼 후 길이를 10진수로 바꾸게 되면 그 txt의 처음부터 끝까지 범위가 클릭이 됩니다. (길이 = File Size)
그 클릭이 된 범위를 새 글을 만든 후 복사를 합니다. 그 후 다른 이름으로 저장하기를 눌러 바탕화면에 1.txt로 저장하겠습니다.
그 후에 바탕화면에서 1.txt을 클릭해서 보게 되면 애국가가 복구되었음을 확인 할 수 있습니다.
'보안 > WINDOWS' 카테고리의 다른 글
Window SSL 인증서 설정(WEB, FTP) (0) | 2019.07.19 |
---|---|
FTK IMAGER 복구 (0) | 2019.07.03 |