먼저 파일을 실행
이름을 물어보고 모르면 이상한 소리를 낸다
IDA로 코드를 까봄
s에 문자열을 입력을 받는다
s의 크기는 59byte
what is your name?
what is your quest?
what is my secret?
다음에 s에 입력을 받다
print flag에 도달하기 위해서 what is your name? what is your quest? 다음 문자열을 입력받을 때는 "Sir Lancelot of Camelot\n"와 "To seek the Holy Grail.\n"를 입력 받아야 한다.
What is my secret? 다음에는 gets함수로 문자열을 입력 받는다. v5의 값이 -559869752여야 print_flag를 할 수 있기 때문에 오버플로우를 이용하여 v5의 값을 바꿔준다.
v5의 크기는 16byte로 59-16 = 43byte 만큼 dummy값을 넣어주고 그리고 그다음에 -559869752를 넣어주면 될 것이다.
-559869752를 16진수로 바꾸면 0xDEA110C8이기 때문에 이것을 넣어주면 된다.
sendlineafter에서 '\n'을 넣어주면 안됨
실행됨