WinDbg MCP 概述

本文將協助你了解 WinDbg MCP 的運作方式,並根據客戶端支援以及安全性與隱私考量決定是否使用。 WinDbg MCP 使用模型上下文協定(MCP)將支援的 AI 用戶端連接到活躍的 WinDbg 會話,讓用戶端在分析時可以使用除錯工具與上下文。

你可以利用此連線調查除錯目標,同時在 WinDbg 中審查 AI 發起的除錯器動作。 AI 產生的結果並不具權威性。 對照 WinDbg 中的輸出結果,驗證發現、證據、假設、目標狀態與指令。

WinDbg MCP 的運作方式

WinDbg MCP 在 AI 用戶端與 WinDbg 中的 MCP 伺服器之間使用本地代理。 該連接具有以下架構:

圖示顯示 AI 模型服務透過 AI 客戶端與代理伺服器到 WinDbg MCP 伺服器的雙向連線。

圖中採用緊湊的階梯式佈局來顯示雙向連接。 AI 模型服務與 AI 客戶端會交換 AI 請求與回應。 AI 客戶端和 DbgX.Mcp.Proxy.exe Stdio MCP 通訊。 DbgX.Mcp.Proxy.exe 和 WinDbg MCP 伺服器透過本機每個處理程序專用的命名管道進行通訊。 WinDbg MCP 伺服器提供工具、提示與資源。

每個 WinDbg 工作階段都使用一個本機、每個處理序各自的具名管道。 DbgX.Mcp.Proxy.exe 透過標準輸入與輸出與 AI 用戶端溝通,並將用戶端連接到一個選定的 WinDbg 會話。

AI 用戶端可將除錯上下文傳送至其配置的模型服務,作為 AI 請求與回應的一部分。 你仍掌控除錯會話,並可在 WinDbg 中檢視 AI 發起的除錯器動作。

用戶端支援與工作階段限制

WinDbg MCP 支援以下 AI 用戶端:

  • Visual Studio Code 與 GitHub Copilot
  • GitHub Copilot 命令列界面 (CLI)

其他相容 MCP 的 AI 用戶端可能會以盡力而為的方式進行自訂設定,但 WinDbg 並未正式支援這些用戶端。 只有在確認自訂客戶端的 MCP 功能和安全控制符合貴組織需求後,才使用自訂客戶端。

同一時間只能有一個作用中的 MCP 用戶端連線到 WinDbg 工作階段。 獨立的 WinDbg 會話使用不同的本地命名管線。 在受限環境中,組織政策可以隱藏或停用 MCP 控制項。

WinDbg MCP 工具與提示

WinDbg MCP 提供連線工具、除錯工具及內建提示。 WinDbg 中的 安裝 MCP 動作會向所選的 AI 用戶端將 WinDbg 註冊為 MCP 伺服器。 代理連接到 WinDbg 會話後,AI 用戶端會自動選擇適當的工具。

請使用以下連接工具來尋找並選擇 WinDbg 會話:

連接工具 Purpose
list_sessions 列出具有活躍 MCP 服務的 WinDbg 會話,並報告每個會話是否可用。
connect_session 依程序 ID 將代理程式連線至 WinDbg 工作階段。
disconnect_session 將 Proxy 從目前的 WinDbg 工作階段中斷開。

連線後,請 AI 客戶端使用 WinDbg MCP 來:

  • 檢查或控制除錯目標。
  • 執行 WinDbg 指令。
  • 檢視診斷與原始碼。
  • 將除錯器資料視覺化。
  • 建立分析腳本。

使用內建的 WinDbg MCP 提示

若 AI 用戶端支援 MCP 提示,請選擇內建提示開始引導除錯工作流程。

內建提示 Purpose
investigate_symbol_loading_issues 診斷符號載入問題。
write_extension 建立 WinDbg JavaScript 擴充功能。
create_graph 將除錯器資料視覺化為圖表。
configure_ttd 設定 Time Travel Debugging 工作流程。

使用 WinDbg MCP 來除錯

以下提示提供支援除錯情境的起點:

情境 範例提示
找出當機傾印的根本原因 分析這個傾印檔,提供可能的根本原因、支持證據和剩餘的假設。
調查即時目標 「檢查目標狀態,必要時中斷,並檢查呼叫堆疊和模組是否有故障訊號。」
修正符號檔或來源載入 「利用日誌和指令歷史來找出符號或原始碼無法正確載入的原因,並建議解決方法。」
分析時間旅行除錯追蹤記錄 「分析這條TTD痕跡,找出關鍵的轉移點、證據及可能的分歧點。」
視覺化除錯器查詢結果 「查詢並將此除錯器資料模型輸出呈現為樹狀、網格或圖形。」
將可重複的分析自動化 「建立並驗證一個自動化分析工作流程的腳本。」

在採取行動前,先將 AI 客戶端的結果與目標狀態及可視除錯器的輸出做比較。

WinDbg MCP 的安全與隱私考量

在使用 WinDbg MCP 之前,先評估目標、其資料、所選 AI 用戶端以及已設定的模型服務。 請遵循以下所有指引:

  • 授權使用: 僅可將 WinDbg MCP 用於你有權限檢查的目標和資料。 遵循貴組織的人工智慧、安全、隱私及資料處理政策。
  • 傳送給 AI 服務的資料: AI 用戶端可以將除錯器上下文傳送給其設定的模型服務。 確認您的組織已批准目標資源及其資料可搭配所選用戶端和模型服務使用。
  • 診斷日誌: MCP 診斷日誌可包含除錯指令與目標資料。 依照貴組織政策,將這些日誌儲存、分享並作為敏感資料保存。
  • 人工智慧驗證: 將 AI 輸出視為調查提案,而非最終結果。 在採取行動前,先將輸出與 WinDbg 中可見的資訊比對驗證。
  • 管理員控制: 組織可以透過啟用 WinDbg 限制模式 來停用 WinDbg MCP。 管理員透過設定 EnableRestrictedMode 為 1來設定限制模式。 更改此設定後重新啟動 WinDbg。 限制模式除了影響 MCP 外,還影響其他 WinDbg 功能。

安全模式

安全模式限制除錯器功能,以降低載入或執行不受信任程式碼、啟動程序或執行不安全檔案操作的風險。 它會阻擋高風險指令,例如 .shell。 預設情況下,當 MCP 伺服器啟動時,安全模式會啟動。

要設定 MCP 伺服器是否預設啟用安全模式,請在 WinDbg 中選擇 檔案>設定>MCP 服務設定,然後選擇或清除 為 MCP 伺服器啟用安全模式。

安全模式的行為取決於你是否選擇設定,以及你是在連接目標之前還是之後啟動 MCP 服務:

  • 完整安全模式: 在連接到目標之前啟動 MCP 服務,並保持選取 當 MCP 伺服器啟動時啟用安全模式。
  • 部分安全模式: 如果你在啟動 MCP 服務時已經連接到目標,WinDbg 會進入部分安全模式並顯示警告。 若要啟用完整安全模式,重新啟動 WinDbg,啟動 MCP 服務,然後連接到目標。
  • 沒有安全模式: 在確認對話框中,清除 當 MCP 伺服器啟動時啟用安全模式,然後選擇 是 以確認選擇。

在確認對話框中清除或選取核取方塊,也會更新檔案>設定>MCP 服務設定>啟用 MCP 伺服器的安全模式。 因此,對話框選擇會成為未來 MCP 啟動時的預設選項。

安全模式啟用後,你無法關閉它,且它會持續運作直到你重新啟動 WinDBG。 停止 MCP 服務並不會將其停用。 重新啟動 WinDbg 後,如果你想在不使用安全模式的情況下使用 MCP,請取消勾選 在 MCP 伺服器啟動時啟用安全模式。

欲了解更多資訊,請參閱 安全模式的功能。

Warning

在未啟用安全模式時,AI 客戶端直接執行的指令仍受限制,但間接動作則不受此限制。 舉例來說,如果 AI 用戶端設定一個斷點來執行一個指令,當斷點被觸發時,該指令會以你的全部權限執行。

關閉交叉提示注入保護並不會關閉安全模式。

請安全使用腳本和擴充功能

WinDbg MCP 可以幫助你建立或修改除錯腳本和 WinDbg JavaScript 擴充功能。 這些建議適用於所有腳本與擴充功能,無論是 AI 生成、由您的團隊開發,或由第三方廠商提供。 將產生或修改的程式碼視為來自其他不受信任來源的程式碼。 在載入或執行它之前,尤其是在除錯客戶環境或敏感目標時,務必先審查並核准它。

在使用任何腳本或擴充功能之前,請先應用以下建議:

  1. 請檢視程式碼: 當原始碼可用時,請先檢視程式碼。 否則,請核實發行商、數位簽名、下載來源、版本、相依性及文件記載的行為。
  2. 了解信任界限: WinDbg 擴充功能可在除錯器程序中執行程式碼並存取除錯資料。 安全模式限制某些操作,但它不會驗證、進行沙箱隔離,或對擴充功能建立信任。
  3. 安全地測試: 在隔離環境中使用非敏感目標進行測試。 在測試中包含格式異常或意外的除錯器資料、故障處理及資源使用。
  4. 使用最低權限: 除非除錯情境需要提升權限,否則請不使用管理員權限執行 WinDbg。
  5. 保護客戶資料: 確認程式碼不會將記憶體、原始碼、符號、檔案路徑、診斷輸出或其他敏感資料洩漏給未經批准的地點。
  6. 控制部署: 請只使用核准來源的擴充功能。 對於受管理的環境或生產環境,請使用經過審核、簽署且版本固定,並透過核准的部署管道提供的套件。 部署前要檢查並測試每一次更新。

不要只為了載入或執行腳本或擴充功能而關閉安全模式。 如果某個擴充功能要求你關閉安全模式,請檢視其行為,了解變更移除的限制,並取得貴組織的安全審查人員的批准。 欲了解更多資訊,請參閱 安全模式。

交叉提示注入保護

WinDbg 將某些操作歸類為受保護。 對於受保護的操作,WinDbg 會利用 AI 用戶端已設定的模型服務,來分類該操作的除錯器輸出,以判定是否為交叉提示注入攻擊(XPIA)。 WinDbg 會阻擋分類識別為潛在不安全的輸出。

XPIA 保護取決於 MCP 取樣。 AI 用戶端必須支援並允許 MCP 取樣,讓 WinDbg 能向已設定的模型服務請求分類。 若分類無法執行,受保護操作即失敗且無法返回輸出。

啟用交叉提示注入緩解設定控制 XPIA 保護。 請在受信任的環境中,針對組織核准的目標,並在安全審查員批准決策及其他控制措施解決提示注入風險後,關閉此保護。

提供關於 WinDbg MCP 的回饋

你的回饋幫助 Microsoft 改進 WinDbg MCP,並排定修正和功能的優先順序。 若要回報錯誤或建議功能,請在 WinDbg Feedback 存放庫中建立一個問題。

下一步