본문 바로가기

포렌식

File System - HFS+ (1) 이번 글 부터는 Mac OS X에서 사용하는 파일시스템 HFS+에 대해서 이야기 해 볼 것이다. 일단 이번 글에서는 HFS+가 무엇인지, 기본적인 레이아웃은 어떻게 구성되어있는지 알아 볼 것이다. [HFS+ ?] HFS+는 애플이 개발한 파일시스템으로 Mac OS X에서 기본으로 사용하는 파일시스템이다. HFS+ 이전에는 HFS라는 계층적 파일시스템이 있었는데 이 파일시스템을 조금 더 개선한 파일시스템이 HFS+ 이다. HFS+ 는 저널링을 지원하는 HFSJ 볼륨과 파일의 이름에서 대소문자를 구분하도록 만들어진 HFX 볼륨등으로 나누어진다. * 참고 : HFS+ 는 아이팟 플레이어에도 사용 된다. HFS와 HFS+의 제일 큰 차이점은 Allocation Mapping Table의 크기가 HFS+ 에서 커.. 더보기
Honeynet Project Challenge 3 풀이 보고서 드디어 길고 긴 풀이가 끝났네요. 예전에 한번 분석하다가 모르는 부분이 많아 실패 했던 적이 있었는데 다시 공부해서 이번에는 성공 했습니다 ^^ 그런데 왜 doc 파일은 pdf로 출력하면 이렇게 되는건지 참.. ㅠㅠ 아 참고로 메모리 분석에 관한 문제였습니다. 더보기
File System - ReFS (2) 계속해서 ReFS를 알아보자. 이번 글에서는 ReFS의 주요 설계 개념과 특징에 대해서 알아 볼 것이다. [코드 재사용] ReFS는 NTFS에서 사용하던 파일시스템 API등을 그대로 다시 재사용 하여 NTFS와의 호환성을 유지하였는데, 코드 재사용에서 해당 코드들을 사용하는 엔진은 이번에 새롭게 개발 된 엔진으로 ReFS의 주요 혁신 기술들이 포함되어 있어 ReFS에서 지원하는 주요 혁신 기술과 NTFS와의 호환성 두가지 모두를 해결 하였다. [확장이 용이하고 신뢰성 있는 온디스크 엔진] ReFS는 온디스크 엔진 위에서 디렉토리나 파일등을 구현하는데 저장소 엔진은 구현에 B+tree 알고리즘을 사용한다. B+tree는 다른 tree 알고리즘에 포함될 수도 있어 확장성이 용이하고 단일 구조에서는 시스템이 .. 더보기
File System - Ext4 (5) 이번 글에서는 Extents tree에 대해서 알아 볼 것이다. Extents tree는 Ext4 파일시스템에서 새로 생긴 기능으로 이전 버전들의 블록 맵을 대체하는 기능이다. 제일 중요한 요점은 블록 할당을 연속으로 하려는 것이다. Extents tree에는 다른 tree들처럼 인덱스 노드와 리프노드가 존재하고 공통적인 헤더(12byte)가 존재한다. [그림 1 - 헤더 오프셋] 만약 헤더에서 인덱스 노드로 정의되면 해당 노드는 아래와 같은 오프셋 구조를 가지게 된다. [그림 2 - 인덱스 노드 오프셋] 또 헤더에서 리프노드로 정의되면 해당 노드는 아래와 같은 오프셋 구조를 가지게 된다. [그림 3 - 리프 노드 오프셋] 아래는 Extents Tree의 전체적인 흐름을 가식화 한 것이다. [그림 4 -.. 더보기
File System - Ext4 (4) 이번 글에서는 파일이나 디렉토리의 메타데이터를 저장하고 있는 inode 데이터 구조체에 대해 알아 볼 것이다. Ext4 파일시스템 이전 버전들은 inode의 표준 크기가 128byte 이었는데 Ext4 파일시스템에서는 256byte로 늘어났다. 알고 있듯이 inode는 inode 테이블에 있고 inode 테이블 위치는 그룹 기술자에 정의되어 있다. 또 그룹 별 inode 수는 슈퍼 블록에 정의되어 있다. 아래는 Ext4 파일시스템 inode 오프셋 구조이다. [그림 1 - inode 오프셋] - 모드 타입 : inode가 할당 된 파일이나 디렉토리의 타입과 권한을 나타내는 필드이며, Ext4 파일시스템 이전 버전들과 동일하다. - 플래그 : inode의 플래그를 나타내는 필드로 아래와 같은 플래그들이 설.. 더보기