문제로 들어가면 0과 1로 구성된 문자열이 주어진다. 이를 8byte씩 끊어서 10진수로 변환한 뒤 보면 전부 ASCII 범위 내에 들어간다. 따라서 2진수를 전부 ASCII 문자로 바꾸어본다.
ASCII 문자로 바꾸어보면 위와 같은 문자열이 나온다. 해당 문자열을 살펴보면 카이사르 암호를 통해 치환됬을 것이라고 추측해볼 수 있다.
import string
def shift(c, N):
if c not in string.ascii_uppercase:
return c
if ord(c)+N > ord('Z'):
return chr(ord(c) + N - 26)
else:
return chr(ord(c) + N)
text = 'NVCTFDV KF JLEZERKRJ REU KFURP ZJ R XFFU URP REU RLKYBVP ZJ GCRZUTKWZJMVIPYRIU'
for i in range(1, 26):
tmp = ''
for j in text:
tmp += shift(j, i)
print i, tmp
python을 사용하여 카이사르 암호를 복호화한다. 그럼 key가 9일 때 AUTHKEY가 출력되는 것을 볼 수 있다.
Written by choi_jiung
'CTF 중점 스터디' 카테고리의 다른 글
Xcz.kr_Prob1_Writeup (0) | 2020.03.15 |
---|---|
Suninatas 18 Write-up (0) | 2020.03.01 |
Aero CTF 2020 Write Up (3) | 2020.03.01 |
Suninatas 13 Write-up (0) | 2020.02.23 |
Wargame.kr_Easy CrackMe_Write up (0) | 2020.02.17 |