保護 PAGE_NOACCESS を持つ 2 つのページに囲まれたメモリを割り当てるメモリ マネージャーを作成しました。SEH ブロックでこのメモリを使用する関数を呼び出し、このブロックで発生する ACCESS_VIOLATION 例外 (存在する場合) をキャッチします。さて、私の例外ハンドラで、プログラムがアクセス権を持っていなかったアドレスを取得することは可能ですか? 障害のある命令へのポインターを取得できることは知っていますが、実際にアセンブリを解析する必要がありますか?
これは、保護されたメモリで違反が発生したか (そこから実行を続行できます。これは予期される動作である可能性があります)、またはおそらくプロセスを終了する必要がある別の (不明な) 場所で発生したかどうかを知るためです。代わりに PAGE_GUARD 保護を使用することを考えました。これは、アクセスされたメモリが保護されたメモリからのものである可能性があることを特定するのに役立ちますが、確実ではありません (つまり、スタックの後のメモリは PAGE_GUARD で保護されています)。
どんな助けでも感謝します:)