WiresharkでiPhone実機のHTTP通信を覗いてみる

ちょっと困ったことが起きたので、iPhone実機ではどんなHTTPの通信が走っているのか知りたくなりました。調べてみると結構簡単に出来そうだったので挑戦してみます。

手順概要

  1. WiresharkをMacにインストールする
  2. 実機をMacにつなぐ
  3. 仮想ネットワークを作成
  4. Wiresharkで解析

ステップとしてはこんな感じになります。
Wiresharkのインストールがちょっと面倒なのと、Wiresharkの使い方がわかりづらいという点を除けば結構簡単にできるので、覚えておくと便利そうです。

1. WiresharkをMacにインストールする

Wiresharkというパケット解析用のアプリケーションをMacにインストールします。これがなくても生のパケットは拾えるのですが、関連付けたり読み解いていくのを手動でやるのはつらいです。WiresharkはGUIでいろいろやってくれるので活用しましょう。

https://www.wireshark.org/download.html
まずはここからアプリケーションをダウンロードしてインストールします。

インストール後、起動しようとするとX11をインストールしてくれ的なエラーが出てダウンロードページに飛ぶので、そこから「XQuartz」をダウンロード・インストールします。再ログインを促されるので一応MacOSを再起動します。

XQuartzをインストール後、再びWiresharkをランチャーから立ち上げると、「X11はどこだ」みたいなダイアログが出るので、ファイラーからX11の場所を指定してあげます。(分かりづらいですが、アプリケーションのユーティリティの中にあります。)

X11を指定後待ってても起動しないので、一度Wiresharkを終了します。そしてコマンドラインから

/Applications/Wireshark.app/Contents/MacOS/Wireshark

みたいな感じで起動してあげます。どうも初回はコマンドから起動してあげる必要があるみたいです。時間がかかりますがしばらくするとちゃんと起動すると思います。

2. 実機をMacにつなぐ

ライトニングケーブルで普通につなぎます。XcodeのDeviceなどから端末のIdentifierを記録しておいてください。16進数のちょっと長めの文字列です。

3. 仮想ネットワークを作成

Macに仮想ネットワークを構築して、端末の通信をMac経由で行うようにします。これによってパケットのキャプチャが可能になります。
なんか難しそうですがコマンド一発でできます。

rvictl -s {$端末のIdentifier}

こうすることでネットワークに rvi0 という仮想ネットワークが作成されます。

4. Wiresharkで解析

ここまでくれば用意しておいたWiresharkで解析するだけです。InterfaceListから rvi0 を選択すると、端末に流れるパケットを取り出すことが出来ます。上のFilterに http と入れてあげれば、HTTPの通信だけをフィルタリング可能です。

参考

iPhone端末とかのパケットキャプチャ

Thu, 22 Jan 2015 03:31:16 +0000   |   Category:iOS

関連記事

About Me

kimihiro-n

Androidアプリを中心にいろいろアプリ作ってます。
T N G

Products

放課後アプリ部
放課後アプリ部
個人アプリ開発者のための集客プラットフォーム作りました。 AndroidやiOSアプリのダウンロード数増加を無料で手伝います!

最速のJSON可視化・解析ツール
JSONを使った開発をスムーズにするためのツールです。 特定の値までのパスを簡単に取れます。
過去に作ったiOSアプリ
明日から本気出すタスク管理 for iOS
過去に作ったAndroidアプリ
明日から本気出すタスク管理 for Android Nagareboshi taplight
Others..

Search Articles