web-dev-qa-db-ja.com

Android Phonesでネットワークアクティビティを監視する

私のAndroid Phone。のネットワークトラフィックを監視したい。

別の質問は次のとおりです。特定のアプリケーションの交通データを監視したい場合、それを行うためのコマンドはありますか?

59
Iker

TCPDUMPは、ネットワークを分析するための私のお気に入りのツールの1つですが、Android向けのtcpdumpをクロスコンパイルするのが難しい場合は、市場のアプリケーションを使用することをお勧めします。

これらは私が話していたアプリケーションです:

  • サメ:Android電話用のWiresharkの小さなバージョンです)。このプログラムは* .pcapを作成し、wiresharkでPC上のファイルを読み取ることができます。
  • Shark Reader:このプログラムを使用すると、Android電話で* .pcapを直接読み取ることができます。

Sharkアプリはルート化されたデバイスで動作するため、インストールする場合は、デバイスが既にルート化されていることを確認してください。

幸運を ;)

25
Martin Solac

エミュレータから実行している場合、次のように実行できます。

実行emulator -tcpdump emulator.cap -avd my_avdエミュレータのすべてのトラフィックをPCのローカルファイルに書き込み、wiresharkで開く

役立つかもしれない同様の投稿があります [〜#〜] here [〜#〜]

16
ninjasense

注:tcpdumpにはルート権限が必要なので、まだ行っていない場合は電話をルート化する必要があります。 tcpdumpのARM binary です(これは私のSamsung Captivateで機能します)。独自のバイナリをビルドする場合は、 here (はい、クロスコンパイルする必要があるでしょう)。

また、 Shark For Root (an Android tcpdumpに基づくパケットキャプチャツール))も確認してください。

Tcpdumpが特定のプロセスIDでトラフィックを監視できるとは思わない。クリス・ストラットンが言及するstrace method は、その価値よりも多くの努力のようです。ターゲットプロセスで使用される特定のIPとポートを監視する方が簡単です。その情報が不明な場合は、プロセスアクティビティの期間中にすべてのトラフィックをキャプチャし、Wiresharkで結果のpcapを選別します。

7
user600838

Android SDKに含まれるDDMSツールには、ネットワークトラフィックを監視するためのツールが含まれています。tcpdumpや類似の低レベルツールから得られる詳細情報は提供しませんが、それでも非常に便利です。

公式ドキュメント: http://developer.Android.com/tools/debugging/ddms.html#network

3
emidander

電話をルート化してtcpdumpをクロスコンパイルするか、誰かが既にコンパイルしたバージョンを使用する必要があります。

エミュレータを使用してこれらの実験を行う方が簡単な場合があります。その場合、ホスティングPCから監視を行うことができます。実際のデバイスを使用する必要がある場合、別のオプションは、tcpdumpを実行しているlinuxボックスのセカンダリインターフェイスからぶら下がっているwifiネットワークに配置することです。

特定のプロセスでどのようにフィルタリングを行うかは頭の中でわからない。クイックグーグルで見つけた1つの提案は、システムでtcpdumpの代わりに対象プロセスでstraceを使用することです。

2
Chris Stratton

ルートがなければ、 Charlesproxy &Coのようなデバッグプロキシを使用できます。

2
Megachip

Android Phones(Without Root)::このアプリケーションを使用できます tPacketCapture これにより、キャプチャを有効にすると、デバイスのネットワークトラフィックがキャプチャされます。参照してください このURL デバイスをルート化せずにネットワークスニッフィングの詳細について。

.pcap形式のファイルを作成したら、このファイルを使用して、Wiresharkなどのトラフィックアナライザーを使用してトラフィックを分析できます。

wiresharkでの携帯電話トラフィックのキャプチャ の詳細については、この投稿も参照してください

2
Kunal0615

パケットキャプチャは、Androidでネットワークデータを追跡するための最適なツールです。ルートアクセスを必要とせず、アプリケーションに基づいて呼び出しを簡単に読み取って保存できます。チェック this out

1

前提条件:adbとwiresharkがコンピューターにインストールされ、ルート化されたAndroidデバイスがあります。

  1. ダウンロード tcpdump to〜/ Downloads
  2. adb Push ~/Downloads/tcpdump /sdcard/
  3. adb Shell
  4. su root
  5. mv /sdcard/tcpdump /data/local/
  6. cd /data/local/
  7. chmod +x tcpdump
  8. ./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
  9. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

これで、Wiresharkを使用してpcapファイルを開くことができます。

特定のプロセスの監視に関する質問については、アプリのバンドルIDを見つけて、com.Android.myapp

  1. ps | grep com.Android.myapp
  2. 出力から表示される最初の番号をコピーします。 1234と呼びましょう。出力が表示されない場合は、アプリを起動する必要があります。
  3. ダウンロード strace to〜/ Downloads and put put /data/local上記のtcpdumpに対して行ったのと同じ方法を使用します。
  4. cd /data/local
  5. ./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt

これで、strace.txtでIPアドレスを確認し、wiresharkログでそれらのIPをフィルタリングできます。

1
Chris Woolfe

このアプリケーションをお試しください https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

すべてのネットワーク通信を表示できます。SSL暗号化通信も表示できます。

1
hkbharath

一般的なアプローチは、次のように「cat/proc/net/netstat」を呼び出すことです。

Androidネットワークの統計

0
Peter Knego