ETC/Pwn 메모장
FPO할때 주의! (64bits)
210_
2019. 7. 11. 23:08
vuln 함수 fp 변조하면
vuln 함수 leave ret할때 정상동작
왜?
leave 할때 mov rsp, rbp하고, pop rbp하는데 아 안에 들어가 있는 주소를 변조했으니까
vuln 함수 끝날때 leave ret은 정상적으로 됨
그리고 main에서 leave할때 rsp를 (원하는 곳+8)으로 바꿔주고(여기서 변조한 rbp값은 pop으로 인해 + 8됨),
ret에서 rsp가 가르키는 주소를 rip에 넣게됨.
결국에는 rbp 변조할때 이동 원하는 주소 -8를 해줘서 변조 시켜주거나,
아니면 원하는 주소 에서부터 nop을 8개 넣어주면 됨. 단, 여기서 nop넣은 주소로 rbp변조