Security/Forensics
[Artifact] 이미지 포렌식 - png 구조
bonggang
2020. 5. 20. 16:04
png 포맷은 시그니처와 청크들로 이루어져있다.
Signature
오프셋 | 크기 | 내용 | 비고 |
0x00 | 8 | Signature | 89 50 4E 47 0D 0A 1A 0A |
Chunk
Chunk는 이미지 관련된 특정 정보들을 담고 있으며 IHDR, PLTE, IDAT, IEND가 있다.
- IHDR chunk: 이미지 헤더 정보
- PLTE chunk: 팔레트 테이블 정보
- IDAT chunk: 이미지 데이터 정보
- IEND chunk: 이미지 trailer 정보
경우에 따라 보조 Chunk로 tRNS, cHRM, qAMA, iCCP, sBIT, sRGB, iTXt, iEXt, zTXt, bKGD, hIST, pHYs, sPLT, tIME가 올 수 있다.
-> 주요 청크는 첫 글자가 대분자로, 보조 청크는 첫 글자를 소문자로 표기한다.
오프셋 | 크기 | 내용 | 비고 |
0x00 | 4 | 길이 | |
0x04 | 4 | 종류 | |
0x08 | 데이터 | ||
4 | CRC |
IHDR 청크(Image Header)
오프셋 | 크기 | 내용 | 비고 |
0x00 | 4 | 길이 | |
0x04 | 4 | 종류 | IHDR(49 48 44 52) |
0x08 | 4 | width | |
0x0C | 4 | height | |
0x0D | 1 | bit depth | |
0x0E | 1 | color type | (0:Grayscale, 2:Truecolor, 3:Indexed-color, 4:Grayscale with alpha, 6: Truecolor with alpha) |
0x0F | 1 | 압축 | |
0x10 | 1 | 필터 | |
0x11 | 1 | 인터레이스 | (0: no interlace, 1:adam7 interlace) |
0x12 | 4 | CRC |