Androidフォンのネットワークトラフィックを監視したいのですが。Android用のtcpdumpを使用することを考えていましたが、電話用にクロスコンパイルする必要があるかどうかわかりません。
別の質問は次のとおりです。特定のアプリケーションのトラフィックデータを監視したい場合、それを行うためのコマンドはありますか?
Androidフォンのネットワークトラフィックを監視したいのですが。Android用のtcpdumpを使用することを考えていましたが、電話用にクロスコンパイルする必要があるかどうかわかりません。
別の質問は次のとおりです。特定のアプリケーションのトラフィックデータを監視したい場合、それを行うためのコマンドはありますか?
TCPDUMPは、ネットワークを分析するための私のお気に入りのツールの1つですが、Android用のtcpdumpをクロスコンパイルするのが難しい場合は、市場のいくつかのアプリケーションを使用することをお勧めします。
これらは私が話していたアプリケーションです:
Sharkアプリはルート化されたデバイスで動作するため、インストールする場合は、デバイスがすでにルート化されていることを確認してください。
幸運を ;)
エミュレーターから実行している場合は、次のように実行できます。
実行emulator -tcpdump emulator.cap -avd my_avd
してエミュレータのすべてのトラフィックをPCのローカルファイルに書き込み、wiresharkで開きます
ここに役立つかもしれない同様の投稿があります
注:tcpdumpにはroot権限が必要なため、まだ行っていない場合は、電話をroot化する必要があります。これがtcpdumpのARMバイナリです(これは私のSamsung Captivateで機能します)。独自のバイナリを作成したい場合は、手順をここに示します(はい、クロスコンパイルする必要があります)。
また、Shark For Root(tcpdumpに基づくAndroidパケットキャプチャツール)も確認してください。
tcpdumpが特定のプロセスIDでトラフィックを監視できるとは思いません。クリス・ストラットンが言及しているstraceメソッドは、その価値よりも努力のように思えます。ターゲットプロセスで使用される特定のIPとポートを監視する方が簡単です。その情報がわからない場合は、プロセスアクティビティの期間中にすべてのトラフィックをキャプチャしてから、結果のpcapをWiresharkでふるいにかけます。
Androidフォンの場合(ルートなし):-このアプリケーションtPacketCaptureを使用できます。これにより、キャプチャを有効にすると、デバイスのネットワークトラフィックがキャプチャされます。デバイスをルート化せずにネットワークスニッフィングを行う方法の詳細については、このURLを参照してください。
フォーマットされたファイル.pcap
を入手したら、このファイルを使用して、Wiresharkなどのトラフィックアナライザーを使用してトラフィックを分析できます。
また、wiresharkでの携帯電話トラフィックのキャプチャに関するその他のアイデアについては、この投稿を参照してください
Android SDKに含まれているDDMSツールには、ネットワークトラフィックを監視するためのツールが含まれています。tcpdumpや同様の低レベルツールから得られるような詳細は提供されませんが、それでも非常に便利です。
公式ドキュメント:http ://developer.android.com/tools/debugging/ddms.html#network
前提条件:adbとwiresharkがコンピューターにインストールされており、ルート化されたAndroidデバイスがあります。
adb push ~/Downloads/tcpdump /sdcard/
adb shell
su root
mv /sdcard/tcpdump /data/local/
cd /data/local/
chmod +x tcpdump
./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
Ctrl+C
十分なデータをキャプチャしたら。exit
exit
adb pull /sdcard/dump.pcap ~/Downloads/
これで、Wiresharkを使用してpcapファイルを開くことができます。
特定のプロセスの監視に関する質問については、アプリのバンドルIDを見つけて、それを呼び出しましょうcom.android.myapp
ps | grep com.android.myapp
ps
を使用してみてくださいtop
。/data/local
、上記と同じ方法で使用しますtcpdump
。cd /data/local
./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt
これで、strace.txtでIPアドレスを確認し、wiresharkログでそれらのIPをフィルタリングできます。
電話をルート化してtcpdumpをクロスコンパイルするか、他の誰かがすでにコンパイルしたバージョンを使用する必要があります。
エミュレータを使用してこれらの実験を行う方が簡単な場合があります。その場合は、ホスティングPCから監視を行うことができます。実際のデバイスを使用する必要がある場合、別のオプションは、tcpdumpを実行しているLinuxボックスのセカンダリインターフェイスにぶら下がっているwifiネットワークにデバイスを配置することです。
特定のプロセスでフィルタリングする方法がわかりません。いくつかの簡単なグーグルで私が見つけた1つの提案は、システムのtcpdumpの代わりにサブジェクトプロセスでstraceを使用することです。
ルートがない場合は、 Charlesproxy&Coなどのデバッグプロキシを使用できます。
パケットキャプチャは、Android上のネットワークデータを追跡するための最良のツールです。ルートアクセスを必要とせず、アプリケーションに基づいて呼び出しを読み、保存するのは簡単です。これをチェックしてください
このアプリケーションをお試しください https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture
すべてのネットワーク通信を表示できます。SSL暗号化通信も表示できます。
一般的なアプローチは、ここで説明するように「cat / proc / net/netstat」を呼び出すことです。