png 파일이 하나 주어지는데, 헤더가 손상된 것을 확인할 수 있다.
헤더를 정상적으로 수정 후 열어주면 다음과 같이 잘린 사진을 볼 수 있다.
이 문제는 png의 구조를 알아야 풀 수 있는 문제다.
idat -> IDAT 로 바꿔주면 해결된다.
HackCTF{c@n_y0u_$ee_m3?}
이 문제 해결에 필요한 간단한 PNG 구조 개념
PNG = 파일 시그니처(header, footer) + Chunk들의 집합
header, footer는 그냥 검색만 하면 나오고, 대충 개념은 알기 때문에 넘어간다.
그럼, Chunk란?
- 공통된 데이터를 갖고 있는 데이터들의 집합
- 중요 청크 : 첫 글자가 대문자(IHDR, IDAT, PLTE, IEND)
- IHDR, IDAT, IEND -> PNG 파일에 반드시 포함되어야 하는 청크
- 보조 청크 : 첫 글자가 소문자
- IHDR : PNG 파일의 기본 정보를 담고있는 청크. 언제나 13바이트
- IDAT : 실제로 데이터가 들어가는 부분. 하나의 PNG 파일은 여러 개의 IDAT 청크를 갖는다. 모든 IDAT 청크가 있어야만 이미지 디코딩이 정상적으로 된다.
- IEND : 이미지 파일의 끝을 표시하는 청크
'워게임 > hackCTF' 카테고리의 다른 글
[forensic] Let'S get it ! Boo*4 (0) | 2021.11.23 |
---|---|
[forensic] Terrorist (0) | 2021.11.23 |
[forensic] 나는 해귀다 (0) | 2021.11.23 |
[forensic] 세상에서 잊혀진 날 찾아줘! (0) | 2021.11.23 |
[forensic] So easy? (0) | 2021.11.23 |
댓글