65

Androidフォンのネットワークトラフィックを監視したいのですが。Android用のtcpdumpを使用することを考えていましたが、電話用にクロスコンパイルする必要があるかどうかわかりません。

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

4

11 に答える 11

26

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

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

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

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

幸運を ;)

于 2011-02-28T14:21:33.210 に答える
17

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

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

ここに役立つかもしれない同様の投稿があります

于 2011-02-25T19:36:59.320 に答える
7

注:tcpdumpにはroot権限が必要なため、まだ行っていない場合は、電話をroot化する必要があります。これがtcpdumpのARMバイナリです(これは私のSamsung Captivateで機能します)。独自のバイナリを作成したい場合は、手順をここに示します(はい、クロスコンパイルする必要があります)。

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

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

于 2011-02-28T06:42:14.250 に答える
4

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

フォーマットされたファイル.pcapを入手したら、このファイルを使用して、Wiresharkなどのトラフィックアナライザーを使用してトラフィックを分析できます。

また、wiresharkでの携帯電話トラフィックのキャプチャに関するその他のアイデアについては、この投稿を参照してください

于 2015-04-23T21:28:16.870 に答える
3

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

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

于 2013-07-04T08:26:47.500 に答える
3

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

  1. tcpdumpを〜/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. Ctrl+C十分なデータをキャプチャしたら。
  10. exit
  11. exit
  12. adb pull /sdcard/dump.pcap ~/Downloads/

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

特定のプロセスの監視に関する質問については、アプリのバンドルIDを見つけて、それを呼び出しましょうcom.android.myapp

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

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

于 2019-01-18T17:57:38.767 に答える
2

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

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

特定のプロセスでフィルタリングする方法がわかりません。いくつかの簡単なグーグルで私が見つけた1つの提案は、システムのtcpdumpの代わりにサブジェクトプロセスでstraceを使用することです。

于 2011-02-25T19:40:23.593 に答える
2

ルートがない場合は、 Charlesproxy&Coなどのデバッグプロキシを使用できます。

于 2015-11-10T13:37:16.207 に答える
2

パケットキャプチャは、Android上のネットワークデータを追跡するための最良のツールです。ルートアクセスを必要とせず、アプリケーションに基づいて呼び出しを読み、保存するのは簡単です。これをチェックしてください

于 2016-02-10T09:35:43.750 に答える
2

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

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

于 2017-04-08T17:46:51.167 に答える
0

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

Androidネットワークの統計

于 2011-02-25T20:28:18.840 に答える