0x.Wargame/Python Challenge
-
0x10.Python Challenge 100x.Wargame/Python Challenge 2017. 7. 31. 19:35
0x10.Python Challenge 10 문제 주소 : http://www.pythonchallenge.com/pc/return/bull.html 그동안 너무 공부를 소홀히했다. 마음을 다 잡을겸 머리가 제 정신이 아니긴 하지만 파이썬 챌린지를 오랜만에 풀어보도록 하겠다. 소를 클릭해보면 아래와 같이 a 리스트가 보인다. 보니 규칙이 있다. 잘보면 2번째 항목은 11로 첫 번째 항목이 1에서 1이 1개임을 나타낸다는 것을 추측할 수 있다. 21을 보면 확실해지는데, 11에대해서 1이 2개임을 21로 표현했다는 것이다. (이것은 베르나르 베르베르 소설에 나오는 개미 수열이라는 것은 상식으로 알 수 있다.) 문제의 의도가 30번째 항목의 길이를 알아내는 것이라 아래와 같이 코드를 작성해보았다. try와 ..
-
0x09.Python Challenge 90x.Wargame/Python Challenge 2017. 7. 12. 10:29
0x09.Python Challenge 9 문제 주소 : http://www.pythonchallenge.com/pc/return/good.html 오랜만에 9번문제를 풀어본다. HTML의 제목부터가 Connect the dots이다. 그림에 보이는 점들을 이어라는 건가 싶다. 역시나 소스코드에 무엇인가가 있을 것이다. first와 second라는 주석이 있다. 이 주석을 잘 살펴보면 first의 경우 146, 399, 163, 403, 170, 393과 같이 홀수와 짝수번째의 숫자가 서로 비슷하다는 걸 알 수 있다. 그리하여 아마 (x, y) (x, y)와 같이 묶어주면 될 것같다. second도 거의 비슷하기에 (x, y) 형태로 묶어주도록 하겠다. 이번에 사용한 방법은 람다함수식이다. https:/..
-
0x08.Python Challenge 80x.Wargame/Python Challenge 2017. 7. 3. 17:49
0x08.Python Challenge 8 문제 주소 : http://www.pythonchallenge.com/pc/def/integrity.html 8번 8번 8번 8번을 풀어보자. 소스를 보면 좌표가 찍혀있고, 주석처리된 부분에 패스워드와 아이디가 있는 것을 알 수 있다. 좌표는 아래와 같이 벌을 클릭하면 나온다. 예전에 html을 공부할 때 썼던 imagemap과 같은 방식이다. 벌을 클릭하면 위와 같이 사용자 이름과 암호를 요구한다. 주석처리된 부분이 핵심이라는 것을 알 수 있다. 주석을 자세히 보면 첫부분이 똑같다. bz로 시작하는데 검색을 해보면 bz라는 라이브러리가 존재하고 compress와 decompress를 통해 바이트 파일의 인코딩을 할 수 있다는 사실을 알 수 있다. 원하는 아이디..
-
0x07.Python Challenge 70x.Wargame/Python Challenge 2017. 6. 29. 12:33
0x07.Python Challenge 7 문제 주소 : http://www.pythonchallenge.com/pc/def/oxygen.html 주소에 HOCKEY를 입력하면 it's in the air. look at the letters. 라는 문구가 뜬다. 그래서 그 전 문제의 HOCKEY를 자세히 보면 OXYGEN이라는 단어를 찾을 수 있다. 소스코드상에 힌트는 없다. 그런데 그림이 깔끔하지가 않고 중간부분이 픽셀로 표현된 것이 보인다. http://www.pythonware.com/products/pil/ 그림 분석을 위해서 외부 라이브러리인 PIL(이미지 라이브러리)를 사용해보았다.여기서 중요한 것은 PIL같은 경우 파이썬 3.x 버전을 아직 지원하지 않아서 2.x 버전을 사용해야 했다. 7..
-
0x06.Python Challenge 60x.Wargame/Python Challenge 2017. 6. 26. 11:13
0x06.Python Challenge 6 문제 주소 : http://www.pythonchallenge.com/pc/def/channel.html 6번 문제를 풀어볼 시간이다. 기부에 대한 말이 나오는데 이건 논외의 문제이니 소스코드에 있는 zip파일을 다운받자. zipfile내부에는 아주 많은 파일이 있고 저번에 나왔던 문제처럼 Next Nothing is 땡떙과 같은 형태를 띄고 있다. readme.txt를 살펴보면 시작을 90052에서 해라고 해서 저번 문제와 같이 숫자로 next를 찾아보았더니 collect comments라는 문장이 나왔다. 이 문제의 핵심은 zipfile안에 숨겨져 있는 comment들을 찾아내는 것이다. zipfile을 사용해서 channel.zip을 열어오고 while문을..
-
0x05.Python Challenge 50x.Wargame/Python Challenge 2017. 6. 8. 14:49
0x05.Python Challenge 5 문제 주소 : http://www.pythonchallenge.com/pc/def/peak.html 5번째 문제를 풀어보도록 하자. 다짜고짜 발음해봐란다. peak hill -> pickle이 된다. (이건 책에서 본 함수라서 금방 알아차릴 수 있었다 ㅋ) 먼저 pickle 함수에 대해 설명하자면 피클함수는 다음과 같이 사용할 수 있다. pickle.load(load_file) pickle.dump(save_file) pickle 함수는 파이썬 객체를 파일로 쓸 수있고 다시 쉽게 읽을 수 있는 것으로 변환해주는데 사용되는데, 주로 게임 개발에서 플레이어의 진행 정보를 저장할 때 활용된다. 소스코드에 명시되어 있는 banner.p라는 첨부파일의 내용물을 확인해보면..
-
0x04.Python Challenge 40x.Wargame/Python Challenge 2017. 6. 7. 20:35
0x04.Python Challenge 4 문제 주소 : http://www.pythonchallenge.com/pc/def/linkedlist.php 벌써 4번째 문제에 도전하게 되었다. 이번에는 어떨까나. 이번에는 힌트도 없는 것 같다. 역시 소스코드를 뒤적여본다. 소스코드를 보면 urllib를 사용하고 400번 정도가 적당하다고 하는걸로 보아 for문을 돌려서 푸는 문제인 듯하다. 또한 img src가 있는데 문제의 그림을 누르면 다음과 같은 화면이 뜬다. 바로 소스코드에서 뜻하는 NOTHINGS가 5자리 숫자를 뜻하는 것 같다. 그리고 이 나띵은 소스코드의 주소 마지막 부분의 숫자를 뜻했다. 이제 문제 풀이는 다음과 같을 것이다. 첫 번째로 소스코드의 문장을 읽어온다. 다음은 소스코드의 문장에서 ..
-
0x03.Python Challenge 30x.Wargame/Python Challenge 2017. 6. 1. 22:02
0x03.Python Challenge 3 문제 주소 : http://www.pythonchallenge.com/pc/def/equality.html 전역도 했고, 6월도 왔으니 3번 문제를 풀어보자 ??! 문제를 읽어보니, 소문자의 좌우에 큰덩치가 셋 씩 있단다. 머 해석해보면 소문자를 두고 양 옆에 대문자가 3개씩 있나보다. 이해를 하자말자 정규 표현식으로 풀어야 되는 문제구나 하는 감이 왔다. 역시 소스코드에는 다음과 같이 떡하니 문자들이 블라블라(?) 적혀있다. [a-z] 소문자 a에서 z까지 중 하나의 값을 뜻함 [A-Z]{3} 대문자 A에서 Z사이의 하나의 값이 3번 연속으로 있음을 뜻함 [0-9]{2~5} 숫자가 2~5번 반복됨 ^abc abcde, abcfx와 같이 abc로 시작하는 단어를..