目 次

Windows Sysinternals徹底解説 改訂新版

第1部 はじめに

第1章 Sysinternalsユーティリティの始め方
1.1 Sysinternals ユーティリティの概要
1.2 Windows Sysinternals Web サイト
1.2.1 Sysinternals ユーティリティのダウンロード
1.2.2 live.sysinternals.com からユーティリティを直接実行する
1.2.3 単一の実行可能イメージ
1.2.4 Windows Sysinternals フォーラム
1.2.5 Sysinternals Site Discussion ブログ
1.2.6 Mark Russinovichのブログ:Mark's Blog
1.2.7 Mark RussinovichのWebキャスト:Case-of-the-Unexplained
1.3 Sysinternals のライセンス
1.3.1 ソフトウェアライセンス条項と/accepteula スイッチ
1.3.2 Sysinternalsのライセンスに関するFAQ(よくある質問)

第2章 Windowsのコアの概念を学ぶ
2.1 管理者権限
2.2 プロセス、スレッド、およびジョブ
2.3 ユーザーモードとカーネルモード
2.4 ハンドル
2.5 アプリケーションの分離
2.5.1 アプリコンテナー
2.5.2 保護されたプロセス
2.6 コールスタックとシンボル
2.6.1 コールスタックとは
2.6.2 シンボルとは
2.6.3 シンボルの構成
2.7 セッション、ウィンドウステーション、デスクトップ、ウィンドウメッセージ
2.7.1 リモートデスクトップサービスセッション
2.7.2 ウィンドウステーション
2.7.3 デスクトップ
2.7.4 ウィンドウメッセージ

第2部 リファレンスガイド

第3章 Process Explorer
3.1 Procexp の概要
3.1.1 CPU 消費量の計測
3.1.2 管理者権限
3.2 メインウィンドウ
3.2.1 プロセス一覧
3.2.2 列のカスタマイズ
3.2.3 表示データの保存
3.2.4 ツールバーの説明
3.2.5 プロセスが所有するウィンドウを識別する
3.2.6 ステータスバー
3.3 DLL とハンドル
3.3.1 DLL とハンドルを検索する
3.3.2 DLL ビュー
3.3.3 ハンドルビュー
3.4 プロセスの詳細
3.4.1 [Image]タブ
3.4.2 [Performance]タブ
3.4.3 [Performance Graph]タブ
3.4.4 [GPU Graph]タブ
3.4.5 [Threads]タブ
3.4.6 [TCP/IP]タブ
3.4.7 [Security]タブ
3.4.8 [Environment]タブ
3.4.9 [Strings]タブ
3.4.10 [Services]タブ
3.4.11 .NET 関連タブ
3.4.12 [Job]タブ
3.5 スレッドの詳細
3.6 デジタル署名を検証する
3.7 VirusTotal によるマルウェア検査
3.8 システム情報
3.8.1 [CPU]タブ
3.8.2 [Memory]タブ
3.8.3 [I/O]タブ
3.8.4 [GPU]タブ
3.9 表示オプション
3.10 Procexp をタスクマネージャーの代わりに使用する
3.10.1 Procexp から新しいプロセスを開始する
3.10.2 他のユーザーのセッション
3.11 その他の機能
3.11.1 シャットダウンオプション
3.11.2 コマンドラインオプション
3.11.3 既定の設定を復元する
3.12 キーボードショートカットリファレンス

第4章 Autoruns
4.1 Autoruns の基本
4.1.1 自動開始エントリを無効化または削除する
4.1.2 Autoruns と管理者権限
4.1.3 コード署名を検証する
4.1.4 VirusTotal によるマルウェア検査
4.1.5 関係のないエントリを非表示にする
4.1.6 エントリの詳細情報を取得する
4.1.7 他のユーザーの自動開始エントリを参照する
4.1.8 オフラインシステムのASEP を参照する
4.1.9 フォントを変更する
4.2 自動開始の分類
4.2.1 [Logon]タブ
4.2.2 [Explorer]タブ
4.2.3 [Internet Explorer]タブ
4.2.4 [Scheduled Tasks]タブ
4.2.5 [Services]タブ
4.2.6 [Drivers]タブ
4.2.7 [Codecs]タブ
4.2.8 [Boot Execute]タブ
4.2.9 [Image Hijacks]タブ
4.2.10 [AppInit]タブ
4.2.11 [KnownDLLs]タブ
4.2.12 [Winlogon]タブ
4.2.13 [Winsock Providers]タブ
4.2.14 [Print Monitors]タブ
4.2.15 [LSA Providers]タブ
4.2.16 [Network Providers]タブ
4.2.17 [WMI]タブ
4.2.18 [Sidebar Gadgets]タブ
4.2.19 [Office]タブ
4.3 スキャン結果の保存と比較
4.3.1 タブ区切りテキストに保存する
4.3.2 バイナリ形式(.arn)で保存する
4.3.3 保存した結果を参照および比較する
4.4 コマンドライン版のAutorunsC
4.5 Autoruns とマルウェアの攻防

第5章 Process Monitor
5.1 Procmon を開始する
5.2 イベント
5.2.1 既定の表示列を理解する
5.2.2 列表示をカスタマイズする
5.2.3 イベントプロパティダイアログボックス
5.2.4 プロファイルイベントを表示する
5.2.5 イベントを検索する
5.2.6 イベントデータをコピーする
5.2.7 レジストリまたはファイルの場所を開く
5.2.8 オンラインで検索する
5.3 フィルター表示、強調表示、ブックマーク
5.3.1 フィルターを設定する
5.3.2 強調表示を設定する
5.3.3 ブックマークを付ける
5.3.4 詳細出力オプション
5.3.5 再利用のためにフィルターを保存する
5.4 プロセスツリー
5.5 Procmonトレースを保存する、開く
5.5.1 Procmon トレースを保存する
5.5.2 Procmon のXML スキーマ
5.5.3 保存されたProcmon トレースを開く
5.6 ブート時、ログオフ後、シャットダウン時のアクティビティを記録する
5.6.1 ブートログを取得する
5.6.2 ログオフ後もProcmon を実行し続ける方法
5.7 長時間トレースとログサイズの制御
5.7.1 フィルターされたイベントを破棄する
5.7.2 履歴の深さ
5.7.3 バッキングファイル
5.8 設定のインポートとエクスポート
5.9 Procmonの自動化:コマンドラインオプション
5.10 分析ツール
5.10.1 プロセスアクティビティの概要(Process Activity Summary)
5.10.2 ファイルの概要(File Summary)
5.10.3 レジストリの概要(Registry Summary)
5.10.4 スタックの概要(Stack Summary)
5.10.5 ネットワークの概要(Network Summary)
5.10.6 相互参照の概要(Cross Reference Summary)
5.10.7 値の出現回数(Count Values Occurrences)
5.11 Procmon トレースにカスタムデバッグ出力を挿入する
5.12 ツールバーリファレンス

第6章 ProcDump
6.1 ProcDump のコマンドライン構文
6.2 監視対象のプロセスを指定する
6.2.1 既存のプロセスにアタッチする
6.2.2 対象のプロセスを起動する
6.2.3  ユニバーサルWindows プラットフォーム(UWP)アプリを監視する
6.2.4 AeDebug デバッガー登録によるデバッグの自動有効化
6.3 ダンプファイルのパスを指定する
6.4 ダンプ取得条件を指定する
6.5 例外を監視する
6.6 ダンプファイルのオプション
6.7 ミニプラス(Miniplus)ダンプ
6.8 ProcDump とProcmon、一緒に使うとさらに強力
6.9 ProcDump を非対話的に実行する
6.10 デバッガーでダンプを参照する

第7章 PsTools
7.1 共通の機能
7.1.1 リモート操作
7.1.2 PsTools のリモート接続に関するトラブルシューティング
7.2 PsExec
7.2.1 リモートプロセスの終了
7.2.2 コンソール出力のリダイレクト
7.2.3 PsExec における別の資格情報
7.2.4 PsExec のコマンドラインオプション
7.2.5 プロセスのパフォーマンスオプション
7.2.6 リモート接続のオプション
7.2.7 実行環境のオプション
7.3 PsFile
7.4 PsGetSid
7.5 PsInfo
7.6 PsKill
7.7 PsList
7.8 PsLoggedOn
7.9 PsLogList
7.10 PsPasswd
7.11 PsService
7.11.1 Query コマンド
7.11.2 Config コマンド
7.11.3 Depend コマンド
7.11.4 Security コマンド
7.11.5 Find コマンド
7.11.6 SetConfig コマンド
7.11.7 Start、Stop、Restart、Pause、Continue コマンド
7.12 PsShutdown
7.13 PsSuspend
7.14 PsTools のコマンドライン構文
7.15 PsTools のシステム要件

第8章 プロセスと診断のユーティリティ
8.1 VMMap
8.1.1 VMMap を開始してプロセスを選択する
8.1.2 VMMap ウィンドウ
8.1.3 メモリの種類
8.1.4 メモリの情報
8.1.5 タイムラインとスナップショット
8.1.6 メモリ領域内のテキストを参照する
8.1.7 テキストの検索とコピー
8.1.8 インストルメント化されたプロセスのメモリ割り当てを参照する
8.1.9 アドレス空間の断片化
8.1.10 スナップショットの保存と読み込み
8.1.11 VMMap のコマンドラインオプション
8.1.12 VMMap の既定の設定を復元する
8.2 DebugView
8.2.1 デバッグ出力とは
8.2.2 DebugView の表示
8.2.3 ユーザーモードのデバッグ出力のキャプチャ
8.2.4 カーネルモードのデバッグ出力のキャプチャ
8.2.5 デバッグ出力の検索、フィルター、および強調表示
8.2.6 デバッグ出力の保存、ログ記録、および印刷
8.2.7 リモート監視
8.3 LiveKd
8.3.1 LiveKd のシステム要件
8.3.2 LiveKd を実行する
8.3.3 カーネルデバッガーのターゲットの種類
8.3.4 デバッガーまたはダンプファイルへの出力
8.3.5 ダンプに含まれる内容
8.3.6 Hyper-V ゲストのデバッグ
8.3.7 シンボルの詳細情報
8.3.8 LiveKd の実行例
8.4 ListDLLs
8.5 Handle
8.5.1 ハンドルの一覧表示と検索
8.5.2 ハンドル数のカウント
8.5.3 ハンドルを閉じる

第9章 セキュリティのユーティリティ
9.1 SigCheck
9.1.1 スキャン対象のファイル
9.1.2 署名の検証
9.1.3 VirusTotal によるマルウェア検査
9.1.4 追加的なファイル情報
9.1.5 出力形式
9.1.6 その他のパラメーター
9.2 AccessChk
9.2.1 「有効なアクセス許可」とは
9.2.2 AccessChk の使用法
9.2.3 オブジェクトの種類
9.2.4 アクセス権の検索
9.2.5 出力オプション
9.3 Sysmon
9.3.1 Sysmon によって記録されるイベント
9.3.2 Sysmon のインストールと構成
9.3.3 Sysmon イベントデータの抽出
9.4 AccessEnum
9.5 ShareEnum
9.6 ShellRunAs
9.7 Autologon
9.8 LogonSessions
9.9 SDelete
9.9.1 SDelete の使用法
9.9.2 SDelete の仕組み

第10章 Active Directoryのユーティリティ
10.1 AdExplorer
10.1.1 ドメインに接続する
10.1.2 AdExplorer の表示
10.1.3 オブジェクト
10.1.4 オブジェクトの属性
10.1.5 オブジェクトの検索
10.1.6 スナップショットの保存、参照、比較
10.1.7 AdExplorer の構成の保存先
10.2 AdInsight
10.2.1 AdInsight によるデータのキャプチャ
10.2.2 表示オプション
10.2.3 関心のある情報を見つけるには
10.2.4 イベントをフィルターする
10.2.5 AdInsight データの保存とエクスポート
10.2.6 AdInsight のコマンドラインオプション
10.3 AdRestore

第11章 デスクトップのユーティリティ
11.1 BgInfo
11.1.1 表示データを構成する
11.1.2 外観のオプション
11.1.3 BgInfo の構成を再利用のために保存する
11.1.4 そのほかの出力オプション
11.1.5 他のデスクトップを更新する
11.2 Desktops
11.3 ZoomIt
11.3.1 ZoomIt の使用法
11.3.2 ズームモード(Zoom)
11.3.3 描画モード(Draw)
11.3.4 タイプモード(Type)
11.3.5 ブレークタイマー(Break Timer)
11.3.6 ライブズーム(LiveZoom)

第12章 ファイルのユーティリティ
12.1 Strings
12.2 Streams
12.3 NTFS リンクのためのユーティリティ
12.3.1 Junction
12.3.2 FindLinks
12.4 Disk Usage(DU)
12.5 再起動後のファイル操作のためのユーティリティ
12.5.1 PendMoves
12.5.2 MoveFile

第13章 ディスクのユーティリティ
13.1 Disk2Vhd
13.2 Sync
13.3 DiskView
13.4 Contig
13.4.1 既存のファイルを最適化する
13.4.2 既存のファイルの断片化状態を分析する
13.4.3 空き領域の断片化状態を分析する
13.4.4 連続したブロックにファイルを作成する
13.5 DiskExt
13.6 LDMDump
13.7 VolumeID

第14章 ネットワークと通信のユーティリティ
14.1 PsPing
14.1.1 ICMP Ping
14.1.2 TCP Ping
14.1.3 PsPing サーバーモード
14.1.4 TCP/UDP レイテンシテスト
14.1.5 TCP/UDP 帯域幅テスト
14.1.6 PsPing のヒストグラム
14.2 TCPView
14.3 Whois

第15章 システム情報のユーティリティ
15.1 RAMMap
15.1.1 [Use Counts]タブ
15.1.2 [Processes]タブ
15.1.3 [Priority Summary]タブ
15.1.4 [Physical Pages]タブ
15.1.5 [Physical Ranges]タブ
15.1.6 [File Summary]タブ
15.1.7 [File Details]タブ
15.1.8 物理メモリのパージ(消去)
15.1.9 スナップショットの保存と読み込み
15.2 Registry Usage(RU)
15.3 CoreInfo
15.3.1 コア情報のダンプ(-c)
15.3.2 プロセッサ機能情報のダンプ(-f)
15.3.3 プロセッサグループ情報のダンプ(-g)
15.3.4 キャッシュ情報のダンプ(-l)
15.3.5 NUMA アクセスコストのダンプ(-m)
15.3.6 NUMA ノード情報のダンプ(-n)
15.3.7 ソケット情報のダンプ(-s)
15.3.8 仮想化関連機能のダンプ(-v)
15.4 WinObj
15.5 LoadOrder(LoadOrd)
15.6 PipeList
15.7 ClockRes

第16章 その他のユーティリティ
16.1 RegJump
16.2 Hex2Dec
16.3 RegDelNull
16.4 Bluescreen Screen Saver
16.5 Ctrl2Cap

第3部  トラブルシューティング―“原因不明の…の問題”

第17章 エラーメッセージ
17.1 エラーメッセージのトラブルシューティング
17.2 「使用中のフォルダー」エラー
17.3 「使用中のファイル」エラー
17.4 Windowsフォトビューアーの「不明なエラー」
17.5 ActiveX コントロールの登録失敗エラー
17.6 Windows Media Player のリモート再生失敗エラー
17.7 原因不明のエラーでインストールに失敗する問題
17.7.1 トラブルシューティング
17.7.2 根本原因の分析
17.8 テキストファイルの読み取りに失敗する問題
17.9 フォルダーの関連付けが失われる問題
17.10 一時的なレジストリプロファイルが作成される問題
17.11 RMS で保護されたドキュメントを開けない問題
17.12 フォレスト機能レベルの昇格に失敗する問題

第18章 クラッシュ
18.1 クラッシュのトラブルシューティング
18.2 ウイルス対策ソフトの更新後に起動不能になる問題
18.3 Proksi ユーティリティがクラッシュする問題
18.4 Network Location Awarenessサービスの開始が失敗する問題
18.5 EMET のアップグレードが失敗する問題
18.6 クラッシュダンプが作成されない問題
18.7 コンピューターが時々遅くなる問題

第19章 ハングアップとパフォーマンスの低下
19.1 ハングアップとパフォーマンスの低下のトラブルシューティング
19.2 iexploreプロセスのCPU 使用率が100% に張り付く問題
19.3 暴走するWeb サイトの問題
19.4 過剰なReadyBoost の問題
19.5 再生が途切れるブルーレイプレーヤーの問題
19.6 ログオンに15 分かかる会社の問題
19.7 ハングするPayPal の電子メールの問題
19.8 ハングする会計ソフトの問題
19.9 基調講演のデモ準備中に発生した遅延の問題
19.10 Project ファイルを開くのに時間がかかる問題
19.11 Outlook がハング状態になる複合的な問題

第20章 マルウェア
20.1 マルウェアのトラブルシューティング
20.2 Stuxnet(スタックスネット)の解析
20.2.1 マルウェアとSysinternals ユーティリティ
20.2.2 Stuxnet の感染経路
20.2.3 Windows XP上でのStuxnet の動作
20.2.4 さらに詳しく調査する
20.2.5 フィルターを使って関連するイベントを見つける
20.2.6 Stuxnet によるシステムの変更
20.2.7 PNF ファイルの目的
20.2.8 Windows 7 における特権の昇格
20.2.9 Sysinternalsユーティリティが明らかにしたStuxnet の挙動
20.3 奇妙な再起動の謎
20.4 偽のJava 更新ツール
20.5 Winwebsec スケアウェアの解析
20.6 暴走するGPU の問題
20.7 説明できないFTP 接続の問題
20.8 間違った構成のサービスが示したマルウェアの痕跡
20.9 Sysinternals ユーティリティをブロックするマルウェア
20.10 新しいプロセスを強制終了するマルウェア
20.11 システムコンポーネントを装うマルウェア
20.12 感染システムに見つかったミステリアスなASEP

第21章 システムの挙動を調査する
21.1 Q: ドライブの謎
21.2 数秒ごとに繰り返されるネットワーク接続の理由
21.3 短い定期タスクの繰り返しがシステムに与える影響を調査する
21.4 アプリの正常なインストールを記録して、
インストーラーの問題を回避する
21.5 NTLM 認証の使用制限の影響を事前に調査する

第22章 ソフトウェア開発におけるトラブルシューティング
22.1 突然動かなくなったKerberos 委任の問題
22.2 ProcDump v5 の開発中に発生したメモリリークの問題