Python/Python Challenge

[Python Challenge 8] 소난다

Python Challenge 8의 url은 다음과 같다.

Python challenge 8 : http://www.pythonchallenge.com/pc/def/integrity.html

 

working hard?

 

www.pythonchallenge.com


구성

귀여운 야 울고 있는 꿀벌이 있다. 글자는 다음과 같다.

 

사라진 링크는 어디에 있는가?

 

꿀벌의 테두리를 누르면 클릭할 수 있다. 페이지로 이동해 보자

자격증명을 물어보는 화면이 나온다. 유의미한 정보는 없으니, 꿀벌 페이지의 주석을 확인해 보자

가장 아래쪽의 주석에 un / pw가 있다(un은 username약어인가? 어느 동네가 저렇게 쓴다는 말인가)

꿀벌 테두리가 Clickable 한건 area 태그 coord로 그린거다. 문제 출제자의 정성에 경의를 표하며 해결 방법을 알아보자


해결 아이디어

우선 un / pw를 복구할 필요가 있어 보인다. BZh로 시작하는 헤더는 bzip2 파일들이다. 이를 이용해서 헥스로 변환 후 압축을 해제하면 될 듯했으나, 우리 으-썸한 파이선은 bz2라는 모듈을 지원한다. 아래를 참조하자

https://docs.python.org/ko/3/library/bz2.html

 

bz2 — bzip2 압축 지원 — Python 3.9.5 문서

bz2 — bzip2 압축 지원 소스 코드: Lib/bz2.py 이 모듈은 bzip2 압축 알고리즘을 사용하여 데이터 압축과 압축 해제를 위한 포괄적인 인터페이스를 제공합니다. bz2 모듈에는 다음이 포함됩니다: 이 모

docs.python.org

간단한 걸 보니까 모듈 소개 시간에 정리해놔야겠다. 아래는 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