>>87
でも片手落ちだと思うよ。

1、確かにスタック上の任意のコードを走らせる確率は減るけどゼロではない。
 まあ、失敗したら例外で落ちるだろうから大多数は攻撃に気づくだろうけど、ゼロでない事は重要。

2、スタック上の任意コードはガード出来たとしても、プログラム領域はガード出来ない。
 任意のコードは書けないが、普段とおらない筈の部分をいくらでも呼び出せる。
 たとえば、個人情報を吸い出されたり、パスワードを解除するような部分を呼び出してパスワードを解除したり、
 コード上にある全ての機能を呼び出せてしまう。

と、書くと今度はコード領域もシャッフルすると言い出すんだろうな。
まあそれも有効な方法だから否定はしないけど。