< 출처 : 링크텍스트 >
call 의 특성에 따라 return_address 인 400005가 stack 에 push
push rbp = rsp -= 8 -> [rsp] = rbp 의 순으로 연산.
- rsp = fc3f8, rbp = fc480
- -> rsp = fc3f0, [rsp] = fc3f0 의 자리에 fc480이 저장
mov rbp, rsp : rbp 에 rsp 의 값을 대입.
- rbp = fc3f0
sub rsp, 0x30 : rsp 에 0x30 만큼 뺄셈
- rsp = fc3c0
mov BYTE PTR[rsp], 0x3 : rsp에 저장된 값에서 1byte 크기만큼 0x3 대입
leave 연산 수행 : rsp에 rbp 대입 -> rsp += 8 -> rbp = [rsp-8]
[rsp-8] = fc480