pythonchallenge level12

2009. 10. 22. 19:03
http://www.pythonchallenge.com/pc/return/evil.html

역시나 그렇듯이  그림파일 하나 달랑 있는 페이지가 반긴다. 그림은 5 뭉텡이로 카드들을 나누고
있는 모습이다. 그림을 받아보니 파일명이 evil1.jpg 이다. 이런적이 없는데 .. 숫자를 하나 늘려
evil2.jpg로 입력해 보았다. not jpg- _.gfx 라는 페이지가 뜨길래 evil2.gfx를 입력했더니
파일이 받아진다.

gfx가 무엇인가 하고 구글링을 해봤더니 gfx 모듈이 나온다. 어찌저찌해서 설치하고 사용해봤지만
정상적으로 파일이 열리지 않았다. 이건 아닌듯 싶어 포럼에 찾아보았더니 헥사값 어쩌고 하길래
헥사값을 확인해보았다. 처음에 보이는 부분이 아무래도 수상하다. gif, jpg, png 등의 매직
바이트가 뒤 섞인거 같다. 오호라! 5바이트씩 띄어보니깐 매직바이트가 이어진다. 첫번째 그림에
나온대로 5뭉탱이가 gfx파일 하나안에 있는 것이다.

파일을 열어서 1바이트씩 뽑아내서 5개의 그림을 완성해 합쳐보니
dis pro por tional ity

사용한 코드가 정말 세살짜리 수준이라 올리지 말까도 생각해봤찌만 어쩌겠냐 이게 내 수준인걸.
조만간 깔끔하고 이쁘게 손대지 않을까 싶다.

import os

n = os.path.getsize('evil2.gfx')
f = open('evil2.gfx','rb')
tmp1 = 'tmp1'
tmp2 = 'tmp2'
tmp3 = 'tmp3'
tmp4 = 'tmp4'
tmp5 = 'tmp5'

FILE1 = open(tmp1,'wb')
FILE2 = open(tmp2,'wb')
FILE3 = open(tmp3,'wb')
FILE4 = open(tmp4,'wb')
FILE5 = open(tmp5,'wb')

i = 0
while i < n/5:
    a = f.read(1)
    FILE1.write(a)
    a = f.read(1)
    FILE2.write(a)
    a = f.read(1)
    FILE3.write(a)
    a = f.read(1)    
    FILE4.write(a)
    a = f.read(1)
    FILE5.write(a)
    i += 1

f.close()
FILE1.close()
FILE2.close()
FILE3.close()
FILE4.close()
FILE5.close()



http://www.pythonchallenge.com/pc/return/disproportional.html

'War game > pythonchallenge' 카테고리의 다른 글

pythonchallenge level 17  (1) 2010.10.27
pythonchallenge level16  (0) 2009.12.04
pythonchallenge level 15  (0) 2009.12.03
pythonchallenge level14  (0) 2009.11.17
pythonchallenge level13  (0) 2009.10.22
pythonchallenge level11  (0) 2009.10.22
pythonchallenge level10  (0) 2009.10.20
pythonchallenge level9  (0) 2009.10.16
pythonchallenge level8  (0) 2009.10.16
pythonchallenge level7  (0) 2009.10.16

badcob War game/pythonchallenge