패스워드는 data.txt에 들어있으며 소문자 대문자 a부터 z 가 다 13번씩 돌아가 있다? 이게 무슨뜻이냐면 카이사르 암호라는 것이다. 카이사르암호는 한마디로 진짜 엄청 오래된 암호화 방식이라 하면된다. 이해가 가실지 모르겠지만..끄적여보면...
알파벳 a가 13칸 뒤로 가면 n이 되는데 그 n을 시작으로 다시 알파벳갯수 만큼 재배열하면 된다.
=> a b c d e f g h i j k l m n 직접 세보면 13칸뒤로가서 a가 n으로 치환되는것을 나타낸것이다. 이렇게 a과 n을 기준으로 평문과 치환문을 생성하는것이다.
원래 알파벳: a b c d e f g h i j k l m n o p q r s t u v w x y z
치환된 알파벳: n o p q r s t u v x y z a b c d e f g h i j k l m
즉 a=n, b=o, c=p, d=q... 이런식으로 대응된다.
위에 사진은 치환된 문자열이다 이것을 위에 설명한 치환식으로 복호화를 하면된다.
위사진은 치환된 알파벳을 원래대로 돌려놓은 것이다. 리눅스를 알파벳을 치환하는것은 tr명령어로 할 수 있다.
tr 명령어 형식은 "tr 평문 치환식" 형식이다. 하지만 위에 사진은 좀 보기 어려운데, 이것을 좀 상세하게 설명하면,
평문: [a-z A-Z] = a~z A~Z = 소문자a부터z 와 대문자A부터 Z
치환식: [n-za-m N-ZA-M] = 소문자n부터m 와 대문자N부터 M
즉, 소문자 a-z 는 n-za-m 으로 치환하고, 대문자 A-Z 는 N-ZA-M 으로 치환하겠다는 소리이다.
여기서 의문이 드는것은 또 n부터 m을 왜 n-za-m으로 표현하는것이 이해가안갈수도있다. 이것은 정규식으로표현한것.
그냥 nopqrstuvwxyz+abcdefghijklm 을 붙힌거다.
n-z + a-m
이것 또한 이해가 안가면 아래 사진 처럼 정규식표현말고 알파벳을 모두 나열해줘도 된다. 아래사진은 잘안보이니 ctrl+마우스 휠로 확대해서 보길.... 볼사람은 있으려나..ㅋ...... 이렇게 키값을 확인했다..
'SystemHacking > bandit' 카테고리의 다른 글
Level13 ~ Level14 (0) | 2021.10.05 |
---|---|
Level12 ~ Level13 (0) | 2021.10.05 |
Level10 ~ Level11 (0) | 2021.10.05 |
Level9 ~ Level10 (0) | 2021.10.05 |
Level8 ~ Level9 (0) | 2021.10.05 |