Python Challenge 12의 url은 다음과 같다.
Python challenge 12 : http://www.pythonchallenge.com/pc/return/evil.html
구성
위와 같은 사진이 있다. 사진의 파일명은 evil1.jpg(응? 왜 1이지? 점 심나 가서 먹을 거 같아) 웹상에서 상호작용은 특별히 없는 것 같으니 주석을 확인해 보자
title이 dealing evil이다. 돌린다는 것에 이번문제를 해결할 key가 있는 거 같다.
해결 아이디어
사진이름에 이상함을 느끼자 evil1.jpg가 있다는 것은 evil2.jpg도 있다는 것이다. 아래는 evil2.jpg를 요청한 결과이다.
gfx로 다운로드하라고 한다. evil2.gfx를 요청하면 파일을 다운로드할 수 있다. gfx라는 확장자는 애니메이션 파일이지만 문제에서는 이를 표현하고자 한 것은 아닐 것이다. 파일을 hxd로 뜯자
잘 보면 헤더에 간격이 띄워진 상태로 JFIF 등의 문자열이 있는 것을 확인할 수 있다. evil1.jpg에서 5등분이 난 카드처럼 우리도 바이트를 5개로 나누어보자 아래는 구현 코드이다.
### 12.py
if __name__=="__main__" :
with open("evil2.gfx","rb") as img :
data = img.read()
for i in range(5) :
with open(str(i)+".dat","wb") as f:
f.write(data[0+i::5])
오호 잘 쪼개졌다. 헤더 확인 결과 각각의 폴더는 다음의 확장자를 가진다.
- 0.dat : jpg
- 1.dat : png
- 2.dat : gif
- 3.dat : png
- 4.dat : jpg
사진을 첨부하고 싶은데 알올라간다. 삭선 되어있는 4.jpg를 제외하면 글자는 disproportional이다. 찾았다.
Answer Url : http://www.pythonchallenge.com/pc/return/disproportional.html
참고사항이다. evilN.jpg를 계속 탐색하다 보면 evil4.jpg까지 도달한다. 이미지처럼 보이지 않아도 다운로드하여서 파일을 헥스로 보면 다음의 글이 써져있다.
그렇다. 바트가 나쁜놈이다. 기억하자
'Python > Python Challenge' 카테고리의 다른 글
[Python Challenge 14] 빙글빙글 (2) | 2021.05.21 |
---|---|
[Python Challenge 13] 자니??.... 그냥 전화해봤어... (0) | 2021.05.19 |
[Python Challenge 11] 홀짝하나만 맞춰보시져 (0) | 2021.05.19 |
[Python Challenge 10] 뚠뚠 (0) | 2021.05.19 |
[Python Challenge 9] 소?난다 (0) | 2021.05.19 |