'기타' 카테고리의 다른 글
메모리 동적할당 읽을거리 링크 (0) | 2017.01.10 |
---|---|
노트북 와이파이 (0) | 2016.12.25 |
exploit-db (0) | 2016.12.16 |
sysmetric-key algorithm and public-key algorithm (0) | 2016.10.27 |
보면 좋은 문서들 (0) | 2016.10.14 |
메모리 동적할당 읽을거리 링크 (0) | 2017.01.10 |
---|---|
노트북 와이파이 (0) | 2016.12.25 |
exploit-db (0) | 2016.12.16 |
sysmetric-key algorithm and public-key algorithm (0) | 2016.10.27 |
보면 좋은 문서들 (0) | 2016.10.14 |
NTFS(New Technology File System)
출처 : forensic-proof.com
NTFS의 전체적인 구조는 위와 같다.
아래는
NTFS의 Boot Record 의 구조이다.
Byte Range | Description | |
Decimal | Hexadecimal | |
0 – 2 | 0x0000 – 0x0002 | Jump command to boot code (usually 0xEB5290) |
3 – 10 | 0x0003 – 0x000A | OEM ID (typically "NTFS ") |
11 – 12 | 0x000B – 0x000C | Bytes per sector |
13 – 13 | 0x000D – 0x000D | Sectors per cluster |
14 – 15 | 0x000E – 0x000F | Reserved |
16 – 18 | 0x0010 – 0x0012 | Always 0 |
19 – 20 | 0x0013 – 0x0014 | Unused |
21 – 21 | 0x0015 – 0x0015 | Media descriptor |
22 – 23 | 0x0016 – 0x0017 | Always 0 |
24 – 25 | 0x0018 – 0x0019 | Sector per track |
26 – 27 | 0x001A – 0x001B | Number of heads |
28 – 31 | 0x001C – 0x001F | Hidden sectors |
32 – 35 | 0x0020 – 0x0023 | Unused |
36 – 39 | 0x0024 – 0x0027 | Unused |
40 – 47 | 0x0028 – 0x002F | Total secotrs |
48 – 55 | 0x0030 – 0x0037 | Logical cluster Number for the file $MFT |
56 – 63 | 0x0038 – 0x003F | Logical cluster Number for the file $MFTMirr |
64 – 67 | 0x0040 – 0x0043 | Clusters per file record segment |
68 – 71 | 0x0044 – 0x0047 | Clusters per index block |
72 – 79 | 0x0048 – 0x004F | Volume serial number |
80 – 83 | 0x0050 – 0x0053 | Checksum |
84 – 509 | 0x0054 – 0x01FD | Boot code and error message |
510 – 511 | 0x01FE – 0x01FF | Signature ("0x55AA") |
출처 : forensic-proof.com
빨간색 음영되있는 부분은 중요한 부분이다.
cluster란 말이 나오는데 클러스터는 파일 시스템이 파일을 저장하기 위해 할당할 수 있는 가장 작은 디스크 공간이다.
cluster의 크기는 VBR의 크기에 영향을 주는데
Cluster Size (Byte) | VBR Size (Sector) |
512 | 1 |
1K | 2 |
2K | 4 |
4K | 8 |
출처 : forensic-proof.com
실재 덤프 내용이다.
출처 : forensic-proof.com
추가적인 VBR영역도 있는데 이는 NTLDR(NT LOARDER)을 빠르게 로드하기 위함이다.
MBR VBR에 관하여 (0) | 2016.07.04 |
---|
들어가며
시스템은 파티션의 크기 정보, 파티션 위치정보를 MBR의 파티션 테이블에 저장한다.
이 파티션 테이블은 총 4개의 파티션 정보를 저장할 수 있다.
부팅할때 파일 시스템은 파티션 테이블에 저장된 파티션의 속성 위치, 크기정보를 통하여 파티션을 구분한다.
각 파티션은 파티션 종류에 따라 다르지만 일반적으로(FAT, NTFS) 파티션의 시작위치에 VBR(Volume Boot Record)가 생성된다.
MBR(Master Boot Record)
MBR은 모든 기억장치의 첫번째 섹터에 존재하며 크게 부트코드, 파티션테이블, 시그니처 3가지 영역으로 나눌 수 있다.
출처 : cappleblog.co.kr
다음은 HxD로 열어본 모습이다.
출처 : cappleblog.co.kr
부트 코드 영역은 총 446바이트로 구성된다.
이 영역은 파티션테이블로부터 부팅가능한 파티션을 찾아서 그 파티션의 부트 섹터를 호출해 준다.
파티션테이블 영역은 총 64바이트로 16바이트씩 4개의 엔트리를 가진다.
각 엔트리에는 파티션 부팅가능 여부, 파티션 시작위치, 총 섹터 개수, 파티션 유형 등 기본적인 정보를 저장한다. 시스템은 이 테이블을 바탕으로 파티션을 구분한다.
마지막으로 시그니쳐 영역은 해당 섹터가 문제가 없는 MBR 섹터인지 확인하기 위한 값으로써 55 AA라는 고정값을 가진다. 이는 MBR 뿐만 아니라 VBR에서도 해당된다.
VBR(Volume Boot Record)
볼륨의 첫번째 섹터를 의미하며 파티션이 나누어 지지 않은 저장장치에선 MBR대신 저장장치의 첫번째 섹터에 사용된다.
VBR의 첫번째 섹터에는 부트섹터가 위치한다.
여러 파일 시스템이 VBR헤더영역을 이용해 각각 설정값을 부여한 후 부팅 , 파티션 정보 저장 용도로 사용하고 있다.
참고: 포렌식 관점의 파티션 복구 기법에 관한 연구