エンジニア

WiresharkでiPhoneの通信をトレースする

投稿日:2014年2月18日 更新日:

サーバー担当の山内です。
今回はMacとiPhoneを使ったパケットトレースについてです。
Wiresharkを使えば簡単にiPhoneの通信を覗くことができます。

はじめに

今回用意するものは次のとおりです。

  • Mac OS X 10.8
  • iTunes(Xcode)
  • iPhone
  • USBケーブル
  • XQuartz
  • Wireshark

XQuartzのインストール

OS X Moutain Lion用のX11ライブラリ、XQuartz-2.7.5をインストールします。

XQuartz
https://xquartz.macosforge.org/landing/

Wiresharkのインストール

Wireshark-1.10.5をインストールします。

Wireshark
http://www.wireshark.org/download.html

Remote Virtual Interface(RVI)の作成

MacにiPhoneを接続したら、次のコマンドを実行してRemote Virtual Interface(RVI)を作成します。

$ rvictl -S udid

udid は、iTunesやXcodeのOrganizerから確認することができるiOS端末の識別子(UDID)です。

Untitled1

RVI作成に成功すると次のようなメッセージが表示されます。

Starting device udid [SUCCEEDED]

ifconfigコマンドで確認すると、rvi0が新たに作成されていることが確認できます。

$ ifconfig -l
lo0 gif0 stf0 en0 p2p0 rvi0

パケットトレース

RVI作成後、Wiresharkを起動します。

$ wireshark

rvi0を選択、Startしてキャプチャを開始します。

start

tcpdumpコマンドを使う場合は、インターフェイスにrvi0を指定して実行します。

$ tcpdump -vi rvi0
tcpdump: WARNING: rvi0: That device doesn't support promiscuous mode
(BIOCPROMISC: Operation not supported on socket)
tcpdump: WARNING: rvi0: no IPv4 address assigned
tcpdump: listening on rvi0, link-type RAW (Raw IP), capture size 65535 bytes

キャプチャ終了後、RVIを破棄します。

$ rvictl -X udid

Stopping device udid [SUCCEEDED]

このように簡単にキャプチャすることができますが、iPhoneの通信量は多いのですべての通信をキャプチャすると目的の情報が埋もれてしまいます。フィルターを使ってキャプチャする情報を絞ると目的の情報が得やすくなります。

採用情報

ワンダープラネットでは、一緒に働く仲間を幅広い職種で募集しております。

-エンジニア
-

© WonderPlanet Inc.