Androidエミュレーターで送受信されるネットワークトラフィックを監視するにはどうすればよいですか?
Androidエミュレーターで送受信されるネットワークトラフィックを監視するにはどうすればよいですか?
回答:
Androidエミュレータからネットワークトラフィックを直接キャプチャするには、2つの方法があります。
エミュレータでARM互換のtcpdumpバイナリをコピーして実行し、出力をSDカードに書き込みます(例:)tcpdump -s0 -w /sdcard/emulator.cap
。
実行emulator -tcpdump emulator.cap -avd my_avd
して、エミュレータのすべてのトラフィックをPCのローカルファイルに書き込みます
どちらの場合も、通常どおりtcpdumpまたはWiresharkを使用してpcapファイルを分析できます。
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
警告が表示される場合は、コマンドに-engine classicを次のように追加しますemulator -tcpdump emulator.cap -avd my_avd -engine classic
。これにより、非推奨のエミュレータエンジンが強制的に使用されますが、問題が修正されるまで機能します。
avd
ありますか?
また、httpプロキシを使用して、エミュレータからのhttp要求を監視することもできます。-http-proxy
新しいエミュレータを開始するときにフラグを渡して、Androidトラフィックを監視するプロキシ(例:burp)を設定できます。使用例./emulator -http-proxy localhost:8080 -avd android2.2
。私の例ではBurpを使用しており、ポート8080をリッスンしていることに注意してください。詳細については、こちらをご覧ください。
OS XではCharlesを使用できます。シンプルで使いやすいです。
詳細については、Android EmulatorとCharles Proxyのブログ投稿をご覧ください。
Charles
以前は知りません。しかし、私が見る限り、これはHTTP固有のものです。しかし、OPの問題はそうではありません。
はい、wiresharkは機能します。
同じsrc IPから送信されているため、エミュレータートラフィックのみをフィルターで除外する簡単な方法はないと思います。
おそらく、最善の方法は、非常にむき出しのVMware環境をセットアップし、そこでのみエミュレータを実行することです。少なくとも、そうすれば、バックグラウンドトラフィックが多すぎないようになります。
Fiddlerを使用して、httpトラフィックを監視できます。
10.0.2.2
、AndroidエミュレーターのホストマシンのIPアドレスである必要があります。それが何であるかを知る必要はありません。
Wiresharkを直接使用してAndroidエミュレータートラフィックをキャプチャできるようになりました。extcapがありますそれを可能にするandroiddumpと呼ばれるプラグインます。あなたは持っている必要がありtcpdump
、システムイメージエミュレータ上で実行されている(最新の画像がそれを持って、API 24およびAPI 27枚の画像でテスト済み)とで実行可能ファイルをadbd
ホスト(単に実行にrootとして実行されていますadb root
)。Wiresharkで使用可能なインターフェースのリスト(Qtバージョンのみ、非推奨のGTK +にはありません)または次のように表示されるリストtshark -D
Bluetooth、Logcat、またはWifiトラフィックを傍受できるAndroidインターフェースがいくつかあるはずです。
android-wifi-tcpdump-emulator-5554(Android WiFi Android_SDK_built_for_x86 emulator-5554)
コマンドを使用してエミュレータを起動できます-avd Adfmf -http-proxy http://SYSTEM_IP:PORT
。私はHTTPアナライザーを使用しましたが、それ以外のものでも機能するはずです。詳細については、こちらをご覧ください:http :
//stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
http://docs.mitmproxy.org/en/stable/install.htmlを使用できます
セットアップが簡単で、追加の微調整は必要ありません。
私はさまざまなツールを試してみましたが、それは本当によくて簡単であることがわかりました。
mitmproxy
以前は知りません。しかし、私が見る限り、これはHTTP固有のものです。しかし、OPの問題はそうではありません。
Android Studioからネットワークトラフィックを監視できます。Androidモニターに移動し、[ネットワーク]タブを開きます。
http://developer.android.com/tools/debugging/ddms.html
更新: ⚠️AndroidデバイスモニターはAndroid Studio 3.1で廃止されました。詳しくはhttps://developer.android.com/studio/profile/monitorをご覧ください