반응형
출처) http://www.pythonchallenge.com/index.php
www.pythonchallenge.com/pc/return/disproportional.html
- 파이썬 챌린지 레벨13 문제!
- 전화기 사진과 하단에 "phone that evil"이라고 적혀있다.
- 사진 속 전화기에서 5번을 클릭할 수 있다.
- 상단에 XML이라고 적혀있고, 소스코드에 fault, error.... 가 있는 걸 봐서 에러가 났을 때 코드인것 같다.
- 구글에 검색해 보니 실패 응답 코드 예제로 비슷하게 나와 있다.
- 다른 힌트가 있을 수 있으니 페이지소스 코드를 확인해 보았다.
- 하단에 보면 "phone that <remote /> evil" 라고 적혀 있다.
- [그림1]에서 노란 글씨로 phone that evil이라고 적혀 있었는데 페이지 소스에는 중간에 remote가 들어있다.
- 구글에 html remote라고 검색해봐도 위와 같이 쓰는 코드는 없다.
- python에서 remote 모듈이 있는 건가 싶어 검색해보았다.
- 아까 html의 remote가 원격 프로시저 호출에 대한 튜토리얼인 것 같다.
- xmlrpc에서 클라이언트는 원격서버에서 메서드를 호출한다고 한다.
- 클라이언트는 html이고, 서버는 php인 것 같다.
- ServerProxy 인스턴스는 원격 XML-RPC 서버와의 통신을 관리하는 객체이다.
- ServerProxy.system.listMethods() 이 메서드는 문자열 리스트를 반환하는데, XML-RPC 서버가 지원하는 각 메서드마다 하나씩 제공된다.
- 출력 결과 'phone'이 호출해야 하는 메서드인 것 같다.
-
참고) docs.python.org/ko/3/library/xmlrpc.client.html
- ServerProxy.system.methodHelp(name) 이 메서드는 하나의 매개 변수를 취하는데, XML-RPC 서버에 의해 구현된 메서드의 이름이다. 해당 메서드의 사용법을 기술하는 설명서 문자열을 반환한다.
- ServerProxy.system.methodSignature(name) 이 메서드는 하나의 매개 변수를 취하는데, XML-RPC 서버에 의해 구현된 메서드의 이름이다. 첫 번째는 메서드의 반환형이고 나머지는 매개 변수이다.
- 'phone'메서드를 어떻게 사용하는 출력해보니 "Returns the phone of a person"이라고 나왔다.
- 사용자의 전화를 반환해라.....?
- 'phone'은 특정 이름을 string으로 받아서 string으로 반환해주는 프로시저이다.
- phone('특정이름')을 하는게 전화를 거는 방법인것 같다.
- [그림1] 문제에서 phone that evil이라고 나와있었다. 악마에게 전화를 거는 거니까 악마를 찾으면 된다.
- 바로 전에 푼 문제라 기억이 났다. 답은 LV12에 있었다.
- LV12에서 evil4.jpg를 HxD로 열어보니 "Bert is evil!"이라고 적혀있었다.
- 뒤에 go back만 있길래 LV12풀 때 신경을 안썼는데 이 사진이 LV13의 답인 것이다.
- 악마는 "Bert"이다.
- 답 : ITALY
- www.pythonchallenge.com/pc/return/italy.html 로 가면 다음레벨이 나온다.
-
처음에 ITALY라고 적어 SMALL letters가 나와 순간 당황했다...
from xmlrpc import client
server= 'http://www.pythonchallenge.com/pc/phonebook.php'
client = client.ServerProxy(server)
print(client.system.listMethods())
print(client.system.methodHelp('phone'))
print(client.system.methodSignature('phone'))
print(client.phone('Bert'))
반응형
'#WarGame > Python Challenge' 카테고리의 다른 글
Python Challenge # LV.15 (calendar) (0) | 2020.09.14 |
---|---|
Python Challenge # LV.14 (spiral) (0) | 2020.09.11 |
Python Challenge # LV.12 (5개의 파일) (0) | 2020.09.07 |
Python Challenge # LV.11 (even) (0) | 2020.09.05 |
Python Challenge # LV.10 (개미 수열) (1) | 2020.09.03 |