Drilling FAT12 - 1편

튜토리얼/FAT12 | 2009/06/09 01:49 | Posted by DMW
크리에이티브 커먼즈 라이선스
Creative Commons License
 FAT12를 드릴링해보자능. 총 3편으로 구성될꺼고....HxD라는 헥사 에디터로 플로피 이미지를 만들어서 Virtual Floppy Drive란 가상 드라이브 유틸을 써서 이걸 읽어보는게 최종 목표다. 프겔에도 같이 올리고 있따능.

Overview

 FAT12는 플로피디스크에 사용되는 파일시스템이라능. 12라는 숫자는 FAT( File Allocation Table )의 엔트리 하나가 12비트라는걸 의미하는 숫자라능.

 플로피디스크는 클러스터 Cluster 라고 불리는 단위로 쪼개져서 사용되는데....보통 더 용량이 큰 저장장치는 섹터 Sector를 여러게 묶어서 클러스터를 만들어서 관리한다. 플로피디스크는 한 클러스터에 한 섹터만 들어가 있다. 고로 클러스터나 섹터가 똑같다고 보면 된다능. 한 섹터는 512 바이트라능.


 FAT12의 구조다. 첫번째 섹터는 부트섹터고 바로 뒤에 FAT 테이블이 온다능. FAT는 매우 중요하기 때문에 똑같은걸 두개를 만들어 놓는다능. 그리고 루트 디렉토리에 해당하는 섹터들이 뒤따르고 33 섹터부터 끝까지 실제 파일과 디렉토리의 내용이 들어가게 된다.

잔소리리는 여기까지고....1.4MB 짜리 2HD 플로피디스크를 예로들어 각각에 대해 설명을 해보겠다능.

Boot Sector
 파일시스템에 관한 여러가지 정보이 앞에 나오고 부트로더도 여기에 처박힌다. FAT12 파일 시스템을 구축하려면 부트섹터의 앞에 아래와 같은 순서로 데이터들이 들어가 있어야된다.

Byte

Sotored data

11

이거는 무시한다고 하는데....여기서 뭔가 있긴 있어야 된다.
EB 4e 90을 쓰고, 뭔가 쓰고싶은걸로 8바이트를 체우자.
ex) EB 4E 90 44 4D 57 00 00 00 00 00, 아스키 코드로 보면 "ëN DMW     " 이 된다.
>_<

2

섹터 당 바이트 수, 512로 해야 된다.

1

클러스터 당 섹터 수, 1로 해야 된다

2

FAT가 시작되는 섹터, 1이라고 쓰면 된다.

1

FAT의 수, 2로 쓰면 된다.

2

루트디렉토리의 엔트리 수, 224로 하면 된다.

2

전체 섹터의 수, 2880으로 하면 된다.

1

미디어 타입, 240(0xf0)으로 하면 된다.

2

FAT 하나의 길이, 9로 하면 된다.

2

트랙당 섹터의 수, 18로 하면 된다.

2

헤드의 수, 2로 하면 된다.

4

무시 한다는데....0을 써야 된다.

4

전체 섹터 수를 한번 더 쓴다. 2880(FAT12에서는 0을 쓴다는데 2880도 아무튼 된다)

2

무시, 0으로 채워주자

1

부트 시그내쳐 Boot signature란다. 0x29를 넣어야 된다.

4

볼륨 ID, 0xffffffff를 넣으니까 되더라능

11

볼륨 라벨, 디스크이름이다. 11바이트를 꼭 맞춰서 모자라면 스페이스를 넣어주자.
ex) "DMW        "

8

파일 시스템 타입, 마찬가지로 스페이스를 채워서 "FAT12   " 라고 써주자

18

잉여공간이다. 0을 채워주자

 총 합 80 바이트다. 이 뒤로 부트로더가 들어오면 되는데....필요가 없다면 나머지 432 바이트를 0으로 채우자. 그럼 512 바이트가 꽉차서 부트섹터 완성이라능.

추가  - 프겔의 아브릴흉이 알려줬다. 
 부트 섹터의 앞의 3바이트는 디스크가 부팅가능한 미디어로 사용 될 때 뒤에오는 77바이트의 실행되지 않는 데이터를 건너 뛰는 점프 인스트럭션이 와야한다고 한다. 읭읭 내가 봤던 PDF 문서에는 ignore라고 써있었따능 ㅠ.ㅠ

 그 뒤에 8바이트는 OEM이름 이라고 한다능.

위에 설명한데로 채워넣어도 상관은 업ㅂ지만....의미는 알고 넘어가자능.
저작자 표시 비영리 동일 조건 변경 허락

'튜토리얼 > FAT12' 카테고리의 다른 글

Drilling FAT12 - 3편  (6) 2009/06/12
Drilling FAT12 - 2편  (0) 2009/06/11
Drilling FAT12 - 1편  (1) 2009/06/09
TAG

댓글을 달아 주세요

  1. Favicon of http://dlbo.tistory.com BlogIcon Lonewolf dlbo 2009/06/17 17:03  댓글주소  수정/삭제  댓글쓰기

    아흙. 커널 책들 보고 있는데 FAT12 설명 쥐뿔도 없이 돌려대서 죽을 맛이었는데 -_-! 좋은 정보 감사합니다