Olly Debuggerでプログラムをデバッグしています。次のように実行しながら、例外ハンドラをインストールします。Ollyデバッガで例外を渡すことができません
push 004010a9
xor eax, eax
push dword ptr fs:[eax]
mov dword ptr fs:[eax], esp
ので、アドレス004010a9に位置例外ハンドラがインストールされました。以下に示すように
次の命令は、メモリアクセス違反をトリガ:
add eax, 40
sub dword ptr ds:[00410000], eax
コードは、コードセクションへの書き込み権限を持っていないので、それがメモリアクセス違反と停止をトリガします。
ここで、Shift + F9を押してプログラムに例外を渡すことができます。
ただし、を押すと何も起こらず、プログラムは一時停止状態のままです。以下に示すようにオリーデバッガで
004010a9 // exception handler installed above
7c839aa8 // final exception handler
私のデバッグオプションが設定されています:
例外]タブの下で、私がチェックしただけで、次のオプションがあり、以下に示すように、この時点で
マイSEHチェーンが見えます:
はKERNEL32でのメモリアクセス違反を無視し、私は以外にプログラムパス例外をしない理由を理解することができません
イオンハンドラは、現在のスレッド例外ハンドラであるため、Shift + F9を押すと004010a9に配置されます。
ありがとうございました。