web-dev-qa-db-ja.com

SafeSEHおよびx64

私は読む ここ それ

/ SAFESEHは、x86ターゲットをリンクする場合にのみ有効です。/SAFESEHは、例外ハンドラがすでに記述されているプラ​​ットフォームではサポートされていません。たとえば、x64およびItaniumでは、すべての例外ハンドラーがPDATAに記載されています。

これは何を意味するのでしょうか? SEHチェーンはx64ターゲットでチェックされていますか(PDATA構造に格納されています)?または、x64ターゲットにはsafeSEHチェックがありませんか?

6
John Smith

SafeSEHは、スタックベースの例外ハンドラチェーンが上書きされないように保護するメカニズムです。ただし、x64およびItaniumアーキテクチャーでは、例外ハンドラーはテーブルベース(つまり、PDATAに格納)であるため、スタックバッファーオーバーフローによって直接上書きすることはできません。これらは単にスタック上にはありません。そのため、SafeSEHはこれらのシステムには無関係です。

7
Polynomial