-
FPO할때 주의! (64bits)ETC/Pwn 메모장 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변조
'ETC > Pwn 메모장' 카테고리의 다른 글
Pwntools에서 recv와 recvn (0) 2019.07.14 FPO 할때 주의!(32bits) (0) 2019.07.12 함수 인자와 Return 값 레지스터 (feat.32, 64 bit) (0) 2019.06.25 shellcraft에서 64bit shellcode 에러 (0) 2019.06.24 반복문에서 쉘코드 크기 줄이기 (0) 2019.06.24