본문으로 바로가기

[PythonChallenge-1] map.html 풀이

category 해킹/Write Up 2016. 9. 14. 19:49

문제 : http://www.pythonchallenge.com/


처음에는 문장에 K 를 M으로 O 를 Q로 E를 G로 바꾸라는 뜻인줄알고 그런식으로 파이썬코드를 만들었습니다.

1
2
3
4
5
6
7
8
9
10
import re
prstr = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
 
= open("Answer.txt" , 'w')
 
prslv = re.sub('([Kk])','m',prstr)
prslv = re.sub('([Oo])','q',prslv)
prslv = re.sub('([Ee])','g',prslv)
 
f.write("Original :" + prstr + "\n" "Answer :" + prslv)
cs


(이떄 정규식이 익숙하지않아서 이런식으로 만들었습니다.)


그런데 보니까 알파벳 아스키코드에 2를 더하는 규칙이 있었습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
import string
 
prstr = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
 
= open("Answer.txt" , 'w')
 
trantab = string.maketrans(string.ascii_lowercase, string.ascii_lowercase[2:] + string.ascii_lowercase[:2])
 
prslv = prstr.translate(trantab)
 
f.write(prslv)
 
f.close()
 
cs


string.ascii_lowercase는 알파벳 소문자를 말합니다.

이런식으로 문제를 푼후 나오는 문장에 지시대로하면 해결할 수 있습니다.

'해킹 > Write Up' 카테고리의 다른 글

Protostar Heap3 Write-Up  (0) 2017.01.25
ECTF-2016 Defushal(rev50) Write Up  (0) 2016.10.29
[PythonChallenge-3] equality.html 풀이  (0) 2016.09.14
[PythonChallenge-2] ocr.html 풀이  (0) 2016.09.14
[PythonChallenge-0] 0.html 풀이  (0) 2016.09.14