-
FPO 할때 주의!(32bits)ETC/Pwn 메모장 2019. 7. 12. 23:12
ebp 변조 후, main의 mov ecx, [ebp-0x4]에서 ecx에는 ebp-0x4안의 값이 들어감
leave에서 ebp 변하는건 이제 상관 없음 왜? ecx로 esp값을 바꿔주는 부분이 있으니까
ebp-0x4 안의 주소가 ecx로 복사 되니까 (스택 시작 주소 + 4)를 (ebp)로 변조 하면 스택 시작 주소가 ecx로 복사-> ecx = (스택시작주소 + 4) - 4
mov esp, [ecx-0x4] 과정에서 스택 시작주소 - 4가 esp로 들어감
그러므로, 스택 시작 주소 +4에 system이 들어가 있으니까 처음에 스택 시작 주소를 넣어줄 때 +8 해줘야함.
'ETC > Pwn 메모장' 카테고리의 다른 글
Pwntools에서 gdb에 붙기 (0) 2019.07.25 Pwntools에서 recv와 recvn (0) 2019.07.14 FPO할때 주의! (64bits) (0) 2019.07.11 함수 인자와 Return 값 레지스터 (feat.32, 64 bit) (0) 2019.06.25 shellcraft에서 64bit shellcode 에러 (0) 2019.06.24