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
'Python > Python Challenge' 카테고리의 다른 글
[Python Challenge 30] 통신이상 오류있는가? (18) | 2021.07.06 |
---|---|
[Python Challenge 28] 륑륑륑 (2) | 2021.06.29 |
[Python Challenge 27] 지퍼올리세요 (2) | 2021.06.26 |
[Python Challenge 26] 과거의 행실을 돌아보세요 (0) | 2021.06.06 |
[Python Challenge 25] 퍼즐맞추기 (0) | 2021.06.06 |