DreamHack/CTF

(CTF 출제)DreamHack - broken-png

G_OM 2024. 5. 8. 10:35

 

 

이미지가 정사각형인데 반밖에 오지 않았다고 한다.

 

한번 살펴보자.

 

 

 

 

 

 

 

 

 

 

 

이건 뭐 누가 반으로 잘라놓은 거 같다.

 

 

 

 

 

 

 

 

 

 

 

 

먼저 png 구조를 살펴보기 위해서는 Hxd editor 가 필요하다.

 

https://mh-nexus.de/en/downloads.php? product=HxD20

 

Downloads | mh-nexus

Downloads I am looking for new translators, if you want to help, here is a list of unmaintained translations. Note: Starting with HxD 2.3, the portable edition is available as separate setup program, and can be run with minimal privileges (no admin rights

mh-nexus.de

 

 

 

 

 

 

 

 

 

 

 

 

 

에디터를 이용해서 png 구조를 나타낸 것이다.

 

png 구조에 대해서는...

 

 

 

 

 

 

 

https://ryanking13.github.io/2018/03/24/png-structure.html

 

PNG 파일 구조

 

ryanking13.github.io

 

이 블로그가 잘 정리되어 있는 거 같다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

구조를 살펴보면 검은색 라인은 file signature라고 해서 8바이트의 시그니처를 갖는다.

이 파일을 열었을 때 이 파일이 PNG 파일이라고 판단을 할 수 있게 해 준다.

 

그다음 파란색, 빨간색 라인을 보면 PNG의 청크(chunk)[구조를 나누는]는 IHDR에 해당된다.

 

IHDR 청크는 image Header의 약자이다.

PNG 파일의 가장 앞에 위치하는 청크로

PNG image 크기, 필터링 방식, 압축 방식을 알려준다.

 

맨 앞에 보면 width, Height 각각 4byte씩 있는데 값이 다르다.

 

힌트에는 정사각형이라고 했는데 각 변의 길이가 다르다는 건 말이 안 된다.

 

그러면 폭이 더 높으니 높이를 폭의 길이하고 같게 해 보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

폭과 높이를 같게 만든다면 이미지가 제대로 출력되는 것을 볼 수 있다.