이번 포스트에서는 Python Challenge의 Level 23 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
소 사진이 출력되어 있다. 개발자 도구를 확인하면 다음과 같은 문장들을 볼 수 있다.
- TODO : 사과를 구해야 할 일이 있었나요? 지금이 바로 그 사람에게 사과를 할 좋은 시간이빈다. 이 레벨에서 할일이 딱히 없더라도 그사람에게 좋은 매너를 보여주세요.
- "this"는 문서화되지 않는 모듈이다.
- 'va gur snpr bs jung?'
"this"라는 파이썬의 모듈을 확인하고, 세 번째 문장을 해석하면 될 것으로 보인다.
## 문제 풀이 :
우선 파이썬의 "this" 모듈을 확인해보겠다.
### 실행 결과 :
this는 파이썬의 특수 모듈이다. 또한 해당 모듈은 this.s의 내부에 저장되어 있다.
여기서 세 번째 문장이랑 비교해서 정답을 찾을 수 있지만 해당 문자열을 해독하면서 찾아보겠다. this 모듈은 또 this.d라는 해독용 딕셔너리가 존재한다.
이어서 세 번째 암호문을 해독해보겠다. 우선 해당 암호문은 rot-13이라는 암호기법에 의해 암호화된 것을 알 수 있다. 즉, 알파벳이 13칸 씩 밀린다는 것이다.(A->N, ...)
파이썬의 통해 해당 암호문을 해독해보겠다.
### 공격 코드 :
import this
e = "va gur snpr bs jung"
m = "".join([this.d.get(p, p) for p in e])
print(m)
### 실행 결과 :
"in the face of what"라는 문구가 출력되었다. 해당 문구를 this 모듈의 "in the face of ambiguity"인 것을 알 수 있다. 즉, 정답은 "ambiguity"이다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/hex/ambiguity.html
### 실행 결과 :
Level 24로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 24) (0) | 2022.09.24 |
---|---|
Python Challenge (Level 22) (0) | 2022.09.21 |
Python Challenge (Level 21) (1) | 2022.09.20 |
Python Challenge (Level 20) (1) | 2022.09.19 |
Python Challenge (Level 19) (0) | 2022.09.18 |