leave
Using leave; ret to stack pivot
By calling leave; ret twice, as described, this happens:
By controlling the value popped into RBP, we can control RSP.
As before, but with a difference:
Testing the leave
I won't bother stepping through it again - if you want that, check out the .
Essentially, that pops buffer into RSP (as described previously).
You might be tempted to just chuck the payload into the buffer and boom, RSP points there, but you can't quite - as with the previous approach, there is a pop instruction that needs to be accounted for - again, remember leave is
So once you overwrite RSP, you still need to give a value for the pop rbp.