Notice
Recent Posts
관리 메뉴

Hacking Arts

FAT32 본문

Forensic/Disk Forensic

FAT32

Rakehell 2014. 8. 23. 03:05


<FAT32>

일단 MBR을 통해서 이곳으로 오면 BR의 OEM name을 보고 아 이 file system은 FAT32인 것을 알 수 있다.

일단 Byte Per Sector : 0x0200 -> 512 / Sector Per Cluster : 0x08 -> 8

FAT32의 구성을 생각해보면 FAT1영역과 Root Directory를 찾아야한다.

일단 Reserved area까지 더해주면 FAT1이 나오게된다. 이때 Reserved Area의 크기는 첫째줄 0E,0F위치에 있다. 그러므로 0x0024 -> 36섹터인 것을 알 수 있다. 그러므로 63+36해서 99섹터에 가보면

 

이 위치가 FAT1인 것을 알 수 있다. 클러스터를 사용하는 방법을 보여준다.

저 파티션안에는 test라는 4KB가 할당되어있는 파일 그다음에 위에 파일이 있다. 일단 FAT의 0x00~0x0B까지 는 다른 사용하는 부분이 있고 그 다음 0x0C~0x0F가 test라는 파일이 할당되어있고 그다음줄 16B부분은 위의 파일이 할당하고 있음을 알 수 있다.

그 다음 파일의 끝에는 항상 0x0FFFFFFF가 할당되어있고 파일 한개당 기본적으로 4byte가 할당되고 만약 4KB를 넘기면 0x00000005이런식으로 05번 클러스터 다음 06번 클러스터 다음 07 다음 08번 클러스터에는 끝을 표시해준다. 이런식으로 계속됨을 말해준다 만약 또 다른 파일이 생기고 그 파일이 1G면 1024(G->M)*1024(M->K) = 1048576KB -> 262144개의 클러스터가 할당되는데 그렇다면 09번부터 262152까지 할당된다. 이런식으로 할당되는 것을 알 수 있다.

-----------------------------------

그렇다면 이제 다시 63섹터의 BR을 통해서 Root Directory를 알아 차려야한다.

Reserved다음에 FAT1과 FAT의 백업갯수 다음이 DATA영역이고 그 첫부분이 Root Directory이다.

그렇다면 BR을 통해서 FAT의 갯수 2번째줄 00을 보면 0x02 즉 2개가 있다는 것이다.

그다음 FAT의 사이즈인 3번째줄 04 05 06 을 보면 0x001FEE -> 8174

8174(크기) * 2(갯수) + 99(Reserved 까지 섹터의 수) =  16447 바로 Root Directory이다.

 

2줄씩 묶었을때 첫줄의 0x0B가 속성으로 LFN의 경우는 0x0F로 표시될때 다음 두줄도 계속됨을 의미해서 중요하게 보도록 하자!

그리고 LFN의 경우 Order부분의 가장 처음인 0x43의 경우 101011(2)이다. 이게 마지막 order의 4번째 비트가 1로 표시되서 끝을 표시해준다. 그리고 두줄씩 묶었을때 마지막 두줄은 Directory Entry이고 0x01,0x02로 표시 되있는 두개는 LFN을 의미 하고 남은건 위에서 말했듯이 마지막을 표시해 준다.

처음에 나오는 파일은 root directory일 것이다.

 

그다음 파일은 루트디렉토리 + 8 sector(cluster하나의 크기) 로 가면 이렇게 test파일의 내용을 확인 할 수 있다.

 

다른 파일의 내용이다.

 

여기에 할당된 크기는 바이트 하나로 아까 그파일의 크기가 14252바이트로 dec버튼을 누른후 해주면 개의 라인이 지정되게된다.

이렇게 파일의 내용을 가질수도있고 HxD라는 툴을 이용해서 파일을 복원 할 수도 있다.

'Forensic > Disk Forensic' 카테고리의 다른 글

FAT32 - 2  (0) 2014.08.23
MBR(Master Boot Record)  (0) 2014.08.23