728x90
오늘은 PNG 파일의 구조에 대해 살펴보려고 한다.
먼저
PNG 파일의 헤더 시그니처(8byte)는 다음과 같다.
89 50 4E 47 0D 0A 1A 0A
이 이후에는 Chunk라는 그룹들로 나뉘어 구성된다.
청크 타입은 많지만
모든 PNG 파일에 포함되어야 하는 청크는 아래 세 가지가 있다.
IHDR chunk : 이미지 헤더 정보
IDAT chunk : 이미지 데이터 정보
IEND chunk : 파일의 끝
IHDR
먼저 IHDR 청크(13byte)는
이미지 헤더 정보를 나타내며, PNG 이미지의 크기, 필터링 방식, 압축 방식 등을 알려준다.
{
Length : 00 00 00 0D (13 byte),
Chunk Type : IHDR,
Chunk Data ( 13 byte ),
{
Width (4 byte),
Height (4 byte),
Bit depth (1 byte),
Color Type (1 byte),
Compression method (1 byte),
Filter method (1 byte),
Interlace method (1 byte),
}
CRC
}
IDAT
IDAT 청크는 실제로 이미지 데이터가 있는 부분으로
한 PNG 파일은 여러 개의 IDAT 청크를 가질 수 있다.
->이는 데이터를 적절한 사이즈로 나누어 전송하기 위한 것이다.
IDAT 청크는 이미지의 특정 부분을 나타내는 것이 아닌 전체 이미지를 한꺼번에 압축한 뒤
여러 개의 IDAT 청크에 나누는 방식이므로 모든 IDAT 청크가 있어야 이미지 디코딩을 할 수 있다.
IEND
IEND 청크는 이미지의 맨 뒤에 위치하여 파일의 끝을 나타낸다.
참고)
728x90
'Forensics' 카테고리의 다른 글
디지털 포렌식 (0) | 2021.02.02 |
---|---|
디지털 포렌식 도구 사용법 (0) | 2021.01.09 |
ftp, sftp, ssh , IEEE 802.11 프로토콜 통신규약 공부 (0) | 2020.11.23 |
[N0Named wargame] RE: xeh_desrev (0) | 2020.10.13 |
파일의 hex 값이 reverse 된 파일을 복구하는 방법 (0) | 2020.10.12 |
댓글