SKS!_2024 하계 방학 STUDY

[SKS!/Forensics] 1주차 | Monday 문제 2 Dreamhack: broken-png

Vkuoca 2024. 7. 19. 15:37

Dreamhack: broken-png

 

 

문제 파일을 다운 받아 확인해보면, 깨진 이미지 파일이 존재한다. HxD64 툴을 이용해 이미지 너비와 높이를 수정해 문제를 해결해보겠다. 

 

간단하게 문제를 해결하기 위해 필요한 개념 파일 구조를 정리해보면,

{
 Length : 00 00 00 0D (4 bytes),
 Chunk Type: IHDR(4 bytes),
 Chunk Data (13 bytes (모든 IHDR은 Chunk Data가 13바이트이다.)),
 {
  Width (4 bytes),
  Height (4 bytes),
  Bit depth (1 byte),
  Color Type (1 byte),
  Compression method (1 byte),
  Filter method (1 byte),
  Interlace method (1 byte)
  }
 CRC (4 bytes)
}

 

IHDR청크는

PNG파일의 기본 정보를 담고있는 청크이며 데이터 길이는 언제나 13 byte이다!

또한 이 청크는 시그니처 바로 뒤에 붙는다!

 

여기엔 가로, 세로, 비트 깊이, 색 타입, 압축 메소드, 필터링 메소드, 인터레이스 메소드에 대한 정보가 담겨있다.

  • Width와 Height는 이미지의 가로, 세로를 말하며 각각 4bytes씩 차지한다
  • Bit Depth(1byte)는 한 픽셀이 차지하는 비트의 양을 의미한다
  • Color Type(1byte)는 색의 유형을 숫자로 나타낸 것이다.

 

현재 위 이미지는 너비: 0x00000200, 높이: 0x00000100 이다. 문제에서 알 수 있듯이 원래 크기가 정사각형이므로 너비와 높이를 같게 맞춰 수정하겠다. 

 

 

 

저장된 파일을 다시 열어보면 플래그를 확인할 수 있다.