본문 바로가기

Ext 포렌식

File System - Ext (11) 이번 글에서는 Ext 파일시스템의 파일이나 디렉토리의 확장 속성 데이터 구조체에 대해서 알아 볼 것이다. 확장 속성에는 3가지 구역이 존재한다. - 헤더 영역 - 이름 엔트리 영역 - 값 영역 헤더 영역 다음에 이름 엔트리 영역이 오는데 일반적으로 영역들은 붙어 있기 마련이지만, 값 영역은 나머지 두 영역과 다르게 블록 마지막에 존재 해 두 영역과 붙어 있지 않다. 더군다나 값 영역은 블록 마지막에서 블록 처음을 향하여 값이 점차 쌓인다. 값 영역에 있는 값들은 속성에 이름 엔트리와 대응되는 값들이지만, 이름 엔트리 순서와 값 순서에 따라 대응되는 것은 아니다. 일단 헤더 영역부터 알아보자. * 참고 : 현재 필자가 가지고 있는 샘플 이미지에는 확장 속성을 가진 디렉토리나 파일이 존재 하지 않아 오프셋 .. 더보기
File System - Ext (10) 계속해서 Ext 파일시스템의 데이터 구조체를 알아보자. [그룹 기술자 테이블] 그룹 기술자 테이블은 파일시스템 블록에 위치하는 그룹 기술자 그룹의 목록을 뜻하며, 슈퍼 블록 다음 블록에 위치 한다. 그룹 기술자 테이블의 엔트리는 각 블록 그룹의 정보를 가지고 있으며, 테이블의 크기는 32byte이다. [그림 1 - 그룹 기술자 테이블 오프셋] * 참고 : 파일시스템 블록의 크기가 4096byte 일때는 슈퍼 블록이 0에 위치하고, 그룹 기술자 테이블은 블록 1에 위치한다. 또 파일시스템 블록의 크기가 1024byte 일때는 슈퍼 블록이 1에 위치하고, 그룹 기술자 테이블은 블록 2에 위치한다. - 블록 비트맵의 시작 블록 주소 : 해당 오프셋의 값은 오프셋이 아니라 단순히 블록 번호에 불과하다. 위 이미.. 더보기
File System - Ext (9) 이번 글부터는 Ext 파일시스템의 데이터 구조체들을 알아 볼 것이다. [슈퍼 블록] 슈퍼 블록의 파일시스템에서 1024byte offset에 위치하고, 그 크기 또한 1024byte 이다. * 참고 : 크기가 너무 커 오프셋 별로 분석을 하지 않고 표로 대체 하였다. 아래는 슈퍼 블록의 오프셋 부분이다. [그림 1 - 슈퍼 블록 위치] 이제 슈퍼 블록의 오프셋 별 의미를 알아보자. [그림 2 - 슈퍼 블록 오프셋] - 블록 크기 : 이 값은 직접적인 값이 아닌 간접적인 값으로, 1024를 해당 오프셋의 값만 큼 왼쪽으로 쉬프트 연산하여 블록 크기를 구해야 한다. - 단편 크기 : 이 값 또한 블록 크기와 동일한 방법으로 구한다. - 시그니처 : 슈퍼 블록은 "0xEF53" 시그니처를 가지며, 슈퍼 블록의.. 더보기