問題タブ [seh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
878 参照

windows - int3(VEHまたはSEH)の使用方法

割り当てゾーン(VirtualAllocateEx)にジャンプするfunction prologueために置き換えたいことを知っています。jmpしかしfunction prologue、3バイトとjmp5バイトだけです。このような:

jmpを使用して関数プロローグをカバーしたい場合は、関数プロローグの後の3番目の命令をカバーする必要があります。

だから、関数プロローグの代わりにint3を使用して、割り当てゾーンまたは任意のアドレスにジャンプしたいのですが、どうすればよいですか?

VEHやSEHを使ってみましたが、どうやって作るのかわかりません。

0 投票する
1 に答える
5513 参照

c++ - C2712:オブジェクトの巻き戻しが必要な関数で__tryを使用できません

VC++6.0で作成されたソフトウェアをVS2010/ VC++2010に移行しています。デバッグモードでコンパイルされないプロジェクトがあります。私は持っています:

__tryについては何も言及していません

分かりませんか?

0 投票する
1 に答える
994 参照

windows - アセンブラーの far 呼び出しとヘブンズ ゲートについて、例外をトリガーするセグメント呼び出しは、例外がスローされる前に cs と eip をプッシュしますか?

現在、私は「天国の門」として知られる Windows/WOW64 トリックで遊んでいます。おそらくご存知の方もいらっしゃると思いますが、x86 プログラムであっても x64 モードに入ることができます (テストしたときはとても驚きました)。そしてそれはうまくいきました!)しかし、すべてのWindowsバージョンでサポートされているわけではないことがわかっているので、私のコード(コードがあるため)はsehを使用しています。次のようになります:

単純な「jmp .exit」でうまくいくことは知っていますが、それについて非常に興味があります

0 投票する
2 に答える
1685 参照

delphi - C++ Builder で安全な例外処理を有効にする

Windows 8 アプリケーションの認定には、(特に) 次の要件があります。

  • 3.2/SafeSEH安全な例外処理を保証するために、フラグを使用してアプリをコンパイルする必要があります
  • 3.3/NXCOMPATデータの実行を防ぐために、フラグを使用してアプリをコンパイルする必要があります
  • 3.4 アプリは/DYNAMICBASE、アドレス空間レイアウトのランダム化 (ASLR) のフラグを使用してコンパイルする必要があります

C++Builder XE でこれらのいずれかを有効にする方法を見つけることができませんでした。

/NXCOMPATとについては、VS またはCygwin から/DYNAMICBASE使用できます。これらを有効にするネイティブな方法があれば、副作用の可能性についてもっと自信を持っていると思います.editbin.exepeflags.exe

とにかく、私は完全に途方に暮れてい/SafeSEHます。

0 投票する
1 に答える
1252 参照

windows - Windows32 API: 関数エントリで「mov edi,edi」?

Windows 7 で構造化エラー処理の回復コードを実行しています (たとえば、SEH ハンドラーが完了して "CONTINUE" コードを返した後に何が起こるか)。呼び出される関数は次のとおりです。

「push ebp/mov ebp,esp」の関数プロローグには慣れています。「mov edi,edi」の目的は何ですか?

0 投票する
0 に答える
1467 参照

c++ - __HeapFree で例外をキャッチしないようにする

私はHeapFree例外をキャッチしようとしています..

MSDN ではHeapFree、すでに解放されているポインターを解放しようとすると、未定義の動作が発生すると言われています。さて、私はVS2010でそれを試しましたが、ブレークポイントを「スロー」し(Windowsがブレークポイントをトリガーしました)、次に例外(ヒープが破損しました)

_ try/ _except でそれをキャッチしようとしていますが、トリガーされていません:

この例外をキャッチするにはどうすればよいですか? 通常の try/catch も機能しません。何が起こっているのかわかりません。解決策自体よりも説明に興味があります。

0 投票する
1 に答える
252 参照

winapi - 特定の関数で/EHscを使用して/EHaの利点を得る方法は?

extern "C"プログラム内の特定の関数(たとえばRaiseException)がSEH例外を発生させる唯一の関数であり、それらをC ++例外に変換したい場合/EHa、その関数を「選択的に有効にする」方法はありますか。例外は、通常は?によって引き起こされるCStructured_Exceptionように、プログラムの残りの部分を肥大化させたり遅くしたりせずに変換されます。/EHa

0 投票する
1 に答える
763 参照

c++ - _set_se_translator の「get」に相当するものは?

現在のトランスレータを使用して、構造化例外を手動で翻訳する必要があります。

誰かが設定した値を「取得」するにはどうすればよい_set_se_translatorですか?

0 投票する
3 に答える
4185 参照

windows - Visual Studio 2010 のプログラム データ ブレークポイント

デバッグレジスタを直接設定するために、CBreakpoint例のように、プログラムによるデータブレークポイントを使用しようとしました。SetThreadContext私が見つけることができるほとんどの参照は、データ ブレークポイント自体を設定していなくても、Visual Studio がデータ ブレークポイントに遭遇するたびに中断することを示しています。ただし、これは Visual Studio 2010 の動作ではないようです。

プログラムがデバッグされていないときにデータブレークポイントが完全に機能する状況にあります (STATUS_SINGLE_STEPデータブレークポイントによって発生する例外である でクラッシュします)。WinDbg でデバッグしている場合も、正しく壊れます。しかし、いずれかの Visual Studio 2010 でデバッグすると、追跡を続けてブレークポイントを無視しているように見えます。Windows 7 で、Visual Studio 2010 でプログラムによって設定されたデータ ブレークポイントを使用した経験がある人はいますか? それらを壊すために私がする必要があることはありますか?STATUS_SINGLE_STEP( 「最初の例外」リストに追加しようとしましたが、動作に変更はありません。)

STATUS_SINGLE_STEPまたは、デバッガーで例外を飲み込むために私が行っていることはありますか? 構造化された例外ハンドラーは、デバッガーがそれを見る前に例外を食べますか? これが x86_64 プログラムであることによる影響はありますか? Visual Studio 2010 の設定で行う必要があるダンスはありますか?

0 投票する
4 に答える
5540 参照

c - __tryおよび__exceptionの移植性

こんにちは、また失礼します

Intelの「IA-32アーキテクチャでのマルチプロセッサトポロジの検出」を読んでいます。私は例を書き直していました。しかし、私はこの文を__tryと__exceptのコードで読みました。

MSDN Microsoft Webページにいくつかの情報が見つかりましたが、gccコンパイラ/リンカーを使用しています

__tryと__exceptはgccの有効な文ですか?__tryと__exceptは*nux環境でのポータブルセンテンスですか?Cでの例外処理のために__tryおよび__except文よりも優れたモードが存在しますか?

前もって感謝します。