2010-03-16 7 views

Antwort

5

Ja, wireshark funktioniert.

Ich glaube nicht, dass es eine einfache Möglichkeit gibt, nur den Emulatorverkehr herauszufiltern, da er von derselben src IP kommt.

Vielleicht wäre der beste Weg, eine sehr nackte VMware-Umgebung einzurichten und nur den Emulator dort zu betreiben, zumindest würde es nicht zu viel Hintergrundverkehr geben.

+0

Guter Vorschlag, aber es ist schwierig, einen Emulator läuft auf eine VM zu erhalten. Hast du das zur Arbeit gebracht? – MikeSchem

+0

In welche Probleme sind Sie geraten? Ich habe es nicht selbst gemacht, aber ich kann mir nicht vorstellen, dass es irgendwelche Probleme geben würde. – Bitdivision

91

Es gibt zwei Möglichkeiten, den Netzwerkverkehr direkt von einem Android-Emulator zu erfassen:

  1. Kopieren und ein ARM-compatible tcpdump binary auf dem Emulator läuft, Ausgang auf die SD-Karte zu schreiben, vielleicht (z tcpdump -s0 -w /sdcard/emulator.cap).

  2. Run emulator -tcpdump emulator.cap -avd my_avd zu schreiben den gesamten Verkehr des Emulators in einer lokalen Datei auf Ihrem PC

In beiden Fällen wird dann die pcap-Datei mit tcpdump oder Wireshark als normal analysieren.

+0

So ist es nicht Echtzeit/online? Ich meine, die Pakete können erst am Ende analysiert werden? – BornToCode

+0

Im ersten Fall könnten Sie über stdout auf dem Gerät analysieren, anstatt in eine Datei zu schreiben. Im zweiten Fall können Sie die Datei möglicherweise so streamen, wie sie geschrieben wurde. Oder Sie können den Netzwerkverkehr auf dem Hostcomputer und nicht auf dem Emulator erfassen. –

+0

Ich habe die Emulatoren gefunden, die ich bereits jetzt benutze tcpdump installiert, und der Befehl # 1 funktioniert, ohne einen zu installieren. Sie können es auch mit "adb -e shell tcpdump -s0 -w /sdcard/emulator.cap" ausführen. – Les

4

können Sie Fiddler verwenden HTTP-Datenverkehr zu überwachen:

http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator-working-with-fiddler-http-proxy-tool/

Sie auch here Fiddler2 verwenden können.

+1

Ein weiterer Link [hier] (http://blogs.msdn.com/b/jpsanders/archive/2013/04/03/configuring-fiddler-to-be-a-a-proxy-for-android-emulators.aspx). Ich würde hinzufügen, dass der Proxy-Server "10.0.2.2" sein sollte, das ist die IP-Adresse des Host-Rechners in Android-Emulatoren, keine Notwendigkeit, herauszufinden, was es ist. – Mendhak

17

Es ist auch möglich, HTTP-Proxy zu verwenden, um HTTP-Anforderungen vom Emulator zu überwachen. Sie können das Flag -http-proxy beim Starten eines neuen Emulators übergeben, um den Proxy (Beispiel burp) für die Überwachung des Android-Datenverkehrs einzurichten. Beispielverwendung ./emulator -http-proxy localhost:8080 -avd android2.2. Beachten Sie, dass in meinem Beispiel Burp verwendet wird und Port 8080 überwacht wird. Weitere Informationen finden Sie unter here.

+1

Was ist mit https Verkehr – pee2pee

6

Für OS X können Sie Charles verwenden, es ist einfach und einfach zu bedienen.

+0

Ich weiß nicht 'Charles' vorher. Aber soweit ich sehen kann, ist es HTTP-spezifisch. Aber die Frage des OP ist nicht. –

2

Sie können den Netzwerkverkehr von Android Studio überwachen. Gehen Sie zu Android Monitor und öffnen Sie die Registerkarte Netzwerk.

http://developer.android.com/tools/debugging/ddms.html

+5

können Sie sagen, von wo zu öffnen Detail Netzwerknutzung Tab in Android Studio 1.5 (Windows) wie in Bild in der Verbindung gezeigt, ich bekomme nur ein Diagramm, aber nicht Details? –

4

Eine aktuelle Version von Android Studio gelten nicht korrekt -tcpdump Argument. Ich war noch in der Lage einen Dump zu erfassen, indem die zugehörigen Parameter zu qemu vorbei wie folgt:

tools/emulator -engine classic -tcpdump dump.cap -avd myAvd 
0

Sie http://docs.mitmproxy.org/en/stable/install.html

Es ist einfach zu Setup verwenden können und werden keine zusätzlichen Verbesserungen erforderlich.

Ich gehe durch verschiedene Tools, aber fand es wirklich gut und einfach.

+0

Ich weiß nicht "mitmproxy" vorher. Aber soweit ich sehen kann, ist es HTTP-spezifisch. Aber die Frage des OP ist nicht. –

+0

New Android Studio 3.0 bietet Profiler, können Sie das verwenden. Und für mitm bietet es alle Arten von Protokollen, http, https usw. Sie müssen nur den Proxy richtig konfigurieren. –

+0

Kann ich Pakete von Apps erfassen, die nicht von mir entwickelt wurden? Und auf einem Drittanbieter-Emulator wie Nox App Player? Vielen Dank! –

0

Es ist jetzt möglich, Wireshark direkt zum Erfassen von Android-Emulator-Datenverkehr zu verwenden. Es gibt ein extcap Plugin namens androiddump, die es möglich macht. Sie müssen eine tcpdump ausführbare Datei im System-Image haben, die auf dem Emulator ausgeführt wird (die meisten aktuellen Images haben sie mit API 24 und API 27-Images getestet) und adbd läuft als root auf dem Host (führen Sie einfach adb root aus). In der Liste der verfügbaren Schnittstellen in Wireshark (nur Qt-Version, der veraltete GTK + hat es nicht) oder der Liste mit tshark -D sollte es mehrere Android-Schnittstellen geben, die Bluetooth-, Logcat- oder Wifi-Verkehr erkennen, zB:

android-wifi-tcpdump-Emulator-5554 (Android WiFi Android_SDK_built_for_x86 Emulator-5554)