티스토리 뷰

- forth


nc 또는 putty 같은 것을 이용해서 IP는 136.243.194.49, 포트는 1024로 접속하게 되면 yForth 라는 서버에 접속을 할 수 있다.


forth에 대해서 찾아보면 아래와 같이 프로그래밍 언어라는 것을 검색을 통해서 알 수 있다.

"Forth is an imperative stack-based computer programming language"


간단하게 계산을 해보면 특징을 알 수 있다.

1 + 1 = 2

3 + 7 - 1 = 9

위와 같은 연산을 forth 언어로 처리해보면 아래와 같다.


1 1 + .

1) 1을 스택에 넣는다.

2) 1을 스택에 넣는다.

3) 스택에서 두 값을 꺼내서 더하기(+)를 한 값(2)을 다시 넣는다.

4) 스택에 있는 값을 출력한다.


3 7 + 1 - .

1) 3을 스택에 넣는다.

2) 7을 스택에 넣는다.

3) 스택에서 두 값을 꺼내서 더하기(+)를 한 값(10)을 다시 넣는다.

4) 1을 스택에 넣는다.

5) 스택에서 두 값을 꺼내서 빼기(-)를 한 값(9)을 다시 넣는다.

6) 스택에 있는 값을 출력한다.


이를 통해서 forth 언어는 스택과 후위 표기법을 사용한다는 것을 알 수 있다.


words 를 입력하면 아래와 같이 출력이 된다.

출력된 내용을 살펴보면 system을 확인할 수 있다.


위 정보들을 이용해서 다음과 같이 입력하여 명령어가 실행되도록 시도하였다.

ls system

명령어를 입력하면 [ls] error(2): unknown word. 에러가 발생한다.

s" strings" 을 이용해서 다시 시도하였다.

s" ls" system

명령어를 입력하면 정상적으로 실행이 되어 flag.txt    README.gpl    run.sh    yforth가 표시된 것을 확인할 수 있다.

동일한 방법으로 flag.txt 파일을 읽으면 flag 값을 얻을 수 있다.

s" cat flag.txt" system


flag: 32C3_a8cfc6174adcb39b8d6dc361e888f17b




댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
링크
공지사항
Total
Today
Yesterday