[드림핵 Misc] LEVEL1 워게임 broken-png 문제풀이
https://dreamhack.io/wargame/challenges/104
문제 파일을 다운로드 받으니 이런 png 형식의 사진 하나가 있다
문제에서 얘기한대로 정사각형 모양이여야 하는데 짤려진 사진이 있다
깨진 이미지를 복구하려면 ..
댓글에서 힌트를 얻어 HxD 프로그램을 이용해 이미지 파일의 hex값을 살펴보려고 한다
전에 워게임을 처음 접하면서 배웠던 개념들이 있다
PNG 파일 구조 이다
파일 형식 마다 다르며 정해져 있는 값들인데
PNG Header Signature (젤 처음)
89 50 4E 47 0D 0A 1A 0A(8 Byte)
PNG Footer Signature (젤 뒤에)
49 45 4E 44 AE 42 60 82(8 Byte)
있는 것이 보편적이다
파일 시그니처를 이용해서 파일 포맷 분석, 악성코드 분석, 파일 복구 등 여려 분야에서 사용될 수 있다
https://mineeeee.tistory.com/entry/PNG-%ED%8C%8C%EC%9D%BC%EA%B5%AC%EC%A1%B0
젤 처음과 젤 뒷 줄을 확인하니 일단 시그니처는 올바르게 되어있는데 ..
휴 모르겠어 !!! 참고해서 풀어보겠습니다
https://lemon-soju.tistory.com/17
이미지 형식은 맞으니까 이제 이미지의 폭과 높이를 확인했어야했다
https://ryanking13.github.io/2018/03/24/png-structure.html
PNG 파일 구조
ryanking13.github.io
이 글도 참고하였는데 공부하는데 도움이 될듯하다
알게된 방법으로 읽게되면 이 부분이 폭과 높이를 의미하는 부분이다
8바이트로 표현되어 있지만 폭보다 높이가 작다고 해석할 수 있다
높이도 똑같이 01 -> 02 로 수정해준다면 문제에서 말한대로 정사각형의 사진으로 복구할 수 있을것이다
01 부분을 선택해서 지우는 버튼을 누르자 이런 안내창이 나오고 수락을 하니 01 부분이 사라져서 새로 입력하면 뒤에 숫자 위에 덧쓰여진다 그래서 전체적으로 코드가 잘못되는 일이 발생 ..... 원래 이미지 파일이 있던 곳으로 가보니 저장된 이미지가 손상되어 열수없게 되었다
다시 수정할 방법을 여러가지 시도해봤는데 수정할 부분을 다른 곳에 쓴 다음(나는 복사해서 ctrl+f 검색창에서 붙여넣기 후 수정했다) 복사를 하고 수정할 부분을 드래그한 뒤 오른쪽 버튼을 누르면 [붙여넣기 삽입] 버튼이 활성화 되는 것을 확인했다 !
삽입하면 이렇게 잘 바뀐다
저장(ctrl+s) 후 원래 이미지 파일이 있던 곳으로 가면
기존 파일이 올바르게 복구된 파일로 바껴있다
정사각형 모양으로 바뀌어서 flag를 찾을 수 있다
DH{image_height_property}
기초적인 문제이긴하나 파일에 대한 시그니처값과 hex값의 구조를 모르면 못푸는 문제이다
이 기회에 png 형식에 대한 지식을 익힐 수 있었으면
먼저 시그니처 값이 올바른지 확인을 한 뒤 여기서는 크기를 수정해야 하기 때문에 크기 hex 값을 살펴본것이다
그리고 hex 에디터 사용법을 몰라 헤맸다 기본적인 수정법은 알고 있어야한다 !