FAT 파일시스템-데이터 영역 #3

심야·2022년 12월 21일
0

디지털 포렌식

목록 보기
11/23

루트디렉터리5.png

파일 복구

YAM1의 시간정보를 알았으니 파일을 복구해보겠다.
우선 실제 데이터가 존재하는 영역으로 가야한다.

디렉터리 엔트리.png

그러기 위해선 Starting Cluster HI + Starting Cluster Low - 2 SP + 현재섹터위치를 계산해야 한다.
(Starting Cluster HI(00 00) + Starting Cluster Low(05 00) - 2)
8 + 8320 = 8344섹터

# FAT영역에서 0,1 클러스터는 이미 예약되어 사용중이기 때문에 2를 뺀다
# SP는 Sectors per cluster를 의미한다. SP는 사용자가 설정할 수 있기 때문에 분석 전 꼭 확인해야 한다.
FAT32는 클러스터 당 8섹터가 기본값이다.

FAT-데이터영역.png

8344 섹터에 PNG 시그니처가 존재한다. 복구를 해서 해당 파일이 맞는지 확인하겠다.
파일 사이즈만큼 데이터를 추출하면 파일을 복구할 수 있다.
파일 사이즈는 디렉토리 엔트리의 12~15 오프셋에서 확인가능하다.
File Size : 00 00 26 E2 # 9954 Bytes

9954 / 512 = 19 # 512는 1섹터를 의미한다.
8344섹터 + 19섹터 = 8363섹터
8363섹터는 YAM1.png의 마지막 섹터다.
따라서 8344섹터의 413000오프셋부터 8363섹터의 4157FF 오프셋을 hxe editor의 블록선택(ctrl + e)기능을 사용해 선택하고 새로운 창에 복사해 복구한다.

413000 offset

FAT-오프셋시작.png

4157FF offset

FAT-오프셋끝.png

오프셋 블록 선택

FAT - 오프셋.png

파일 저장

결과.png

복사한 데이터를 PNG 파일로 저장한다.

복구 결과

결과2.png

검증

파일이 제대로 복구되었는지 확인하기 위해 FTK imager를 사용해 확인하겠다.
확인 결과 복구한 파일과 동일한 이미지를 가지고 있다.

FAT-FTK.png

Long File Name (LFN)

디렉토리 엔트리 구조에 의하면 이름을 기록하기 위해선 8바이트만 사용할 수 있다.
그럼 이름이 긴 파일은 저장할 수 없는걸까?
그렇지 않다. 파일이름이 길면 LFN 엔트리를 추가로 할당한다.

LFN.png
파일 이름을 표현하지 못할 경우 LFN 엔트리를 사용한다는 의미로 짧은 파일이름 형식('~'포함)으로 변환되고 실제 파일이름은 LFN 엔트리로 표현한다.
LFN 엔트리는 이름을 유니코드로 표현하며 하나의 LFN 엔트리는 13문자만 표현가능하다. 그래서 13문자를 넘을 경우 하나 이상의 LFN 엔트리가 사용된다.
엔트리 오프셋 0 항목인 순서번호(Seq Num)는 여러 개 LFN 엔트리의 관계를 나타낸다.

LFN Entry 데이터 구조

10진수설명
0 - 0Sequence number or status byte
1 - 10LFN character 1-5 (Unicode)
11 - 11Attributes
12 - 12Reserved
13 - 13Checksum
14 - 25LFN character 6 - 11 (Unicode)
26 - 27Reserved
28 - 31LFN character 12 - 13 (Unicode)

LFN Entry

LFN-2.png

해당 파일은 파일 이름이 길어 ABCDEF~1JPG 로 표현하며 LFN 엔트리 2개를 할당해 abcdefg12345678.jpg 이름을 표현한다.
그리고 01, 42 순서번호를 사용해 엔트리 2개를 할당했음을 표시한다.

#순서번호 필드는 0x40 과 OR 연산해 표시한다. 만약 엔트리가 3개 할당되면 01, 42, 43으로 표시된다.

profile
하루하루 성실하게, 인생 전체는 되는대로.

0개의 댓글