Are there any alive CPU architectures with two sta

2019-09-12 10:45发布

问题:

Is it simpler to prevent buffer overflows explorations with two stacks in general? One stack for variables and passing arguments, the other for return addresses.

Or things like NX/XD-bits (on AMD/Intel x86) as non-executable stack do it better?

回答1:

Itanium has two stacks. I believe one is for storing local variables (like arrays and stuff), while the other is for return addresses. This way, you can't overwrite return addresses by overrunning a buffer.

https://blogs.msdn.microsoft.com/oldnewthing/20050421-28/?p=35833