ApiCatcher for Android

Android での HTTP/HTTPS パケットキャプチャとデバッグをより簡単に

VpnService + tun2proxy を基盤に、ApiCatcher は VPN トンネル層で HTTP/HTTPS トラフィックを強制リダイレクトします。アプリ層からは透過的で、システムプロキシ設定に依存しません。iOS 版とコアアーキテクチャを揃え、簡潔で使いやすいモバイルキャプチャ体験を提供します。

Android 11 (API 30) 以降が必要です
ApiCatcher for Android | HTTP Capture

プロフェッショナルなパケットキャプチャ&APIデバッグツール

ネットワークリクエストのキャプチャ、Mock リライト、AI スクリプト、リクエストリプレイを包括し、効率的なネットワークデバッグをワンストップで提供します。

HTTPSトラフィック解析

Android 端末上で HTTPS リクエストとレスポンスを直接キャプチャして分析します。

WebSocketトラフィックのキャプチャ

WS/WSSトラフィックのキャプチャをサポートし、データフレームをチャットメッセージリストとして表示します。

許可/拒否ホストリスト

ホスト別の許可/拒否リストを設定して通信をフィルタリングし、特定アプリ以外の不要な通信を排除できます。

リクエストリプレイ

ワンタップでリクエストを再送し、問題の再現や検証を迅速に行えます。

組み合わせリプレイ

複数のリクエストをドラッグ&ドロップで組み合わせ可能。パラメータ連携や順次実行に対応しています。

リクエストリライト

Mock、書き換え、ドロップなどのリライト処理に対応し、多様なデバッグニーズをカバーします。

スクリプト実行

複雑な書き換えや暗号化アルゴリズムに対応するスクリプト機能を搭載。その場でテストも可能です。

定時リクエストリプレイ

スケジュールに沿った自動リプレイをサポート。自動テストや回帰検証に活用できます。

リクエスト出力

リクエスト記録を出力し、チーム間での共有や問題の再現に役立てられます。

APIエクスポート

APIドキュメントを自動生成し、PostmanやApifoxへエクスポートできます。

メディア出力

画像、動画、音声を自動識別して抽出。分割ダウンロードされたファイルの統合保存も可能です。

APIスキャン

キャプチャされたトラフィックに基づき、ルールベースで情報の検知と統計を実施。カスタムスキャンルールに対応しています。

DNSマッピング

ドメイン名を特定のIPアドレスに解決するカスタムDNSルールを定義します。

Protobufデコード

Protobufエンコードされたリクエスト/レスポンスBodyを自動デコードします。

シンプルで使いやすい Android ネットワークキャプチャ&デバッグ体験

Android 開発者が HTTP と WebSocket トラフィックを効率よく分析できるよう支援します。

パソコン側プロキシ不要

NO PCPROXY

デバッグのたびに Wi‑Fi / モバイルデータ通信のプロキシ設定を変更する必要はありません。Android 端末上でワンタップでキャプチャを開始できます。

フルトラフィック TUN 透過キャプチャ

VPNTUN

VpnService で TUN 仮想 NIC を作成し、tun2proxy 経由で HTTP/HTTPS 接続をローカル MITM プロキシへ透過転送します。

HTTPS 中間者復号

MITMHTTPS

Netty ベースのローカル MITM プロキシが CONNECT トンネルと動的証明書発行で HTTPS を復号し、HTTP は直接転送・記録します。

極めてシンプルなインタラクション設計

UIUX

iOS 版に揃えたシンプルな UI。リクエストとレスポンスが一目でわかり、トラフィック分析がより効率的になります。

Android パケットキャプチャ設定ガイドと制限事項

動作原理、CA インストール、HTTPS キャプチャ制限を理解してすばやく始めましょう

1動作原理

1. VPN / TUN 仮想 NIC の作成

キャプチャ開始時、ApiCatcher は VpnService を作成し、TUN 仮想ネットワークインターフェース経由で端末のすべての IP パケットをキャプチャします。

2. tun2proxy による透過転送

tun2proxy(Rust ネイティブライブラリ)が TCP パケットを低レベルで解析し、HTTP/HTTPS 接続をローカル 127.0.0.1:8888 へ透過転送します。

3. ローカル MITM プロキシによる復号

Netty ベースのローカル MITM プロキシが HTTP を直接転送・記録し、HTTPS は CONNECT トンネルと動的証明書発行で復号します。アプリ層からは透過的で、システムプロキシに依存しません。

2CA 証明書インストールガイド

HTTPS トラフィックのキャプチャには、まず ApiCatcher の CA 証明書のインストールが必要です。Android 14+(API ≥ 34)ではアプリから直接 CA をインストールできないため、以下の手順で手動インストールしてください:

  1. アプリ内の「CA 証明書をインストール」をタップすると、証明書が Downloads に保存されます。
  2. 設定 → セキュリティとプライバシー → その他のセキュリティとプライバシー → 暗号化と認証情報 → 証明書をインストール → CA 証明書 へ移動します。
  3. Downloads/apicatcher_ca.crt を選択します。
  4. ロック画面パスワードを入力してインストールを確認します。
  5. 設定 → セキュリティとプライバシー → その他のセキュリティとプライバシー → 暗号化と認証情報 → 信頼できる認証情報 → ユーザー で ApiCatcher CA を見つけ、「信頼」をタップします。

MITM は SSL Pinning を迂回できません。CA をインストールしても、証明書ピン留めされたアプリ(多くの Google アプリなど)は復号できません。

3HTTPS トラフィックのキャプチャとデバッグの制限

証明書は通常「ユーザー」認証情報ストアにのみインストールできます。Android 7 以上では多くのアプリがユーザー証明書を信頼しないため、HTTPS を復号できません。

ウェブサイトのデバッグ

Chrome などのブラウザは通常ユーザー証明書を信頼し、Web トラフィックを正常にキャプチャできます。Web 閲覧のデバッグには Chrome の使用をおすすめします。

アプリのデバッグ

自アプリのトラフィックをキャプチャ・復号するには、プロジェクトでユーザー証明書を信頼するよう設定してください。詳細は下の「開発者が自アプリのパケットをキャプチャする方法」を参照してください。

4開発者が自アプリのパケットをキャプチャする方法

1. HTTP リクエストのキャプチャ

デフォルトのネットワークスタックを使用している場合、ApiCatcher VPN を有効にするだけでキャプチャできます。追加設定は不要です。

2. HTTPS リクエストのキャプチャ

Android 7.0(API 24)以降、システムはデフォルトでシステム CA のみを信頼し、ユーザーが手動インストールした CA は信頼しません。開発者はアプリ内でユーザー CA への信頼を宣言する必要があり、そうしないと HTTPS ハンドシェイクが失敗します。

res/xml/ に network_security_config.xml を作成します:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="user"/>
            <certificates src="system"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>

そして AndroidManifest.xml の application タグで参照します:

<application
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
</application>

これは debug ビルドでのみ有効で、release ビルドには影響しません。ApiCatcher CA をインストールして VPN を有効にすると、自アプリの HTTPS をキャプチャできます。