Python Challenge 8의 url은 다음과 같다.
Python challenge 8 : http://www.pythonchallenge.com/pc/def/integrity.html
구성
귀여운 야 울고 있는 꿀벌이 있다. 글자는 다음과 같다.
사라진 링크는 어디에 있는가?
꿀벌의 테두리를 누르면 클릭할 수 있다. 페이지로 이동해 보자
자격증명을 물어보는 화면이 나온다. 유의미한 정보는 없으니, 꿀벌 페이지의 주석을 확인해 보자
가장 아래쪽의 주석에 un / pw가 있다(un은 username약어인가? 어느 동네가 저렇게 쓴다는 말인가)
꿀벌 테두리가 Clickable 한건 area 태그 coord로 그린거다. 문제 출제자의 정성에 경의를 표하며 해결 방법을 알아보자
해결 아이디어
우선 un / pw를 복구할 필요가 있어 보인다. BZh로 시작하는 헤더는 bzip2 파일들이다. 이를 이용해서 헥스로 변환 후 압축을 해제하면 될 듯했으나, 우리 으-썸한 파이선은 bz2라는 모듈을 지원한다. 아래를 참조하자
https://docs.python.org/ko/3/library/bz2.html
간단한 걸 보니까 모듈 소개 시간에 정리해놔야겠다. 아래는 bz2.decompress를 이용해서 un / pw를 압축 해제하는 코드이다.(바이트가 반환되어서 decode로 str 변환했다.)
import bz2
if __name__=="__main__" :
un = b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
pw = b'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'
un = bz2.decompress(un)
pw = bz2.decompress(pw)
print("un : ",un.decode())
print("pw : ",pw.decode())
출력 결과는 다음과 같다.
un : huge
pw : file
자격증명에 입력해보면 해결할 수 있다. 찾았다
Answer Un : huge
Answer pw : file
'Python > Python Challenge' 카테고리의 다른 글
[Python Challenge 10] 뚠뚠 (0) | 2021.05.19 |
---|---|
[Python Challenge 9] 소?난다 (0) | 2021.05.19 |
[Python Challenge 7] 그림분석하기 (0) | 2021.05.19 |
[Python Challenge 6] ZIP과 놀기 (0) | 2021.05.18 |
[Python Challenge 5] 삐끌 (0) | 2021.05.16 |