コンテンツにスキップ

検査とデコード

キャプチャは最初の一歩にすぎず、理解することこそが肝心です。一般的なツールは圧縮されたバイトの山や文字化けをそのまま渡してくることがよくあります。Trace Eagle は自動で展開し、フォーマットを検出し、整形します。さらにメディアをインラインでプレビューしたり、プライベートプロトコルを分解したりできるので、あらゆるデータが最も読みやすい形で提示されます。


リクエスト側とレスポンス側は、それぞれ独立に表示モードを切り替えられます。

  • 構造化:開始行 + リクエストヘッダー表 + スマートボディ、既定の表示です。
  • テキスト・整形:コンテンツタイプに応じて自動でインデントし、JSON、XML、フォーム(x-www-form-urlencoded)をワンタップで整形して読みやすくします。
  • テキスト・生:メッセージ全体を生テキストで表示します。
  • Hex:16進ビューアで、バイトをクリックすると hex↔ASCII が連動してハイライトされ、オフセットを表示し、ワンタップでバイナリファイルに保存できます。非常に大きなペイロードでもカクつかずにスムーズにスクロールします。
  • 自動判定:データをエンジンに渡して深くデコードし、レイヤーごとに展開できるデコードツリーとして描画します。入れ子の圧縮や入れ子のフレームも、階層ごとに掘り下げられます。

表示モードの切り替え:構造化 / テキスト・整形 / テキスト・生 / hex / 自動判定、リクエストとレスポンスは独立に切り替え可能

「表示形式」が切り替えるのは表示レイヤー(構造化 / テキスト / hex / 自動判定)だけです。JSON、XML、フォームはテキストの整形スタイルであり、「テキスト・整形」が自動で処理するので、別項目としては並べていません。

Hex ビューア:オフセットを表示し、hex と ASCII を並べて連動ハイライト、ワンタップでバイナリファイルに保存可能


2. エンジンが自動でやってくれること

Section titled “2. エンジンが自動でやってくれること”
  • 自動展開:gzip、brotli(br)、deflate、zstd に対応し、多層に重なったエンコード(たとえば gzip, br を外側から内側へ層ごとに展開)もサポートします。一般的なツールは最も外側の層しか展開しないことがよくあります。
  • 自動検出と整形:JSON、XML、フォーム、Apple plist(バイナリ / XML / NSKeyedArchiver アーカイブの復元)、protobuf / gRPC。
  • バイナリフォーマット検出:組み込みのデータ検出エンジンが画像、フォント、PDF、アーカイブなどを自動認識し、アーカイブ内のファイル一覧を表示できます。
  • メディアのインラインプレビュー:画像、動画、音声を詳細ビューで直接プレビュー / 再生します。
  • スマートなエンベロープ除去:テレメトリー送信によくある「カスタムヘッダー + 圧縮ストリーム」というエンベロープ(標準のエンコードマーカーを持たないことが多い)を認識し、エンベロープヘッダーを自動で取り除いて本来のデータを復元します。一般的なツールでは文字化けしか得られない場面です。
  • 正直な失敗の告知:本当に復元できないプライベートな暗号化データに出会ったときは、文字化けの山を押し付けるのではなく、はっきりとそう伝えます
  • UTF-8 に統一:文字エンコードは一律に有効な UTF-8 に処理されます。

メディアのインラインプレビュー:画像がレスポンス詳細ビューに直接描画され、その種類とサイズが注記される


データ種別 表示モード
WebSocket フレームごとに表示(text / binary / ping / pong)、送受信の方向を注記
Server-Sent Events (SSE) イベントストリームをイベントごとに表示
gRPC / protobuf .proto なしでフィールド番号 / 型 / 値をデコード
生の TCP / UDP 未復号または非 HTTP の生の送受信バイト、hex / text を切り替え可能

4. プライベートプロトコルも分解できる

Section titled “4. プライベートプロトコルも分解できる”

非 HTTP のプライベート / バイナリプロトコルについて。

  • 多くのプライベートフレームは設定なしで自動分解:エンジンが一般的な固定長プレフィックス境界を試し、フレームごとに展開するので、生のストリームでもスクリプトを書かずに個々のメッセージに分割されます。
  • 組み込みのフレーミングテンプレート:長さプレフィックス、マジックシグネチャ境界、区切り文字(hex を含む場合あり)、固定長といった一般的なプライベートフレーム構造にはすぐ使えるテンプレートが用意されており、いくつかの値を変えれば分解できます。より複雑な構造には、下記の JS スクリプトを使います。
  • JS スクリプトによるデコード:少量の JavaScript を書いてフレーミングとデコードのロジックをカスタマイズできます。バイト取得、進数変換、展開といった補助機能が最初から使えます。
  • 手動の「デコード形式を指定」:任意の接続に手動でフレーミング方法を選んでその接続の送受信記録全体を表示でき、各メッセージはさらに 自動判定 / テキスト / hex を切り替えられます。カスタムプロトコルのデコードを参照してください。

プロキシキャプチャへ戻る