* 들어가기에 앞서 본 스터디에 사용 된 OS 종류 및 VMware 종류에 대해 기술하고 시작하고자 한다. 다른 버전이어도 상관은 없으나, 사용 상 불편한 부분까지 본 블로그에서 일일히 다루어 주지는 않는다. 물론, 질문을 남겨줄 경우, 따로 확인해서 답변을 드리긴 하겠다.

  - 필자 E-Mail : wotmd9408@naver.com

  - 가상머신 : VMWare WorkStation 12

  - OS : Window7 Enterprise K 64bit

  - RAM : 1GB

  - 나머지 사항은 기본적인 세팅으로 설정하였다.

  - 추가 필요 Tool : Hxd(https://mh-nexus.de/en/downloads.php?product=HxD)


시작하기에 앞서 지금 이 글을 읽고 있는 독자분들이 알고있는 파일시스템에 대해 생각해보자. FAT32, NTFS, HFS, ext2,3,4, ReFS 등 다양하 파일시스템을 알고 있을 것이다. 어떤 파일시스템을 주로 사용하느냐는 여러분이 사용하는 OS에 따라 달라질 것이고, 또는 여러분의 회사에서 사용하는 시스템이 무엇이냐에 따라 달라질 것이다. 

필자는 주로 NTFS를 많이 사용한다. 실제 사용하는 OS가 Window가 많기 때문이다. 실제 일반유저가 사용하는 많은 프로그램중 가장 높은 비중을 차지하는 파일시스템은 아마 Windows 파일시스템일 것이다. 여러가지 프로그램들도 잘 만들어져있고, 무엇보다 금융 거래등을 위해서 꼭 필요한 Active X등을 사용하기 위해서는 Windows OS가 필수로 필요하기 때문이다. 지금부터는  Windows OS의 파일시스템 중 FAT32에 대해 집중적으로 다루려고 한다.


FAT(File Allocation Table)은 디지털 카메라 등에 장착되는 대부분의 메모리 카드와 수많은 컴퓨터 시스템에 사용되는 파일시스템 구조이다. FAT 파일시스템은 1977년 빌게이츠와 마크 맥도널드가 1년간 개발해 만들어 낸 파일시스템 구조로 MS-DOS, DR-DOS, Microsoft Windows를 포함한 다양한 운영체제를 위한 파일 시스템이다. FAT12, FAT16, FAT32, FATX, exFAT 등이 존재하며, 현재 주로 쓰이는 파일시스템은 FAT32이다. 

FAT12는 주로 과거에 많이 쓰이던 MS-DOS 초기에 사용되었고, 이후 플로피 디스크를 사용할 경우 여전히 통용되고 있다. FAT16은 32MB 이상의 하드디스크를 지원하기 위해 사용되었고(당시에는 디스크 및 메모리 사용량이 현재처럼 크지 않았다) Window 95까지는 사용되었다. FAT16은 최대 2GB 까지 용량을 지원한다. 

우리가 이 포스팅부터 다루게 될 FAT32는 2GB 이상의 하드디스크를 지원하기 위해 만들어졌으며 Windows 95 OSR2부터 사용할 수 있게 만들어져있다. FAT32에서 하나의 파일은 최대 4GB -1Byte의 용량을 가질 수 있으며, 하나의 파티션이 최대 8TB의 용량을 가질 수 있다. 그런데 이쯤 되면 하나의 의문이 생길 것이다. 전에 포스팅한 MBR 구조에서 하나의 파티션은 최대 2TB의 크기를 갖는다고 설명했다. 그런데 FAT32 파일시스템은 8TB까지 최대 용량을 갖는다고 한다. 과연 어느게 우선시 되는게 맞는것인가? 

사실 생각해보면 간단하다. 시스템이 구동 될 때, MBR이 먼저 구동되는지 FAT32가 먼저 구동되는지를 알아보면 된다. MBR에 대해 설명할 때 부트코드에는 부팅을 위해 파티션 내 BR(Boot Record)을 호출하는 과정이 프로그래밍 되어 있다고 이야기 했다. FAT32 파일시스템에 대한 정보는 이 BR에 포함되어 있다. 따라서 최대 8TB까지(물리적으로 라면) 지원하는 FAT32라 하더라도 MBR 구조로 되어있는 OS라면 파티션 당 최대 2TB까지만 지원하게 된다.

그리고 이 뒤를 잇는 exFAT나 기타 여러가지 것들이 존재하지만, 실제로는 많이 쓰이지 않으니 이번 포스팅에서는 따로 다루지 않도록 하겠다.


[그림 1. FAT32 구조]


[그림 1]은 FAT32의 전체적인 구조를 보여준다. 하나의 FAT32 파티션은 위와 같은 구조를 가진다. 지금부터 [그림 1]의 세부적인 내용에 대해 하나하나 알아보도록 하자.

세부적으로 알아보기에 앞서, 가상의 FAT32 파티션 하나를 구성해 보도록 하자. 이 내용은 이후 NTFS 파일시스템을 할 때도 동일한 방법으로 이루어질 것이며 이번 포스팅에만 작성 할 것이다. 실제로 한번만 해보면 다시 외울 필요 없을 정도의 내용이니 실습을 통해 숙달하는것을 추천한다.

먼저 실행창(Window 키 + R)을 열어 diskmgmt.msc를 입력한다. 이 명령어는 [디스크 관리] 창을 여는 명령어로 제어판을 통해 찾아 들어가는 방법도 존재하나 매우 번거로우므로 그냥 이 명령어를 기억하고 익숙해지도록 한다. 이후 포스팅을 보고 따라하다보면 상당히 많이 사용하게 될 명령어이다.

 [그림 2. 디스크 관리]

컴퓨터를 사용하다 저장장치를 하나 이상 추가해본 독자라면 한번 이상은 봤을 것으로 생각되는 창이다. 거의 마지막에 하게 될 파일 생성 / 복구 등을 할 때 정말 자주 보게 될 화면이니 잘 기억해두도록 한다. (질리게 해야 할 지도 모른다.)


[그림 3. VHD 만들기 과정#1]

앞으로 자주 사용 될 FAT32 VHD를 하나 만들어 보도록 하자.  먼저 [디스크 관리]에서 동작 -> VHD를 들어가 VHD 생성 탭을 연다. 기존에 만들어둔 VHD가 있다면 VHD 연결을 통해 미리 생성한 VHD를 열어도 상관없다.


[그림 4. VHD 파일 경로 지정 및 크기 지정]

사용할 VHD의 크기 및 경로를 지정해 준다. MB, GB, TB 단위로 지정이 가능하며 원하는 대로 지정할 수 있다.(단 VHD도 하나의 파일로서 크기만큼의 용량을 차지한다.) 본 실습에서는 무난하게 3GB를 지정하였다.

[그림 5. 생성 된 3GB의 VHD 화면]

정상적으로 과정을 완료되었다면 위 붉은 테두리처럼 3GB의 디스크가 생성 된 것을 확인할 수 있다. 다만 현재까지의 과정으로 저 VHD를 바로 사용할 수는 없다. 다음 과정에서 거칠 포멧과정을 거쳐서 정상 Disk로 작동 할 수 있도록 조치할 수 있다.

디스크를 포맷하는 과정을 자세히 설명하지는 않도록하겠다. Forensics를 공부하려는 독자들이라면 간단한 디스크 포맷 지식 정도는 알고 있으리라는 생각도 있지만, 검색을 통해서도 쉽게 찾아 낼 수 있기 때문이다. 다만, 디스크 포맷과 정에서 한가지 주의 해야 할 부분이 있다. 아래 [그림 6]처럼 디스크 포맷 과정 간 파일시스템을 결정하는 부분이 나온다. 이때 Default 값은 NTFS로 되어있는데, 실습을 위해 FAT32로 변경한 후 과정을 진행하도록 한다.


[그림 6. 파티션 포맷 간 FileSystem 설정]


위 과정을 정상적으로 수행했다면 [내 컴퓨터]에 들어갔을 때 방금 생성하 VHD가 정상적으로 접근되는 것을 확인 할 수 있다.


지금까지 FAT32를 본격 분석하기 위한 Setting에 대해 알아보았다. 다음 포스팅부터는 FAT32를 본격적으로 탐구하고 분석하는 시간을 갖도록 하겠다.

Posted by Latte_
,