처음 소스를 보시면 gremlin과 상당히 유사함을 볼수 있습니다. 16바이트 배열선언 배열에 문자열을 받고 출력. 하지만 파라미터값을 strcpy로 배열에 저장했던 gremlin과는 달리 이 문제는 gets를 통해서 프로그램 실행중 직접 입력을 받습니다. 그럼 내부를 분석해 볼게요. - 스택에 16바이트의 공간을 할당하고 - eax에 배열의 시작주소를 복사하여 - gets함수로 입력을 받고 - 출력 네. gremlin과 매우! 비슷합니다. 게다가 gremlin때와 같은 환경이기 때문에 libc의 주소도 같습니다. payload를 짤 필요도 없게 되는군요. 그럼 여기서 고민해야 될건 어떻게 gets함수에 stdin을 넘겨주냐가 되겠군요. 사실 BOF원정대를 풀기 시작하신분은 이미 다 알고계신 내용이겠지만..