문제분석 & 풀이
힌트를 확인했지만, 처음에 무슨말인지 이해가 안되서 /bin/level7 부터 실행했다.
level7을 실행하니 힌트의 언급대로 패스워드 입력을 요청한다.
결과를 확인하기 위해 아무 값이나 입력했고 /bin/wrong.txt라는 파일을 찾지 못했다는 문구가 나온다.
필자는 wrong.txt에 관한 의문을 해결하는 것이 핵심이라고 생각하고 삽질을 했으나.. 로컬에서 ftz 환경을 구축하는 경우에는 wrong.txt 파일이 없는 경우가 있다고 한다. (여기서 삽질하신 다른 독자분들도 많을거라고 생각한다.)
wrong.txt 파일이 존재하는 경우에는 내용은 다음과 같다.
--_--_- --____- ---_-__ --__-_-
원래는 패스워드 입력이 실패하면 위와 같은 힌트가 나온다.
바로 느낌이 오는 것은 모스부호인 것 같다는 생각이 든다.
다시 힌트파일 내용을 읽었다.
1번은 wrong.txt 파일로부터 출력된 암호문을 의미하는 것 같다.
3번을 보면 2진수, 10진수 변환에 관련된 내용을 언급하고 있으며 4번에서 공학용 계산기를 사용하라고 한다.
3, 4번을 하나로 묶어서 2 → 10진수 or 10 → 2진수의 변환이 필요할 것이라는 것이라는 뜻 같다.
예상대로 모스부호라는 확신이 든다.
--_--_- --____- ---_-__ --__-_-
모스부호라고 가정하고 2진수로 바꿔보면 다음과 같다.
1101101 1100001 1110100 1100101
2진수 숫자를 보면 4가지 숫자로 구분되어있는 것을 확인할 수 있다.
힌트에서 2진수를 10진수로 변환하라는 언급이 있었고 숫자들을 10진수로 변환했다.
109 97 116 101
4개의 10진수가 만들어진다.
숫자들을 아스키코드 표를 이용해서 문자로 변환해보자.
○ 아스키코드
컴퓨터는 숫자를 이용해서 무엇인가를 인식하고 표현한다. 컴퓨터에서 문자를 표현하려면 숫자를 이용해야 하는데 이때 문자 표현을 위한 약속들 중 한 가지가 아스키코드이다.
4개의 숫자들을 아스키코드 표를 이용해서 변환했다.
109 → m
97 → a
116 → t
101 → e
mate라는 단어가 만들어지는 것을 확인 할 수 있다.
level7을 실행해서 mate를 입력해보자.