Submit Search
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
3 likes
1,262 views
TAKUYA OHTA
de:code 2019 で登壇した「ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!」の資料になります。
Software
Read more
1 of 37
Download now
Downloaded 18 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Most read
26
27
28
29
30
31
Most read
32
33
34
35
36
37
Most read
More Related Content
PDF
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
PDF
ソフトウェア構成管理入門
智治 長沢
PDF
L2延伸を利用したクラウド移行とクラウド活用術
富士通クラウドテクノロジーズ株式会社
PDF
Amazon redshiftのご紹介
Amazon Web Services Japan
ODP
Guide To AGPL
Mikiya Okuno
PDF
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
TAKUYA OHTA
PPTX
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
PDF
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
Amazon Redshift 概要 (20分版)
Amazon Web Services Japan
ソフトウェア構成管理入門
智治 長沢
L2延伸を利用したクラウド移行とクラウド活用術
富士通クラウドテクノロジーズ株式会社
Amazon redshiftのご紹介
Amazon Web Services Japan
Guide To AGPL
Mikiya Okuno
IT エンジニアのための 流し読み Windows 10 - Microsoft Defender ウイルス対策
TAKUYA OHTA
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
What's hot
(20)
PPTX
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!
TAKUYA OHTA
PPTX
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
PPTX
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
PDF
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
Genki WATANABE
PPTX
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
NTT DATA Technology & Innovation
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Keisuke Takahashi
PDF
20180703 AWS Black Belt Online Seminar Amazon Neptune
Amazon Web Services Japan
PDF
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
PDF
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
TAKUYA OHTA
PPTX
画像ベース異常検知Amazon Lookout for Visionを使ってみよう
TakanoriTsutsui
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
PPTX
グラフデータベース入門
Masaya Dake
PPTX
脱 Excel設計書
rai
PDF
そんなトランザクションマネージャで大丈夫か?
takezoe
PDF
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
PDF
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
PPT
SQLインジェクション再考
Hiroshi Tokumaru
[SCCM 友の会] System Center Configuration Manager この秋おさえておきたい最新機能!
TAKUYA OHTA
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
第34回Office 365勉強会 : Microsoftサポート活用術 ~ Microsoft Azureを中心に ~
Genki WATANABE
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
NTT DATA Technology & Innovation
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Keisuke Takahashi
20180703 AWS Black Belt Online Seminar Amazon Neptune
Amazon Web Services Japan
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
IT エンジニアのための 流し読み Windows - Windows のライセンス認証 & サブスクリプションのライセンス認証
TAKUYA OHTA
画像ベース異常検知Amazon Lookout for Visionを使ってみよう
TakanoriTsutsui
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
グラフデータベース入門
Masaya Dake
脱 Excel設計書
rai
そんなトランザクションマネージャで大丈夫か?
takezoe
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
ドメイン駆動設計に15年取り組んでわかったこと
増田 亨
SQLインジェクション再考
Hiroshi Tokumaru
Ad
More from TAKUYA OHTA
(20)
PDF
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
TAKUYA OHTA
PDF
Microsoft デスクトップ仮想化ソリューション比較
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
TAKUYA OHTA
PDF
IT エンジニアのための 流し読み Windows 10 - 入門!Windows Server Update Services (WSUS)
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Microsoft Defender Exploit Guard
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 共有 PC モード
TAKUYA OHTA
IT エンジニアのための 流し読み M365 - Microsoft Defender for Endpoint 概要
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Microsoft Defender ウイルス対策
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 11 SE アプリケーションの管理
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 11 SE おさえておきたい 8 のポイント
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 11 のクリーン インストール
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 11 へのアップグレード
TAKUYA OHTA
Microsoft デスクトップ仮想化ソリューション比較
TAKUYA OHTA
IT エンジニアのための 流し読み Windows - Windows 365 ってどんな感じ? - せっかちなあなたへ編 -
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - IE11 のサポート終了と Microsoft Edge について
TAKUYA OHTA
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender for Endpoint クロスプラットフ...
TAKUYA OHTA
IT エンジニアのための 流し読み Microsoft 365 - 入門!Microsoft Defender ATP
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - 超概要!Windows Defender シリーズ
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Windows サンドボックス
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Windows 10 サブスクリプションのライセンス認証
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
TAKUYA OHTA
IT エンジニアのための 流し読み Windows 10 - 入門!Windows Server Update Services (WSUS)
TAKUYA OHTA
Ad
ハードコア デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!!
1.
de:code 2019 CM10 ハードコア
デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!! 日本マイクロソフト 太田 卓也 日本マイクロソフト Jesse Swearengin 日本マイクロソフト 冷 春亮
2.
ここでいうデバッギングとは? 問題発生時のメモリ上のデータをデバッガーで解析 OS の知識 CPU の知識 関連ツール プログラミング
3.
本日お持ち帰りいただきたい知識 ジェシー デバッグ歴 5 年 カーネル
モード デバッグの知識 レン JavaScript を利用した デバッグの効率化 デバッグ歴 20 年
4.
de:code 2019 CM10 カーネル
モード デバッグの力を知ろう! 日本マイクロソフト カスタマー サービス & サポート サポート エンジニア Jesse Swearengin (ジェシー)
5.
これまでのシナリオ アプリでエラーが発生! ダンプ解析 ユーザーモード デバッグ Time Travel Debugging トレース解析 問題解決! アプリ
6.
これまでのシナリオ 反応すらしない・・・ アプリ どうやって調べれば・・・?
7.
アプリ サービス ユーザーモード カーネルモード ハードウェア カーネル モジュールなど 「カーネルモードデバッグ」
なら可能です! アプリ
8.
カーネル モード デバッグの力を知ろう! 1.
こんなときこそカーネルモードデバッグ! 2. デバッグ環境を作ってみよう! 3. 問題解決をしてみよう!
9.
こんなときこそカーネルモードデバッグ! アプリ 他のアプリ・プロセスに処理を依頼し、 その処理の中で発生した問題カーネル別アプリ パターン ③ そもそも対象のアプリ・プロセスを デバッグできないような状態アプリ パターン ① アプリ カーネル Windows カーネルに処理が 行き渡った中で発生した問題 パターン ②
10.
カーネル モード デバッグの力を知ろう! 1.
こんなときこそカーネルモードデバッグ! 2. デバッグ環境を作ってみよう! 3. 問題解決をしてみよう!
11.
カーネルモードデバッグの接続 ホスト ターゲット デバッグケーブル (シリアル、USB、1394)
12.
カーネルモードデバッグの接続 ホスト ターゲット 仮想マシン ネットワーク接続 (KDNET)
13.
Hyper-V 環境 作成 ターゲットに KDNET.exe を コピー&実行 ターゲット 再起動 WinDbg 接続 カーネルモードデバッグのセットアップ
(KDNET)
14.
カーネル モード デバッグの力を知ろう! 1.
こんなときこそカーネルモードデバッグ! 2. デバッグ環境を作ってみよう! 3. 問題解決をしてみよう!
15.
カーネルモードデバッグ実践 環境情報ログアプリのハングを突き止めろ!
16.
カーネルモードデバッグ実践 : 今回の構成 ホスト WinDBG 仮想マシン ContosoApp ネットワーク接続 (KDNET)
17.
カーネルモードデバッグ実践 – 概要図 ContosoApp
svchost.exe (WMI ホスト) WmiPrvSE.exe (WMI プロバイダ) ユーザーモード ALPC ALPC FLTMGR.SYS カーネルモード ContosoDrv.sys 登録関数 呼び出し I/O 要求
18.
知っていると良いコマンド 最低限知っておくべき ドライバー関連 カーネル オブジェクト関連 メモリ利用状況関連 検証関連 ※ Mex
も Kernel Debug 用のコマンドあります! !mex.tl, !mex.obj, !mex.fep, …
19.
リファレンス https://docs.microsoft.com/ja-jp/windows-hardware/drivers/debugger/setting-up-kernel-mode-debugging-in-windbg--cdb--or-ntsd https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/kernel-mode-extensions https://blogs.msdn.microsoft.com/ntdebugging/ https://blogs.msdn.microsoft.com/jpwdkblog/ https://blogs.technet.microsoft.com/askcorejp/2018/01/19/デスクトップ-ヒープの枯渇/ https://www.codemachine.com/article_x64deepdive.html https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/writing-preoperation-callback-routines
20.
Call to Action
! Step 1 Prepare Step 2 Learn Step 3 Apply
21.
de:code 2019 CM10 JavaScript
でデバッグ作業を自動化 日本マイクロソフト カスタマー サービス & サポート シニア エスカレーション エンジニア 冷 春亮
22.
デバッガ エクステンションを作れば良いが・・・ ※ デバッガ
エクステンションとは 拡張コマンドが含まれているモジュール 複数の複雑なコマンドや、たくさんのオブジェクトに対して実行する場合に利用 Visual Studio Debugger SDK ちょっと作るのにハードル高い・・・
23.
そこで・・・ JavaScript ビルド不要!ドキュメント多数!サンプル豊富! ※ 私は JavaScript
得意ではありません・・・
24.
Demo : ウォーミングアップ CPU
使用率 Top 5 を調べよう!
25.
こんな感じで作ってみます! ① 名前空間を調べる デバッガーのコマンド ② デバッガ
API を調べる Host APIs for JavaScript Extensions ③ スクリプトを書く Docs のサイト JavaScript のドキュメント GitHubのサンプル ※ 後ほど資料で共有します kd> dx Debugger
26.
デバッガの API の例 host.getModuleSymbolAddress(“module”,
“GlobalVariableName”); グローバル変数のアドレスを取得 host.diagnostics.debugLog(“Hello World”); デバッグログを出力 host.namespace.Debugger.Utility.Control.ExecuteCommand(“vertarget”); デバッガ コマンドを実行 host.currentSession.Processes[PID].Threads[TID].SwitchTo(); 特定のプロセス・スレッド・フレームのコンテキストに切り替え
27.
不正な実装をもつドライバーが存在する可能性 From alert to
driver vulnerability: Microsoft Defender ATP investigation unearths privilege escalation flaw https://www.microsoft.com/security/blog/2019/03/25/from-alert-to-driver-vulnerability-microsoft-defender-atp-investigation-unearths-privilege-escalation-flaw/ マルウェアでよく使われるコード インジェクション Kernel lsass.exe ZwAllocateVirtualMemory Victim Thread memcpy KeInsertQueueApc Userland shellcode RWX
28.
ミッション: 以下の 2
つの JavaScript を作って自動実行! ◼ ZwAllocateVirtualMemory ◼ KeInsertQueueApc 上記スクリプトをダンプに自動実行する!CMD
29.
SearchImports.js のおさらい host.currentSession.Processes[4].Modules; system プロセスのすべてのモジュールを取得 ExecuteCommand("!dh
" + strModBaseAddr); 個々のモジュールに対して !dh コマンドを実行 search("Import Address Table Directory"); 出力結果からImport Address Table の場所を探す ExecuteCommand(“dps ” + IAT開始アドレス + IAT 終了アドレス); dps コマンドでImport Address Tableをダンプ search(“nt!KeInsertQueueApc”); search("nt!ZwAllocateVirtualMemory"); ダンプの結果に関数名の文字列を探す
30.
ミッション: 以下の 2
つの JavaScript を作って自動実行! ◼ ZwAllocateVirtualMemory ◼ KeInsertQueueApc 上記スクリプトをダンプに自動実行する!CMD
31.
.scriptrun SearchImports.js .scriptrun CreateProcessCallback.js q TXT C:¥>
Autodebug.cmd C:¥data¥memory.dmpCMD kd.exe -z %1 -c "$$><C:¥js¥myscript.txt" > %1.myscript_result.txt BAT ダンプ解析の自動実行
32.
ミッション: 以下の 2
つの JavaScript を作って自動実行! ◼ ZwAllocateVirtualMemory ◼ KeInsertQueueApc 上記スクリプトをダンプに自動実行する!CMD
33.
まとめ - JavaScript
利用のメリット 開発が簡単! デバッガが用意したデータにアクセス可能! API 以外にも既存のコマンドを活用!
34.
de:code 2019 CM10 ハードコア
デバッギング : サポート直伝! Windows カーネルモード デバッグ活用編!! 1. 事務連絡 2. 本セッション情報まとめ
35.
本日の資料 http://aka.ms/cm10 ✓使用したスライド ✓デモで使用したファイル ✓デモ動画 ✓過去のセッションのリンク Information de:code 2019 本セッションの資料!- フライング公開!!
36.
デバッグ作業での 繰り返し処理の自動化 ユーザーモードデバッグのみで 解決できない時の場合 カーネル モードデバッグの知識 JavaScript での効率化 本日の資料 http://aka.ms/cm10 本セッションのまとめ
37.
© 2018 Microsoft
Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2019 Microsoft Corporation. All rights reserved. 本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。
Download