home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

読書メモ/"Advanced Windows Debugging"

読書メモ/"Advanced Windows Debugging"

読書メモ / "Advanced Windows Debugging"
id: 917 所有者: msakamoto-sf    作成日: 2011-02-12 16:17:01
カテゴリ: C言語 WinDBG Windows セキュリティ プログラミング 読書 

Amazonや公式サポートHPへのリンクは下記エントリを参照:

Windows SDK や Windows Driver Kit (WDK) にもれなく付いてくる"Debugging Tools for Windows"を中心に、MS社謹製の各種デバッグ・解析支援ツールを駆使したWindowsアプリのデバッグ方法を詳しく解説してくれている。

主な構成:

  • Part1 : 各種ツールの紹介、WinDBGのイロハ、Debug系APIとデバッガの内部構造、シンボルファイルの取扱とビルド・リリースサイクルとの連携
  • Part2 : 主なデバッグ場面・カテゴリ毎に基本的な手法や各種ツールを使った効率化などが紹介されている。スタック、ヒープ、セキュリティ、COMやRPC、メモリやハンドルなどのリーク、同期処理などを扱っている。
  • Part3 : WinDBGの拡張機能を使って独自機能を追加する方法、64bit環境の特色、ダンプファイルの取得、DebugDiagや"!analyze"コマンドの紹介、Windows Vistaにおける注意点

Windows用のデバッガは他にもOllyDbgやImmunityDebugger, IDA Proなどあるが、MS社謹製である点、Windowsカーネルに特化したショートカットコマンドが充実している点、さらに64bitにも対応している点から、"Debugging Tools for Windows"は是非とも道具箱に入れておきたい。
しかしWindowsカーネルすらデバッグできるツールである以上、公式ヘルプドキュメントの量は詳細にして膨大であり、コマンドも多すぎる。その都度Web上で検索して使い方を学んでいこうとすると、どうしても継ぎ接ぎや付け焼刃の知識になり不安が残る。
"Advanced Windows Debugging"はWinDBGや各種ツールを効率的に活用していくための、体系的かつ「王道」なテクニック・ノウハウが詰め込まれているので、一読に値する内容となっている。ひと通り体に染み込ませた後なら、ヘルプドキュメントを開いてその分量に圧倒されること無く、目的の機能を調べることが出来るようになっているだろう。

なお、Windows XP SP2公開 - Windows Vista 発売位迄を対象としているため、WinXP SP3での変更点やWindows7まではフォローしきれていない点に注意が必要。またPart1, Part2ともに32bitOSでの解説となっている点も留意しておくべき。


以下、読んでて「へぇ~~へぇ~~」ボタンを押したくなったページのピンポイントメモ。

Start up Windows OS with Kernel Debug Options
p38, boot.ini, bootcfg.exe
Overview of Private/Public Symbols
p50-51
Symbol reloading, lm command, Validating Symbols
p57-
Debug Event -> stop "All Threads" in debugged process
p125 "Debugger Loop"
Event Handling Alias and Command Line Settings
p135-p140
dump PE headers -> "!dh" generic extension command
p60
Overview of (Structured) Exception Handling
p151-159
HowTo Debug EXE Loading Process ? (with kernel debug)
p166
Remarks & Cautions for Kernel Mode Breakpoints
p169
Suspend/Freeze other threads in event handling
p173-
Mysterious "mov edi, edi" in Function Prolog
p221
What is "deadf00d" ? ("deadf01d", "deadf02d", ...)
p284
"ABCDAAAA", "ABCDBBBB", "DCBABBBB", ... in Heap
p293
Internal Lock Cautions about DllMain, dll loading problems
p529

プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2011-04-02 16:21:32
md5:7596244bc37bf24bd8e7918741454851
sha1:5f1a9e2bccb77eabc74edc184606ab72cd76ade2
コメント
コメントを投稿するにはログインして下さい。