[FTZ] level 7 풀이 <진법변환, ASCII>
1.
역시 가장 먼저 열어보는 hint 파일.
/bin/level7 명령을 실행하면 패스워드 입력을 요청한다니 /bin/level7 명령을 실행해보자 !
힌트에 나온대로, /bin/level7을 실행하면 패스워드 입력을 요청한다.
아무말이나 입력했더니 wrong.txt 라는 파일이 없다는 에러메세지가 출력된다.
좀 멘붕이 와서 구글링 했더니, 이는 해커스쿨 FTZ 오류란다.
원래는 bin 디렉토리에 아래와 같은 내용이 있어야 한다.
올바르지 않은 패스워드 입니다.
패스워드는 가까운곳에...
——- —__- —--__ —__--
그래서 이 문제를 풀려면 /bin 디렉토리에 wrong.txt 라는 파일을 추가해줘야 한다.
2.
wrong.txt 파일을 포함시키기 위해선, vi 에디터로 내용을 붙여넣으면 되지만 level* 계정에는 쓰기 권한이 없다.
따라서, root 계정으로 로그인하여 텍스트 파일을 생성해야 한다.
루트 계정은
ID : root
PW : hackerschool
루트 계정으로 로그인 해주고 bin 디렉토리로 이동했다.
vi 에디터로 wrong.txt 파일을 만들었다.
——- —__- —--__ —__-- 를 입력해줬다.
다시 level7로 로그인 해주자
-와 _, 2가지 문자라고 생각하면 2진수임을 알 수 있다.
-는 1, _는 0으로 생각하고 공학용 계산기를 이용해 이 2진수를 10진수로 변환해보자.
1101101 = 109
1100001 = 97
1110100 = 116
1100101 = 101
숫자들을 보니 떠오르는 것은 ASCII 코드표 !!
MATE
추가
hint를 다시 한번 살펴봤다.
2진수를 10진수로 바꿀 수 있는가?
- echo "ibase=2; 11011" | bc (ibase 설정)
- 공학용 계산기에서 할 수 있음 ^_^
계산기 설정을 공학용으로 바꾸어라.
아스키코드
- 컴퓨터가 문자를 인식하는 방법
: 문자 그대로 인식하는게 아니라, 그 문자와 매치되는 즉 이미 약속되어 있는 어떤 숫자로서 처리를 하게 됨
- 컴퓨터는 단순히 2진수밖에 인식 하지 못하기 때문에 문자를 인식하게 하려면 숫자를 이용해야 함.
- 숫자를 가지고 문자를 표현하기 위해 미리 어떤 문자는 어떤 숫자로 한다는 약속 == 아스키코드
(2019.12에 작성한 글을 가져왔습니다.)