banner
RandyChan

RandyChan

深漂 / Back-end developer
github

Charlesを使用してコンピュータと携帯電話のパケットをキャプチャする

チャールズの紹介#

チャールズは、HTTP プロキシ / HTTP リスニング / リバースプロキシサーバーソフトウェアです。開発者はチャールズを使用して、コンピュータとインターネット間の HTTP および HTTPS 情報を確認できます。リクエスト、レスポンス、HTTP リクエストヘッダー(クッキーとキャッシュ情報)を含みます。

チャールズのインストールと使用#

リンクをクリックして https://www.charlesproxy.com/download/ 対応するバージョンをダウンロードしてインストールします。
macOS バージョンの例:

  1. dmg ファイルをダウンロードするにはここをクリックして 4.5.6 バージョンをダウンロード
  2. dmg ファイルをダブルクリックして開き、accept をクリックしてアプリケーションファイルを Applications ディレクトリにドラッグします。
  3. その後、Launchpad でチャールズを開くことができます。
  4. チャールズを起動すると、権限を要求するポップアップが表示されます。Grant Privileges をクリックして同意し、パスワードを入力して承認します。
    image
  5. 次に、Proxy - macOS Proxy をチェックしてシステムプロキシを起動します。その後、ブラウザで百度にアクセスすると、左側に先ほどの百度への HTTP リクエスト情報が表示されます。
    macOS Proxy
    チャールズ

SSL 証明書のインストール#

上記の手順を経てインストール後、百度のリクエストの下に unknown が表示される理由は、百度が HTTPS を使用して SSL で暗号化された通信を行っているためです。チャールズの証明書をインストールすることでリクエスト情報を取得できます。
Help - SSL Proxying - Install Charles Root Certificate を選択します。
チャールズルート証明書のインストール
クリックすると、証明書を追加するポップアップが表示されるので、追加を選択します。
証明書を追加
追加後、キーチェーンアクセスというシステムソフトウェアを開き、右上でチャールズを検索すると、先ほどインストールした証明書が見つかります。インストール後は信頼されていない証明書です。
キーチェーンアクセス
インストールした証明書をダブルクリックし、信頼の欄を開いて「常に信頼」を選択し、ウィンドウを閉じてパスワードを入力します。以下のように:
証明書を信頼

SSL プロキシの設定#

Proxy - SSL Proxying Settings に入り、Add をクリックしてリッスンするドメイン名とポートを追加します。ワイルドカード * をサポートし、SSL は通常 443 ポートです。
SSL プロキシを追加
ここで 2 つの設定を追加することで、ほとんどの HTTPS リクエストに適用できます。追加が完了したら、HTTPS リクエストを楽しくキャプチャできます。

  • *:443
  • :
    SSL プロキシ設定

再度百度にアクセスし、リクエストパスをクリックして Contents 欄を選択すると、リクエストとレスポンス情報が表示されます。
Contents

iOS デバイスのパケットキャプチャ#

プロキシの設定#

  1. まず、スマートフォンとコンピュータが同じネットワークに接続されていることを確認し、Help - Local IP Address をクリックしてコンピュータの IP を確認し、Proxy - Proxy Settings をクリックしてプロキシポート(デフォルトは 8888)を確認します。

  2. スマートフォンを開き、設定 - 無線 LAN - 接続されている Wi-Fi の右側の感嘆符をクリックします。(コンピュータとスマートフォンが同じローカルネットワーク内にあることを確認してください!)

  3. 一番下までスクロールして、プロキシの設定をクリックし、手動を選択して IP とポート情報を入力します。以下の図のように:
    iOS プロキシの設定

  4. その後、チャールズが接続リクエストをポップアップ表示し、Allow をクリックします(Deny をクリックした場合は、チャールズを再起動してください)。

その後、スマートフォンのブラウザで百度にアクセスすると、「この接続はプライベート接続ではありません」と表示されます。これは、スマートフォンにチャールズの証明書がまだインストールされていないためです。

iOS にチャールズ証明書をインストール#

  1. チャールズを開き、Help - SSL - Install Charles Root Certificate on a Mobile Device or Remote Browser を選択します。
    image
  2. Safari ブラウザを使用して chls.pro/ssl を開き、プロファイルのインストールを許可します。デバイスがローカルネットワークに接続されており、プロキシが正しく設定されていることを確認してください。
  3. その後、スマートフォンで設定 - 一般 - プロファイルに入り、Charles Proxy CA のプロファイルが追加されているのを確認し、そのプロファイルをクリックして右上のインストールをクリックします。
  4. インストールが完了したら、設定 - 一般 - このデバイスについて - 証明書信頼設定(最下部)に入り、Charles Proxy CA の証明書を信頼するように設定します。

これでスマートフォンの証明書設定が完了しました。

WeChat ミニプログラムのパケットキャプチャ#

スマートフォン上のリクエストをキャプチャするだけでよい場合は、一時的に Proxy - macOS Proxy(ショートカットキー:Shift + command + P)をオフにして、コンピュータのリクエストがスマートフォンのパケットキャプチャに干渉しないようにします。

ミニプログラムを開き(この記事ではWeChat 指数ミニプログラムを使用)、ミニプログラムを操作してリクエストを送信します。
WeChat 指数

チャールズを開いてリクエスト情報を確認すると、レスポンスの JSON 情報が表示されます。
image

感謝の意#

ご覧いただきありがとうございます。共に知識を探求し、共に成長していきましょう。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。