Proxyman で WebSocket をキャプチャし、Protobuf をデコードする方法
このチュートリアルで行うこと:
- Proxyman macOS のダウンロードとセットアップ
- Google Chrome や iOS アプリから WebSocket 通信をキャプチャ
- ✅ Proxyman で WebSocket 通信の Protobuf メッセージをデコード
WebSocket は、クライアントとサーバー間でリアルタイムに通信するための人気のプロトコルです。多くのモダンなアプリは、パフォーマンスの向上とペイロードサイズの削減のために、Protobuf(Protocol Buffers)を使って WebSocket 上でデータをシリアライズしています。
このガイドでは、Proxyman macOS 6.5.0 以降を使って WebSocket 通信をキャプチャし、Protobuf メッセージをデコードする方法を紹介します。
1. Proxyman macOS のダウンロードとセットアップ
始める前に、Proxyman macOS をダウンロードしてセットアップしてください。
- Proxyman の Web サイト を開き、Proxyman macOS の最新版をダウンロードします
- Proxyman macOS:macOS 12 以降に対応
- Proxyman macOS をインストールします
- Proxyman を開き、macOS に証明書をインストールします。手順は
Proxyman > Certificate Menu -> Install for macOS -> Follow the instructionを参照してください - Automatic タブで「Install & Trust」をクリックします
- Proxyman 証明書に緑のチェックマークが付いていることを確認します

2. WebSocket 通信をキャプチャする
2.1 Google Chrome から(追加設定なしで利用可能)
Proxyman は、追加の設定なしで Google Chrome からの WebSocket 通信をキャプチャできます。
- Proxyman が起動していることを確認します
- Google Chrome を開きます
- WebSocket のテスト用サイトを開きます。例:https://echo.websocket.org/.ws
- この時点で、Proxyman によって WebSocket 通信がキャプチャされていることが確認できます ✅
- SSL で暗号化された通信が表示される場合は、Response パネルで「Enable SSL Proxying」をクリックします
- ページを再読み込みするか、WebSocket に再接続すると、Proxyman が WebSocket 通信を復号できるようになります ✅
- 完了です。送受信された WebSocket メッセージをリアルタイムで確認できます。

WebSocket 通信は、Proxyman のフローリストに専用の WebSocket アイコン付きで表示されます。WebSocket タブで、送信と受信の両方のメッセージを確認できます。
2.2 iOS アプリから
iOS アプリが URLSessionWebSocketTask や iOS 向けの WebSocket ライブラリ(例:Starscream、SocketRocket)を使っている場合は、WebSocket 通信をキャプチャするために SOCKS Proxy を設定する必要があります。
これは、URLSessionWebSocketTask がデフォルトではシステムの HTTP プロキシを使用しないためです。
iOS アプリから WebSocket をキャプチャする詳しい手順は、専用のチュートリアルに従ってください:iOS シミュレータや実機から WebSocket をインターセプトしてデバッグする方法
以下は簡単な概要です:
- Proxyman で SOCKS Proxy を有効にします:
Tools->Proxy Settings->SOCKS Proxy settings->Enable - ポート番号を控えておきます(デフォルトは
8889) - iOS アプリが Proxyman の SOCKS Proxy サーバーを使うように設定します
3. Protobuf メッセージをデコードする
Proxyman macOS 6.5.0 以降が必要です。古いバージョンを使用している場合は、Proxyman をアップデートしてください。
WebSocket 通信をキャプチャしたら、Proxyman 上で直接 Protobuf メッセージをデコードできます。
3.1 Raw Mode でデコードする(手軽だが簡易的な方法)
Raw Mode は、Protobuf の定義ファイル(.proto)がない場合に便利です。Proxyman はバイナリデータのデコードを試み、フィールドを表示します。
- Proxyman で WebSocket のフローを選択します
- Protobuf データを含む WebSocket メッセージを探します
- Protobuf メッセージを右クリックし、
Protobuf->Decodeを選択します Raw Modeを選択します- 完了です。Proxyman が Protobuf のフィールドをデコードして表示します ✅


Raw Mode では、フィールド番号と推定された型が表示されます。.proto ファイルがないとフィールド名は表示されませんが、データの構造は確認できます。
3.2 Message Type でデコードする(推奨)
Protobuf のディスクリプタファイル(.desc)がある場合は、フィールド名と型を正しく表示してメッセージをデコードできます。
- Proxyman で WebSocket のフローを選択します
- Protobuf データを含む WebSocket メッセージを探します
- Protobuf メッセージを右クリックし、
Protobuf->Decodeを選択します Message Typeを選択します- Protobuf ディスクリプタファイルから、メッセージタイプを選択します

メッセージタイプが見つからない場合は、「Import Schema」ボタンをクリックして、.desc ファイルを Proxyman にインポートしてください。
.proto ファイルから .desc ファイルを生成する方法は、こちらのドキュメントを参照してください:.proto ファイルから .desc ファイルを生成する方法
- 完了です。Proxyman が、正しいフィールド名でメッセージをデコードします ✅

.proto ファイルから .desc ファイルを生成するには、protoc コンパイラを使用します:
protoc --descriptor_set_out=message.desc --include_imports your_message.proto
--include_imports オプションは、インポートされた .proto ファイルで使われているメッセージタイプも追加します。このオプションがないと、メインのスキーマに存在するはずのタイプを Proxyman が見つけられない場合があります。スキーマがない場合でも Raw Mode は役立ちますが、フィールドの型は推測です。フィールド名や型を正確に知りたい場合は、ディスクリプタを使用してください。
4. 問題と解決策
4.1 iOS アプリの WebSocket 通信が見えない
解決策:iOS の WebSocket ライブラリは HTTP プロキシを使用しません。Proxyman で SOCKS Proxy を有効にし、アプリがそれを使うように設定する必要があります。詳しい手順は、WebSocket デバッグのチュートリアル を確認してください。
4.2 Protobuf のデコードオプションが表示されない
解決策:Proxyman macOS 6.5.0 以降を使用していることを確認してください。バージョンは Proxyman -> About Proxyman で確認でき、proxyman.com から更新できます。
4.3 Raw Mode でフィールドの型が正しく表示されない
解決策:Raw Mode は、ヒューリスティックによってフィールドの型を推定します。正確にデコードするには、Protobuf のディスクリプタファイルを使った Message Type モードを使用してください。
4.4 WebSocket 通信は見えるが、メッセージが暗号化されている
解決策:そのドメインで SSL Proxying が有効になっていることを確認してください。フローを右クリックして Enable SSL Proxying を選択し、WebSocket に再接続してください。
5. まとめ
このチュートリアルでは、次の方法を学びました:
- Proxyman を使って、Google Chrome と iOS アプリから WebSocket 通信をキャプチャする
- Raw Mode(.proto ファイルなし)または Message Type モード(.proto ファイルあり)で Protobuf メッセージをデコードする
参考になる関連チュートリアル:
- iOS シミュレータや実機から WebSocket をインターセプトしてデバッグする方法
- Proxyman で iOS 26 の iPhone から HTTP/HTTPS 通信をキャプチャする方法
- Firefox の HTTPS 通信を Proxyman でキャプチャする方法
Proxyman は、開発者が Web ブラウザ、iOS デバイス、iOS Simulator、Android デバイスから HTTP/HTTPS と WebSocket 通信をキャプチャできる、高性能な macOS/Windows/Linux アプリです。
入手はこちら:https://proxyman.com

