>ついでに言っておくが、実行コードを走らせるには実行可能フラグの設定されたメモリ領域ではならない。
>通常のヒープやスタックは実行不可。さらにオーバーフローされたとしても大抵は
>隣接する関係のないデータが書き換わるかAVが発生してあぼーんして終わり。


Windowsアプリケーションソフトウェアにおけるバッファオーバーフローの危険性
http://www.shadowpenguin.org/sc_documents/spsdocument21.pdf
> 5. スタック上に置かれたコードの実行
> カーネルにより割り付けられたスタック領域は、読み
> 書き可能であると同時に実行可能です。つまり、スタック
> 上にコードを置き、EIPを適切に移すことができれば、置
> かれたコードは問題なく動作します

釈明ま〜だ〜?