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변조