해킹 동아리 I.Sly()/방학 스터디 활동

[bandit] level 11 -> level 12

gom1n 2021. 2. 15. 07:11

해설)

다음 레벨의 패스워드는 data.txt 안에 저장되어있으며, 그 파일은 소문자와 대문자가 13씩 이동되어있다.

 

 

예전에 배웠던 암호화와 비슷한 개념인 것 같다.

왜인지 시작부분이 The password is 인 것 같은... 느낌^^,,,,

문자를 암호화하고 복호화하는 코딩을 짜 본 적은 있지만 리눅스에서는 처음 써본다. 아는 개념 나와서 설레는 거 맞음.

 

여기서 주목할 점은 조건에서 문자들이 13개씩 이동되어있다는 점이다.

영문자는 총 26개로, 13개가 두번 돌아가면 원위치되는 특성이 있다.

이렇게 키 값을 +13 해주는 암호는 ROT13이라고, 특별히 이름까지 지어주었다.

 

tr 명령어는 지정한 문자열을 바꾸어주는 역할을 한다.

기본 사용법은 이러하다.

$ tr [대상 문자] [바꿀 문자]

 

여기서 우리는 조건에 따라, A~Z와 a~z를 각각 N~Z 또는 A~M, 그리고 n~z 또는 a~m 로 바꾸어 줄 것이다.

$ tr 'A-Za-z' 'N-ZA-Mn-za-m'

 

예상대로 패스워드가 나온다. 어려웠다!