Android端末をポータブルなパケットキャプチャデバイスにする方法
いつでもどこでもパケットキャプチャしたい!
外出先や移動中でもWi-Fi端末の通信内容をパケットキャプチャしたいときってありますよね?
そんなことできるの?
root化したIDEOSとShark for Rootでできた
IDEOSでキャプチャするまでの手順
- IDEOSをz4rootでroot化
- z4rootはStoreにでていないのでapkファイルを http://forum.xda-developers.com/showthread.php?t=833953 などからダウンロードする
- apkファイルのインストールは開発PCからadbを使ってもいいけどアプリで管理したほうが楽。Apk Managerとか
- Shark for Rootをインストール
- https://market.android.com/details?id=lv.n3o.shark
- これを動かすのにroot化が必要
- https://market.android.com/details?id=lv.n3o.shark
- Wi-FiテザリングをONにしてパケットキャプチャしたい端末をWi-Fi接続
- テザリングはAndroid 2.2以降の端末なら純正でもいいけど、root化してるから他のでもOK
- Shark for Rootを起動してキャプチャしたいタイミングでStartボタンを押す
- キャプチャをやめたくなったらStopボタンを押す
→ SDカード上にキャプチャ結果=pcapファイルができた!
キャプチャできたパケットを解析するには?
Android上で見るにはShark Readerを使えばいいけど正直辛い
→ SDカード上のpcapファイルをPCにコピーしてWireShark使うほうが楽
TIPS
- 通信するサーバがわかっている場合には、Shark for RootのParametersでフィルタを指定するとファイルサイズが抑えられて吉
- デフォルトの「-vv -s 0」から「-vv -s 0 host 192.0.2.1」などに変更する
- tcpdumpのパラメータと同じっぽい