1

Olly Debugger でプログラムをデバッグしています。次のように実行中に例外ハンドラをインストールします。

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 キーを押して例外をプログラムに渡すオプションがあります。

ただし、押しても何も起こらず、プログラムは一時停止状態のままです。

この時点での私の SEH チェーンは次のようになります。

004010a9 // exception handler installed above
7c839aa8 // final exception handler

Olly Debugger のデバッグ オプションは、次のように設定されています。

[例外] タブで、次のオプションのみをオンにしました。

Kernel32 のメモリ アクセス違反を無視する

Shift + F9 を押したときに、プログラムが 004010a9 にある例外ハンドラーに例外を渡さない理由を理解できません。これは現在のスレッドの例外ハンドラーであるためです。

ありがとう。

4

1 に答える 1

0

check mark ignore the following exceptionsおよびまたは範囲のチェックボックス

clickボタンadd last exception

the list boxfilled with c0000005 access violationボタンをクリックした後でなければなりません

press ok.

ollydbg is now setupsaid exceptionをプログラムに渡すことを許可する

shift + f9 will only work別の例外を渡すには、zeor で割ると、この手順をもう一度実行する必要があります。

または、0 から ffffffff のような完全な範囲を追加できます

于 2014-05-21T04:48:09.353 に答える