파일 시그니처 File Signature
- 헤더 시그니처 / 푸터 시그니처
문서에 따라 시그니처를 매직 넘버라고 사용하는 경우도 있다.
파일 카빙(File Carving) 기법
: 메타데이터보다 파일 자체의 바이너리 데이터를 이용해 디스크의 비할당 영역에서 파일을 복구하는 방식
- 시그니처 기반 카빙 : 각 파일의 포맷 별로 존재하는 파일 시그니처를 이용하는 방식
PNG
헤더 시그니처 : 89 50 4E 47 OD OA 1A OA
푸터 시그니처 : 49 45 4E 44 AE 42 60 82
PNG 파일구조는 파일 시그니처와 다양한 청크(공통된 데이터를 가지고 있는 데이터들의 집합)들의 집합으로 이루어져 있다.
주요 청크 : IHDR , IDAT, IEND
<청크 구조>
{
Length (4 bytes), //청크 데이터의 길이
Chunk Type (4 bytes), //청크 타입(아스키 코드)
Chunk Data (Length bytes) //청크 데이터 - 실제 데이터이며, 가변길이
CRC (4 bytes) //순환중복검사의 약자. 데이터의 오류가 있는지 확인
}
//출처: https://mineeeee.tistory.com/entry/PNG-파일구조 [Push:티스토리]
IHDR
: PNG 파일의 기본정보를 담고 있는 청크 (메타데이터 저장)
- 데이터 길이는 언제나 13 byte!!!
- 가로 , 세로(각각 4바이트)
- 비트 깊이(1 바이트) : 한 픽셀이 차지하는 비트의 양 1,2,4,8,16 가능
- 색 타입(1 바이트) : 색 유형을 숫자로 나타냄
- 0: 그레이스케일 (비트 깊이: 1, 2, 4, 8, 16)
- 2: RGB (비트 깊이: 8, 16)
- 3: 색상 팔레트 (비트 깊이: 1, 2, 4, 8) → PLTE 청크 필수
- 4: 그레이스케일 + 알파 (비트 깊이: 8, 16)
- 6: RGBA (비트 깊이: 8, 16)
- 압축 메소드
항상 0 Deflate 사용
- 필터링 메소드
항상 0 PNG 필터링 사용
- 인터레이스 메소드
0(비인터레이스) 1(Adam7 인터레이스)
PLTE
: 팔레트 색상을 정의(색상 타입 3에서 필수)
- IDAT 청크 전에 존재해야 함
- 3바이트(RGB) 단위의 색상목록 (최대 256)
IDAT
: 압축된 이미지 데이터를 포함
- 여러 개의 IDAT 청크 연속 가능
- 압축 방식 Deflate (RFC1951)
IEND
: 파일의 끝 표시
- 항상 마지막 청크
- 데이터 없음 (길이 : 0바이트)
- 정상적으로 png파일이 종료되었음을 표시
CRC (Cyclic Redundancy Check)
- 각 청크의 끝 CRC-32(4바이트)
- CRC 는 청크의 타입 및 데이터 필드에 대해 계산됨
- 오류 검출을 위해 사용됨
JPG
확장자 변경 시에도 파일 시그니처는 변하지 않는다
'Digital Forensics > Window Forensics' 카테고리의 다른 글
Windows Artifacts (0) | 2025.05.22 |
---|---|
FAT / NTFS 파일시스템 (0) | 2025.05.22 |
Window 웹 브라우저 아티팩트 (0) | 2025.04.20 |
웹 로그 분석 실습 환경 (0) | 2025.04.19 |
[Windows Forensics] 이벤트 로그 (0) | 2025.04.19 |