Forensic/포렌식 공부

[디스크 복구] FAT32 파티션 복구

Ron Weasley 2022. 8. 9. 16:05

*지금부터 작성을 하는 공부들은 악용을 할 시 법적인 책임을 질 수 있으니 공부 용도로만 쓰길 바랍니다.

 

배우기에 앞서, 사전 지식이 필요하여 2개를 보고 오시는 것을 추천드립니다.

 

MBR 구조 : https://lemonpoo22.tistory.com/23

FAT32 구조 : https://lemonpoo22.tistory.com/84

 

우리가 Windows 시스템에서 가장 많이 사용하는 파일 시스템 포맷인 FAT32, NTFS 포맷의 파티션이 손상되었을 경우 복구하는지 배워볼 것 입니다.

 

우선 실습 파일은 따로 올리지 않겠지만, 복구하는 방법이 동일하기 때문에 혹시 직접 실습을 해보고 싶다면, 가상 디스크를 하나 만들어서 똑같이 영역을 손상시켜 공부해보는 것을 추천드립니다.

 

실습 시나리오는 다음과 같다.

BR(Boot Record) 영역이 손상된 파티션 복구
알아야 하는 것 : 파티션 타입, LBA 시작주소, 파티션 총 섹터 수

실습 파일을 파티션을 보기 위해 FTK로 열어보겠습니다.

1개의 파티션이 보이는데, Unrecognized로 나오는 것으로 보아 파티션 정보가 손상된 것을 확인할 수 있었습니다.

 

다음으로, 디스크 수정 작업을 하기 위해서 Hxd 에디터를 켜서 [Tools] > [Open Disk Images]를 눌러서 실습 파일을 불러온 다음 섹터의 byte는 512로 설정을 해서 잡아주면 다음과 같은 화면을 볼 수 있습니다.

화면에서 빨간색으로 영역 표시한 부분이 이제 MBR에서 파티션 테이블 정보가 저장되어 있는 부분입니다.

분석중인 디스크를 보면 1번 파티션만 정보가 저장되어 있음을 확인할 수 있습니다. 그리고 추가적으로 80으로 저장되어 있는 부분은 "부트 플래그" 영역이므로 부팅 가능한 파티션입니다.

 

그리고 LBA 시작 주소가 [0x0000003F]인 것을 알아냈으니 10진수로 변환을 하면 0x0000003F = 63 Sector 가 됩니다. 63섹터로 이동을 해보면 해당 섹터가 손상되어 있음을 확인할 수 있습니다.

정상적인 파티션 시작정보가 아니기 때문에 파티션에 존재하는 BR 백업본을 가지고 복구를 시켜주도록 하겠습니다. FAT32는 BR 백업본의 주소가 파티션 시작주소의 6번째 섹터 뒤에 존재합니다. 그럼 63 + 6 = 69 섹터가 되겠죠??

MSDOS5.0은 FAT32로 포맷을 했을 때, 남는 일종의 시그니처 이름입니다. 그리고 섹터는 69번임을 확인할 수 있었습니다. 그래서 69섹터의 BR 정보를 드래그하여 63 섹터의 손상된 데이터에 붙혀넣기를 하면 정상적으로 손상된 파티션이 작동을 하게 됩니다. 참고로 BR영역은 "512Byte"입니다.

아까 Unrecognized로 보이던 파티션이 정상적으로 작동을 하고, 보이지 않던 파티션과 파일목록들이 보입니다.

 

이렇게 FAT32에서 BR영역이 손상되었을 때, 복구하는 방법을 알아봤습니다.

 

-Reference-

Start Up 디스크 포렌식