이번 문제는 실행시킬 수 있는 곳이 보이지 않느다
그렇기 때문에 main함수의 ret를 win 쪽으로 틀어 향하게 하면 win함수를 실행 시킬 수 있다
main도 프로그램 도중에 실행되는 함수 이기 때문에 ret할 곳이 있다
이 책갈피로 가라고 하는 ret를 원래의 책갈피 주소가 아닌
win함수의 주소를 넣어주면 main이 끝나고 ret해야할 곳이
원래의 ret주소가 아닌 win을 가르켜 win함수로 가게 되는 것임
알아 내야하는 것
win함수의 위치
buffer에서 ret까지의 길이
buffer에서 ret까지 가득 채우고 ret에 win함수 주소를 넣어야함
main 함수의 ret에 break point를 건다
이 ret는 책갈피가 아닌 책갈피로 보내는 ret이다
이번에도 pattern create로 buffer에서 ret까지의 길이를 알아내야 하는데
ret에 들어가있는 값을 알아내기 위해서는 eax가 아닌 스택을 봐야한다
ret(책갈피로 가라)는 맨위에 쌓이기 때문에
이건 ret가 변조 안됐을 때(정상적인 ret주소가 들어있다)
win의 주소 0x401132
buffer에서 ret까지으 길이 = 72바이트
성공