#navi_header|C言語系| * 参考リンク ''参考リンクのまとめメモです。'' ** 初級:構造化例外処理の使い方を学ぶ - MSDNの基本情報 -- "MSDN Library" > "Windows Development" > "Diagnostics" > "Debugging and Error Handling" > "Structured Exception Handling" - SEHのサンプル -- "MSDN Library" > "Windows Development" > "Diagnostics" > "Debugging and Error Handling" > "Structured Exception Handling" > "Using Structured Exception Handling" - "Windows の内部動作 - Web/DB プログラミング徹底解説" : 例外処理の一通りの日本語解説 -- http://keicode.com/windows/index5.php --- 「例外処理」の見出し参照 - VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo) -- http://www.ne.jp/asahi/hishidama/home/tech/vcpp/seh.html ** 中級:構造化例外処理の実装とC++の例外処理の関係について学ぶ アセンブラ知識が必要。内容も非常に濃厚。 - A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997 -- http://www.microsoft.com/msj/0197/exception/exception.aspx --- アセンブラレベルでの構造化例外処理の実装詳解 - How a C++ compiler implements exception handling - CodeProject -- http://www.codeproject.com/kb/cpp/exceptionhandler.aspx --- C++の例外処理が構造化例外処理を使ってどのようにVC++で実現されているかの解説 ** 上級:"/SAFESEH"とセキュリティ関連の話題 なぜ"/SAFESEH"を使うべきなのか?それはバッファオーバーフローを使ってスタック上に展開された例外ハンドラのアドレスを書き換える"SEH Overwiting Expoit"という攻撃を防止するためである。しかしロードされる他のモジュールの"/SAFESEH"有無やSoftwareDEPの有効・無効によって回避される場合もあり、万能ではない。 また"/SAFESEH"はx86のみ有効である点も注意が必要である。x64におけるSEHの仕組みについての解説記事へのリンクも載せているので、参照されたい。 - Nothing But Programming - SEH -- http://programming.jugglershu.net/study/seh.html --- セキュリティの観点で SEH, "/SAFESEH" を包括的に解説した記事。アセンブラコードは出てこない。メモリイメージを図で描いてくれているので、分かりやすい。 - Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link) -- http://d.hatena.ne.jp/xna/20091018/1255876308 --- x64でのSEHの仕組みに言及されている包括的な解説記事。 - Exploit writing tutorial part 6 : Bypassing Stack Cookies, SafeSeh, SEHOP, HW DEP and ASLR | Peter Van Eeckhoutte's Blog -- http://www.corelan.be:8800/index.php/2009/09/21/exploit-writing-tutorial-part-6-bypassing-stack-cookies-safeseh-hw-dep-and-aslr/ --- "/GS"オプションによるstack上のcookieチェックをSEH Overwriteで回避するなど、実践的なexploit記事。 #navi_footer|C言語系|