> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMAT を使用したネットワーク トラフィックの検査と変更

> XMAT を使用して、XBOX 開発コンソールと Windows PC のネットワーク トラフィックをキャプチャ、検査、分析、変更します。

[XBOX Multiplayer Analysis Tool (XMAT)](https://github.com/microsoft/xbox-multiplayer-analysis-tool/blob/main/README.md) は、XBOX 開発コンソールと Windows PC のネットワーク トラフィックをキャプチャ、検査、変更します。[最新の XMAT リリース](https://github.com/microsoft/xbox-multiplayer-analysis-tool/releases)をダウンロードしてください。

XMAT では次のことができます。

* HTTP および HTTPS トラフィックをプロキシする。
* 要求データと応答データを復号して表示する。
* キャプチャしたトラフィックをホスト、状態コード、メソッドでフィルター処理する。
* 要求と応答を変更または終了する C# スクリプトを実行する。
* XBOX 開発コンソールの低レベルのネットワーク トラフィックをキャプチャして分析する。
* ライブまたは保存済みのキャプチャを分析し、問題のある XBOX サービスの呼び出しパターンを検出する。

## 要件

XMAT には次のものが必要です。

* Windows 10 バージョン 1809 (ビルド 17763) 以降、または Windows 11 を実行している開発 PC。
* 開発 PC での管理者アクセス許可。
* [Windows x64 用の .NET 10 デスクトップ ランタイムおよび ASP.NET Core ランタイム](https://dotnet.microsoft.com/download/dotnet/10.0)、または Windows x64 用の .NET 10 SDK。
* コンソール キャプチャの場合、リカバリ 2106 以降を実行している XBOX 開発コンソール。
* XBOX 開発コンソールに接続する XMAT 機能を使用する場合、GDK Extensions for XBOX。

## XMAT のインストール

1. [XMAT リリース](https://github.com/microsoft/xbox-multiplayer-analysis-tool/releases)から最新の ZIP ファイルをダウンロードします。
2. ZIP ファイルをローカル フォルダーに展開します。
3. XMAT を管理者として実行します。
4. メッセージが表示されたら、XMAT ルート証明書をインストールして信頼します。XMAT はこの証明書を使用して HTTPS トラフィックを復号します。

## Web トラフィックのキャプチャ

1. XMAT で **+** タブを選択します。
2. タイトルを実行するデバイスを選択します。
   * 既定の XBOX 開発コンソールの場合は、**\[Default XBOX Console]** を選択します。
   * 別の XBOX 開発コンソールの場合は、**\[XBOX Console at IP or Hostname]** を選択します。
   * 開発 PC 上のタイトルの場合は、**\[Local PC]** を選択します。
3. **\[Web Proxy]** を選択し、**\[Add Capture]** を選択します。
4. プロキシを開始します。
   * XBOX 開発コンソールの場合は、**\[Enable XBOX Proxy]** を選択します。コンソールが再起動し、Web トラフィックを XMAT 経由で送信し始めます。
   * Windows PC の場合は、**\[Start Capture]** を選択します。
5. タイトルを起動し、検査するシナリオを実行します。
6. 接続を選択して、その要求と応答のヘッダーと本文を検査します。

**\[Host]**、**\[Status]**、**\[Method]** フィルターを使用して、関連するトラフィックを絞り込みます。**\[File]** メニューの **\[Save Captures]** を選択すると、キャプチャを XMATCAP ファイルとして保存できます。

> \[!IMPORTANT]
> XMAT がキャプチャしていないときに XBOX 開発コンソールが XMAT プロキシを使用するように構成されたままになっていると、XBOX サービスのチェックやその他のネットワーク要求が失敗する可能性があります。テストが完了したら、**\[Disable XBOX Proxy]** を選択してください。変更を適用するためにコンソールが再起動します。

## パートナー サービス ホストの特定

サービス停止をシミュレートする前に、タイトルの通常のトラフィックをキャプチャします。

1. XMAT の Web プロキシ キャプチャを開始します。
2. タイトルを起動し、オンライン サービスを使用するすべての機能を実行します。これには次のものが含まれます。
   * メニューとランキング。
   * マルチプレイヤー セッションの作成と参加。
   * フレンドおよびソーシャル機能。
   * タイトル内ストア。
   * 期間限定イベント。
3. **\[Host]** フィルターを使用して、タイトルが接続するすべてのホストを確認します。
4. キャプチャしたホストをタイトルのサービス一覧と比較し、テストするパートナー ホスト型サービスを特定します。

パートナー サービスの接続をテストする際は、Microsoft、XBOX、または PlayFab のサービス ホストをブロックしないでください。名前に含まれる部分文字列だけに頼らず、各ホストの所有者を確認してください。

## パートナー サービスのブロック

XMAT スクリプトを使用すると、選択したホストへの要求を終了しつつ、その他のトラフィックは利用可能なままにできます。

1. アクティブな Web プロキシ キャプチャで **\[Script Editor]** を開きます。

2. **\[SSL Connection Request]** イベントを選択します。

3. サンプル ホストを、ブロックする各パートナー サービス ホストに置き換えます。例:

   ```csharp theme={null}
   string host = Params.Request.Host.ToLowerInvariant();

   if (host == "api.publisher.example" ||
       host.EndsWith(".api.publisher.example"))
   {
       Params.Continue = false;
   }
   ```

4. **\[Enable]** を選択します。スクリプトが正常にコンパイルされることを確認します。

5. 影響を受けるタイトルの機能を実行し、選択したホストへの要求が失敗する一方で、Microsoft、XBOX、PlayFab のサービスは引き続き利用できることを確認します。

**SSL Connection Request** イベントは HTTPS 接続をブロックします。パートナー サービスが暗号化されていない HTTP を使用している場合は、同じホスト条件を **Web Request** イベントに適用し、`Params.Continue` を `false` に設定します。

タイトルの起動前からサービスが利用できない状態をシミュレートするには、タイトルを起動する前にブロック スクリプトを有効にします。

> \[!CAUTION]
> XMAT スクリプトは、選択したデバイスのライブ トラフィックに影響します。ブロック スクリプトはテストに必要な特定のパートナー ホストに限定し、テストが完了したらスクリプトを無効にしてください。

## キャプチャの停止

1. アクティブなスクリプトをすべて無効にします。
2. **\[Stop Capture]** を選択します。
3. XBOX 開発コンソールがプロキシを使用している場合は、**\[Disable XBOX Proxy]** を選択し、コンソールが再起動するまで待ちます。

既知の問題とサポート オプションについては、[XMAT プロジェクトのドキュメント](https://github.com/microsoft/xbox-multiplayer-analysis-tool/blob/main/README.md#known-issues)と [XMAT のサポート ポリシー](https://github.com/microsoft/xbox-multiplayer-analysis-tool/blob/main/SUPPORT.md)を参照してください。


## Related topics

- [Game Saves ツール](/ja-jp/build/core-features/common/game-save/game-saves-tools.md)
- [PC 上で XBOX Services のトラフィックをトラブルシュートする](/ja-jp/build/gdk-and-engines/guides/troubleshoot-xbox-services-traffic.md)
- [XBOX One 開発キットでのネットワーク トラフィック キャプチャ](/ja-jp/build/console-features/networking/tools/netcap-networking.md)
- [Fiddler を使用した Web サービス呼び出しの検査](/ja-jp/tools/tools-services/live-fiddler-inspect-web-calls.md)
- [Game Saves の概要](/ja-jp/build/core-features/common/game-save/game-saves-overview.md)
