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 이다. 문제에서 알 수 있듯이 원래 크기가 정사각형이므로 너비와 높이를 같게 맞춰 수정하겠다.
저장된 파일을 다시 열어보면 플래그를 확인할 수 있다.