My question was: why are you using the *last* useful value, when you could use any of them? Is it the fastest way to have these values stored in the memory?
Hello, subscribing on the forum because some details of this video trouble me
Why? Why don't you try to execute those two instructions as soon as possible? The RET will get you back where you want anyway. If I'm right (but I guess I'm not, you have thought way more than me about this), that would save you a lot of trouble. Can't you try to somehow have those values on that squirtle?
Can't you exploit this like any regular buffer overflow? I.e., trying to erase the return value of current function in order to execute arbitrary code. How is it unpredictable? Is there really no way to predict it?
Thanks for this awesome TAS, anyway :)