echo.c
포인트
format String Bug
*format String Bug에 자세한 건 따로 정리한 글 참고
printf를 호출하기 직전 스택상태
* flag.txt는 임의로 만들었다.
정답 1. %s이용
알다시피 "%s"는 문자열의 주소를 참조하는 포맷이기 때문에
flag문자열의 시작주소를 찾으면 된다.
스택을 확인해보면
esp에서 8번째 뒤에 있다.
"%8$s" 입력
정답 2. %x이용
%x는 4byte씩 16진수 출력
esp에서 27번째 뒤에 flag문자열이 있다.
"%x "를 27번 입력하면 번거롭고 buf길이(=64byte)를 초과하기 때문에
"%27$x"부터 '}'의 16진수인 7d 까지 출력해서 확인