쉬는시간/xcz.kr

[xcz.kr] PROB1 문제풀이

happy-nut 2015. 10. 29. 21:56

1번 문제의 Title은 「End Of Image」입니다.

글자를 하나씩 잘라 이어붙힌 것 같은 이미지가 한 장 있습니다.

일단 마우스 우클릭하여 이미지를 다운받으면 "whysoserious.png"라는 사진이 보입니다.

HxD를 이용해 열어보면 다음과 같습니다.


PNG확장자를 가진 이미지 파일이기 때문에, 파일 헤더가 0x89 0x50 0x4E 0x47로 시작합니다. 

PNG파일은 재미있는 특징을 가지고 있는데, 바로 이미지 파일의 끝 부분에는 "IEND"라는 문자열이 들어간다는 점입니다. 

아무 PNG 파일이나 생성하여 뜯어보면 다음과 같이 그 사실을 확인할 수 있습니다.


다시 문제의 파일을 살펴보면, whysoserious.png 이미지 파일의 끝부분은 IEND로 끝나지 않는다는 걸 확인할 수 있습니다.

위 이미지에서 알 수 있듯이 문제의 파일은 0xFF 0xD9로 끝나는데, 이는 jpg확장자를 가진 이미지 파일과 관련된 Hex값 입니다.

jpg 파일은 일반적으로 0xFF 0xD8로 시작하여 0xFF 0xD9로 끝납니다.

따라서 문제의 파일은 jpg파일과 png파일을 합쳐놓은 파일이라고 볼 수 있습니다. 

파일 끼리 합쳐진 부분은 IEND문자열을 검색해 보면 금방 찾을 수 있습니다.


바로 뒷부분에 0xFF 0xD8 도 보입니다. 이 부분부터 0xFF 0xD9까지 긁어 모아 따로 파일로 저장하면 (이를 필요한 부분만 깎아 낸다고 해서 카빙Carving이라고 합니다) 키 파일을 얻을 수 있습니다.


답 : JOg-dragonKER




'쉬는시간 > xcz.kr' 카테고리의 다른 글

[xcz.kr] PROB12 문제풀이  (0) 2015.11.01
[xcz.kr] PROB17 문제풀이  (0) 2015.11.01
[xcz.kr] PROB9 문제풀이  (0) 2015.10.31
[xcz.kr] PROB32 문제풀이  (0) 2015.10.30
[xcz.kr] PROB8 문제풀이  (0) 2015.10.30