3 ms·
That's the way the Control Data Cybers worked, except that it wasn't just a return address - it was a complete jump instruction. You needed to start your funct
by mark-r 6y ago
That's the way the Control Data Cybers worked, except that it wasn't just a return address - it was a complete jump instruction. You needed to start your function with a no-op of the correct length, and it was overwritten by the caller. Then to return from your function you simply jumped back to the beginning.
- zozbot234 6y agoNice. Basically, the caller uses self-modifying code to set up the correct continuation ("self-modifying code" and "continuation" being somewhat closely-related concepts, after all), and then has the callee jump to it. Makes a lot of sense.