ITエンジニア見習いのメモブログ

とあるヘッポコエンジニアのメモブログとなります

【Android】端末に流れるパケットをtcpdumpで取得する

結構昔にAndroid端末にてGCMのポート(5228,5229,5230)から

パケットが流れて来ているかを知る必要があったため、以下のサイトを参考にしてtcpdumpを取った時のメモを残します。

https://kagasu.hatenablog.com/entry/20160607/1465289215

※もうGCMは利用できないですが、FCMでも上記ポートを利用しています

https://firebase.google.com/docs/cloud-messaging/concept-options?hl=ja

 

1. 以下のサイトよりtcpdumpのバイナリを取得する

https://www.androidtcpdump.com/android-tcpdump/downloads

2. 以下のコマンドにより調査対象Android端末内にtcpdumpを配置する

※以下私がwindowsだったので、windowsでの方法

コマンドプロンプトにて

adb push tcpdump /data/local/tmp

adb shell

Android端末内にて

chmod 755 /data/local/tmp/tcpdump

3. 以下のコマンド実行によりパケットキャプチャを開始

adb shell /data/local/tmp/tcpdump -s 0 -v -w /data/local/tmp/tcpdump-capture.txt

→ -s:キャプチャするサイズ指定する。0だと指定無しとなる

     -v:TTLやサービス種別などの詳細情報を表示する(vを増やす毎に表示される情報が増えるそうです)

     -w :直後に記述したファイルにキャプチャ結果を書き出す

4. キャプチャをCtrl + c 等により中止し、取得したキャプチャファイルをPCにダウンロードする

adb pull /data/local/tmp/tcpdump-capture.txt C:\Users

5. Wiresharkにて取得したファイルを解析する