Wie kann ich den von meinem Android-Emulator gesendeten und empfangenen Netzwerkverkehr überwachen?
Antworten
Zu viele Anzeigen?Es gibt zwei Möglichkeiten, den Netzwerkverkehr zu erfassen direkt von einem Android-Emulator aus:
-
Kopieren und Ausführen einer ARM-kompatible tcpdump-Binärdatei auf dem Emulator, das Schreiben der Ausgabe auf die SD-Karte, vielleicht (z.B.
tcpdump -s0 -w /sdcard/emulator.cap
). -
ausführen.
emulator -tcpdump emulator.cap -avd my_avd
um den gesamten Datenverkehr des Emulators in eine lokale Datei auf Ihrem PC zu schreiben
In beiden Fällen können Sie die pcap-Datei dann wie gewohnt mit tcpdump oder Wireshark analysieren.
Es ist auch möglich, einen http-Proxy zu verwenden, um http-Anfragen vom Emulator aus zu überwachen. Sie können übergeben -http-proxy
Flagge beim Starten eines neuen Emulators, um den Proxy zu setzen (Beispiel Rülpsen ), um den Android-Datenverkehr zu überwachen. Beispiel Nutzung ./emulator -http-proxy localhost:8080 -avd android2.2
. Beachten Sie, dass ich in meinem Beispiel Burp verwende, das den Port 8080 abhört. Mehr Informationen finden Sie unter ici .
Für OS X können Sie Folgendes verwenden Karl Es ist einfach und leicht zu bedienen.
Weitere Informationen finden Sie unter Android-Emulator und Charles Proxy Blogbeitrag.
Es ist jetzt möglich, Wireshark direkt zu verwenden, um den Datenverkehr des Android-Emulators aufzuzeichnen. Es gibt eine extcap Plugin namens androiddump die es möglich macht. Sie brauchen eine tcpdump
im System-Image, das auf dem Emulator läuft (die meisten aktuellen Images haben es, getestet mit API 24 und API 27 Images) und adbd
als Root auf dem Host laufen (führen Sie einfach adb root
). In der Liste der verfügbaren Schnittstellen in Wireshark (nur in der Qt-Version, das veraltete GTK+ hat sie nicht) oder in der Liste, die mit tshark -D
Es sollte mehrere Android-Schnittstellen geben, die es ermöglichen, Bluetooth-, Logcat- oder Wifi-Verkehr abzuhören, z.B.:
Android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)
Ja, Wireshark wird funktionieren.
Ich glaube nicht, dass es eine einfache Möglichkeit gibt, den reinen Emulatorverkehr herauszufiltern, da er von derselben src-IP kommt.
Vielleicht wäre es am besten, eine reine VMware-Umgebung einzurichten und nur den Emulator darin laufen zu lassen, dann gäbe es zumindest nicht zu viel Hintergrundverkehr.
- See previous answers
- Weitere Antworten anzeigen