FAT는
File Allocation Table로 파일 할당 테이블이다.
위와 같이 MBR /예약영역(Reserved Area)/FAT영역/DATA영역으로 나누어진다.
예약영역에는
Boot Record
File Information
BR Backup
FI Backup 이 존재한다. Boot Record는 파일 시스템의 정보가 있다.
FAT 영역은 파일의 할당 유무를 알려준다. 원래는 기본적으로 2개가 있다.
하나는 FAT1 하나는 FAT2이다. 둘다 파일의 할당 정보가 들어가있다.
데이터영역은 Root Directory 라고 한다
파일의 주소들이 적혀있고 그곳으로 따라가면 거기 정보가 있다.
HxD로 자세히 살펴본다.
63번섹터로 가보자.
처음 3바이트는 부트로더를 찾아가는 코드이다. 이 파티션은 부팅 파티션이 아니므로 상관없다
예는 OEN NAME이라 한다. 해당 파일시스템의 이름이나 운영체제의 이름을 뜻한다.
여기서는 MSDOS5.0으로 표시되어 있다. 8바이트로 나타낸다
그다음 2바이트는 섹터의 바이트를 적어놓는다. 거꾸로 읽어야 하므로 0200이다.
16진수이므로 10진수로 바꿔주면 512이다. 이 의미는 한 섹터의 바이트가 512바이트라는 의미이다.
그다음 1바이트는 한 클러스트에 있는 섹터의 갯수롤 알려준다.
08 이므로 한 클러스터에는 8개의 섹터가 있다는 의미이다.
그다음 2바이트는 예약섹터의 갯수이다.
2200이 아니라 0022라고 읽어야한다. 34개의 섹터가 예약 섹터이다.
그 다음 바이트는 FAT영역의 갯수이다. FAT1 FAT2로 기본적으로 나누어져 있어서 2이다.
두번째 줄 끝에서 4바이트는 히든섹터이다.
사용하지 않는 섹터이며 00 00 00 3F 이므로 10진수로 63이다.
0번부터 62번 섹터까지는 숨겨져 있다는 뜻이다.
표시된 4바이트는 총 섹터의 갯수이다. 파일시스템도 MBR로 갈 필요없이 한번에 확인하기 위해 기록한다.
00 3F FA 86 이므로 4192902개이다.
여기서 512를 곱하고 1024/1024를 하면 M바이트 단위로 구할 수 있다. 계산하면 2기가가 나온다.
표시된 4바이트는 실제 FAT하나의 영역의 섹터 갯수를 나타낸다.
0FF7는 10진수로 4087이다. 그럼 위와같은 분석을 통해 아래와 같은 그림이 그려진다.
MBR로 가서 테이블을 타서 63섹터로 이동한다.
예약섹터의 갯수가 34개 이므로 예약영역은 63섹터~97섹터 사이이다.
하나의 FAT영역은 4087이다. 따라서 97~4184(97+4087)이 FAT1영역이고
4184(97+4087)부터 8271(4184+4087)까지 FAT2 영역이다.
8271섹터부터 데이터의 영역이 시작된다는 의미이다.
그리고 표시된 4바이트는 00 00 00 02로 10진수로 2인데
이 의미는 루트 디렉토리가 시작되는 곳이 2번 클러스터라는 의미이다.
루트 디렉토리는 데이터영역에 있다.
내리다보면 69번섹터에 똑같은것이 있는데 백업파일을 따로 만들어 논 것이다.
97섹터이다. FAT1의 시작 섹터이다.
FAT는 파일을 볼때 여기를 먼저보고 해당 파일이 몇번 클러스터에 있는지 확인을 한다.
그리고 그쪽 영역으로 이동하는 구조이다.
4바이트당 한 클러스터로 보면된다.
루트디렉토리가 2번 클러스터부터 있다고 아까 알려주었다.
따라서 0번 1번 클러스터는 사용하지않고 2번부터 사용을 하게 된다.
2번클러스터는 3번째 줄이 쳐져있는 곳이다.
0F FF FF FF-> 루트디렉토리의 클러스터이다.
그 뒤에는 다 00 인데 아무런 내용이 없기 때문이다.
데이터 영역 시작의 섹터로 이동해보자.
8271번 섹터이다. 아무런 파일이 없다. 이 하드에 TXT파일에 아무 내용을 쓰고 저장한 후에 다시 새로고침을 해본다.
전과 다르게 무언가 생겼다.
표시한 3바이트는 확장자를 나타낸다. 54 58 54 는 아스키코드로 TXT이다.
표시된 1바이트는 파일인지 디렉토리인지 알려준다.
20이면 일반파일이고 10이면 디렉토리이다.
끊어서 3개를 표시해놨다
첫번째 A3는 -TIME2
75 OB -TIME1
4C 93 -년도 이다.
먼저 4C 93부터 계산하여보자.
2진수로 바꾸면
100110010010011
0100110 0100 10011 (6/4/5)로 나눈다
38 4 19
+1980
-----------------------------------------
2018 년 4 월 19일
으로 계산한다.
년도에 1980을 더하는 이유는 FAT가 1980년에 나와서 이다.
그다음 TIME1은
75 0B = 111010100001011
4/6/5 로 나눈다
1110 101000 01011
14 40 11
마지막에 초를 X2를 한다. 왜냐하면 5비트로는 59까지 표현할 수 없기 때문이다.
그다음에 TIME1은
A3 는 10진수로하면 163이다 /100하면1.63이 된다.
앞에 몫이 1이면 +1 0이면 냅둔다
이게 무슨말이냐면 방금 초를 구하기위해 정해진 5비트를 사용하여 억지로 표현했다.
5비트로는 59까지 표현이 되지 않아서 X2를 하는데 여기서 발생하는 문제는 모든수에 X2를 하면
홀수를 구할 수 없다. 그런 문제로인해 TIME1을 두어서 앞으 몫이 있다면 +1초를 하고 아니면 그대로 두는 방식을
사용하는 것이다.
따라서 이 파일은 2018년 4월 19일 14시 40분 23초에 생성이 되었다!
그다음 표시한 2바이트는 액세스한 날짜
표시한 4바이트는 수정된 날짜이다. TIME1이 없기 때문에 수정된 날짜에는 홀수가 나올수가 없다!.
만약 수정된 날짜에 홀수가 있다면 이상한 것이다.
표시된 2바이트 2바이트는 스타팅 클러스터 하이/ 스타팅 클러스터 로우이다.
하이+로우를 하여 합치면
00 00 00 03이다. 이것은 3번 클러스터로가면 해당 파일에 내용이 있다는 것이다.
아까 처음에 정보에서 한 클러스터는 08이라는 값으로 8개의 섹터가 있다고 구했다.
그렇다면 저 파일의 내용을 보기 위해서는 클러스터 3개를 건너 뛰어야한다.
지금 섹터는 클러스터 2의 섹터이다. 왜? 아까 데이터영역이 2번클러스터였으니까.
표시된 4바이트는 00 00 00 0E로 14인데 이것은 파일의 크기를 나타낸다.
아까 2번클러스터의 섹터가 8271이다.
파일의 내용이 3번 클러스터에 있다고 하였다.
클러스터 하나는 8개의 섹터로 이루어 졌다고 하였다.
그러므로 8271+8 섹터로 가면 방금 만든 파일에 내용을 볼 수 있다.!
파일안에는 Hello Forensic이라고 적혀 있다.
'디지털 포렌식' 카테고리의 다른 글
[Forensic]논리디스크와 PBR (0) | 2018.04.19 |
---|---|
[Forensic]디스크구조와 MBR (Master Boot Record)에 대해서 (0) | 2018.04.18 |
[Forensic]포렌식개념 (0) | 2018.04.18 |