Super Block |
Group Descriptor |
Block Bitmap |
Inode Bitmap |
Inode Table |
Directory/Data Block |
Super Block
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
s_inodes_count |
s_block_count |
s_r_blocks_count_lo |
s_free_blocks_count_lo | ||||||||||||
s_free_inodes_count |
s_first_data_block |
s_log_block_size |
s_log_cluster_size | ||||||||||||
s_blocks_per_group |
s_cluster_per_group |
s_inodes_per_group |
s_mtime | ||||||||||||
s_wtime |
s_mnt_count |
s_max_mnt_count |
s_magic |
s_state |
s_errors |
s_minor_rev_level | |||||||||
s_lastcheck |
s_checkinterval |
s_creator_os |
s_rev_level | ||||||||||||
s_def_resuid |
s_def_resgid |
s_first_ino |
s_inode_size |
s_block_group_nr |
s_feature_compat | ||||||||||
s_feature_incompat |
s_feature_ro_compat |
u_uuid[16] | |||||||||||||
u_uuid[16] |
s_volume_name[16] | ||||||||||||||
s_volume_name[16] |
s_last_mounted[64] | ||||||||||||||
s_last_mounted[64] | |||||||||||||||
s_last_mounted[64] | |||||||||||||||
s_last_mounted[64] | |||||||||||||||
s_last_mounted[64] |
s_algorithm_usage_bitmap |
s_p_b |
s_p_d_b |
s_reserved_gdt_blocks | |||||||||||
s_journal_uuid[16] | |||||||||||||||
s_journal_inum |
s_journal_dev |
s_last_orphan |
|
Name |
Offset |
길이(byte) |
설명 |
s_inodes_count |
0x00 |
4 |
파일 시스템에 있는 inode 갯수 |
s_blocks_count_lo |
0x04 |
4 |
파일 시스템에 있는 블록 갯수 |
s_r_block_count_lo |
0x08 |
4 |
파일 시스템 공간 전부를 사용하지 못하게 예약해놓은 블록 개수 (by super user ) |
s_free_blocks_count_lo |
0x0C |
4 |
할당되지 않은 블록 갯수 |
s_free_inodes_count |
0x10 |
4 |
할당되지 않은 inode 갯수 |
s_first_data_block |
0x14 |
4 |
블록그룹이 0이 시작되는 블록 |
s_log_block_size |
0x18 |
4 |
블록 크기(2^(10+s_log_block_size)) |
s_log_cluster_size |
0x1C |
4 |
단편 크기 (2 ^ s_log_cluster_size) |
s_blocks_per_group |
0x20 |
4 |
각 블록 그룹의 블록 갯수 |
s_clusters_per_group |
0x24 |
4 |
각 블록 그룹의 단편 갯수 |
s_inodes_per_group |
0x28 |
4 |
각 블록 그룹의 inode 갯수 |
s_mtime |
0x2C |
4 |
마지막으로 파일시스템을 마운트 한 시간 |
s_wtime |
0x30 |
4 |
마지막으로 파일시스템을 수정한 시간 |
s_mnt_count |
0x34 |
2 |
파일시스템을 마운트 한 횟수 |
s_max_mnt_count |
0x36 |
2 |
마운트 가능한 파일시스템 최대 갯수 |
s_magic |
0x38 |
2 |
시그니처 |
s_state |
0x3A |
2 |
파일 시스템 상태 |
s_errors |
0x3C |
2 |
오류 처리방법 |
s_minor_rev_level |
0x3E |
2 |
부 버전 |
s_lastcheck |
0x40 |
4 |
마지막 일관성 검사 한 시간 |
s_checkinterval |
0x44 |
4 |
일관성 검사 사이의 간격 |
s_creator_os |
0x48 |
4 |
파일 시스템 생성 OS |
s_rev_level |
0x4C |
4 |
주 버전 |
s_def_resuid |
0x50 |
2 |
예약 블록을 사용할 수 있는 UID |
s_def_resgid |
0x52 |
2 |
예약 블록을 사용할 수 있는 GID |
s_first_ino |
0x54 |
4 |
파일 시스템에서 예약되지 않은 첫번째 inode |
s_inode_size |
0x58 |
4 |
inode 크기 |
s_block_group_nr |
0x5A |
2 |
현재 슈퍼 블록에 있는 블록 그룹 |
s_feature_compat |
0x5C |
4 |
호환성 기능 플래그 |
s_feature_incompat |
0x60 |
4 |
호환하지 않은 기능 플래그 |
s_feature_ro_compat |
0x64 |
4 |
읽기 전용 속성 플래그 |
s_uuid |
0x68 |
16 |
파일시스템 ID |
s_volume_name |
0x78 |
16 |
볼륨 이름 |
s_last_mounted |
0x88 |
64 |
마지막 마운트 지점 경로 |
s_algorithm_usage_bitmap |
0xC8 |
4 |
비트맵에서 사용된 알고리즘 |
s_prealloc_blocks |
0xCC |
1 |
파일들을 위해 미리 할당 된 블록의 개수 |
s_prealloc_dir_blocks |
0xCD |
1 |
디렉토리를 위해 미리 할당된 블록의 개수 |
s_reserved_gdt_blocks |
0xCE |
2 |
사용 x |
s_journal_uuid |
0xD0 |
16 |
저널 id |
s_journal_inum |
0xE0 |
4 |
저널 inode |
s_journal_dev |
0xE4 |
4 |
저널 장치 |
s_last_orphan |
0xE8 |
4 |
고아 inode 목록의 헤드 |
슈퍼블록은 파일시스템의 주요 설정 정보들이 기록되어있는 영역.
블록의 크기에 관계 없이 항상 그룹의 첫번째에 위치함.
블록의 크기가 2KB 이건 4KB이건 1KB 만큼만 사용함.
부트섹터를 제외하고 1024byte 에 위치한다.
슈퍼 블록은 설정값만 포함하고 부트코드는 포함하고 있지 않다.
각 그룹마다 super block의 내용은 동일하며 만약 다르다면 파일 시스템이 손상된 것이다.
파일시스템이 Mount 될 때 커널은 그룹 0에 있는 super block을 읽는다.
모든 그룹에 super block가 있지만 0번 그룹에 있는 super block만 사용되며 나머지는 백업으로 저장되어 손상될시 사용된다.
주요 저장 내용
- 매직 넘버 : super block의 id "0xEF53"
- 블록크기(1KB, 2KB, 4KB)
- 총 블록의 개수
- 블록 그룹별 블록 갯수
- 예약 블록 수
- inode 전체 갯수
- 블록 그룹 별 inode 개수
- 볼륨 이름
- 마지막 수정 시간
- 마지막 마운트 시간
- 마지막 마운트 경로
- 무결성 식별 실행 여부 값
inode와 블록들의 전체 개수에 대한 데이터를 기록하기도 하는데 이것의 이유는 inode와 블록들을 할당 할 때 참고하기 위해서이다.
super 블록에는 위에서 설명한 호환기능 말고도 sparse 슈퍼 블록기능이 있다.
sparse 슈퍼 블록
슈퍼블록과 그룹기술자 테이블의 복사본을 일부 블록그룹에 포함되도록함.
파일의 시작위치를 판별하는데 어려움
* 슈퍼블록 백업본 시그니쳐 : "0xEF53"
'Kitri_NCS3기 보안과정 > 디지털포렌식' 카테고리의 다른 글
SQLite Database (0) | 2017.08.01 |
---|---|
Ext File System -1- (0) | 2017.07.04 |
170626 윈도우 포렌식 - 레지스트리 (0) | 2017.06.26 |
170621 NTFS - MFT Entry 속성의 종류별 분석 (0) | 2017.06.21 |
170620 NTFS의 구조 (0) | 2017.06.20 |