暮らしの技術

暮らしを豊かにする技術や、特に暮らしを豊かにしない技術があります

iOSの通信をWireSharkでみる時の話

開発中など,iOSの通信をWireSharkでみたいという場面がしばしばある.rvictlコマンドを利用することで,iOSの通信をキャプチャできる用になるのだけれど,キャプチャしたデータの扱いが上手くできなかったので書く.rvictlを使う方法は以下の記事に大まかなやり方が書かれてる.

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

実は最初,rvictlで渡すUUIDの取得にとまどった.世の中のiOSデベロッパ各位であれば躓かないのだろうけれど,iOSデベロッパではないウェブやさんとか普通困るから,どう調べるのか書いてあげるのが丁寧だと思った.*1

実際にキャプチャしてみるとこういう画面になる.

確かにキャプチャできていることはわかるが,僕は人間なのでこれでは困る.

http://qiita.com/ykst/items/61ad7e5167a814126d99
Wireshark Q&A

このあたりの記事をみれば解決できるのだけれど,2014年6月7日現在,細かいパラメータが変わっているので注意が必要.

WireSharkの画面見るとわかるんだけれど,User encapsulation not handled: DLT=149, check your Preferences->Protocols->DLT_USERということだから,メッセージ通りDLTs Tableにルールを追加してあげればよい.

DLT_USERのUser2 (DLT=149) を値を書き換えるのだけれど,

  • 3G/4Gの場合はPayload protocolをip,HeaderSizeを160
  • WiFiの場合はPayload protocolをeth,HeaderSizeを156

にしてあげると良い.

画面もカラフルになってめでたさがでていると思う.

探してたときの話は普段の日記の方に書いた.

*1:ちなみにXcodeのオーガナイザから見ることができる.