[fd
atoi(argv[1]) - 0x1234 becomes a file descriptor, so passing 4660 makes the program read from stdin.

pwnable.kr SSH 로 문제에 접속해보자.

ls -al 로 일단 어떤 파일이 있는지 훑어 봐준다. 플래그 파일이 있어 바로 접속을 해볼려했지만, 퍼미션이 없다. flag 파일 은 fd_pwn 그룹만 읽기 가능한거 같다. /fd 로 프로그램을 실행을 해봤다. pass argv[1] a number. 어떤 파일인지 감도 안와서 c 언어 파일을 분석해보기로했다.

코드를 둘러보자.
int fd = atoi(argv[1]) - 0x1234; read(fd, buf, 32);
입력값에서 0x1234를 뺀 값이 read()의 file descriptor로 사용된다. 0x1234 는 decimal (10 진수) 로 4660 이다. 파일 디스크립터의 개념을 이해하기 위해 인터넷에 서치 해봤다.

우리가 원하는건 stdin에서 읽도록 만드는 것이기때문에, fd를 0으로 만들면 된다.
입력값 - 4660 = 0 입력값 = 4660
그렇기 때문에 ./fd 4660 로 파일을 실행하면, 입력할수있는 공간이 나온다. 그곳에 코드를 따라 LETMEWIN 를 적으면 키가 나온다.
