Python/Python Challenge

[Python Challenge 29] Shut up Mr.Drake

Python Challenge 29의 Url은 다음과 같다

Python challenge 29 : http://www.pythonchallenge.com/pc/ring/guido.html


구성

문제 페이지에 들어가면 귀여운 안경 쓴 물병이 우리를 반긴다. 반갑다고 인사한 후 주석을 보도록 하자.

주석의 특별한 점이라면 빈줄이 어마어마하게 많다는 점이다. 

 


해결 아이디어

빈줄이 많고 공백으로 이루어진 암호화라...  CTF를 많이 접한 사람이라면 당연히 snow코드를 생각했겠지만, 아쉽게도 이번 문제는 오히려 더 간단하다. 공백으로 이루어진 줄들이 [공백]*+\n으로 이루어져 있기 때문에 공백들의 길이를 chr화 시키면 bz2 문자열이 나온다. decompress 하면 해결이다. 일단 저장하고

코드는 다음과 같다.

### 28.py

import bz2

if __name__=="__main__" :
    with open("guido.html","r") as f:
        html = f.read().split("\n")

        cand = list()

        for l in html :
            if(l.strip() == "") :
                cand.append(len(l))

        print(bz2.decompress(bytes(cand)))

깔끔. 어째 갈수록 문제들이 쉬워진다는 느낌이 든다.

출력은 다음과 같다.

b"Isn't it clear? I am yankeedoodle!"

Answer Url : http://www.pythonchallenge.com/pc/ring/yankeedoodle.html