it-swarm.com.de

Überwachen Sie die Netzwerkaktivität in Android Phones

Ich möchte den Netzwerkverkehr meines Telefons Android) überwachen. Ich habe überlegt, tcpdump für Android zu verwenden, bin mir aber nicht sicher, ob ich für das Telefon eine Cross-Kompilierung durchführen muss.

Eine andere Frage ist die folgende: Wenn ich die Verkehrsdaten für eine bestimmte Anwendung überwachen möchte, gibt es dafür einen Befehl?

59
Iker

TCPDUMP ist eines meiner Lieblingstools für die Netzwerkanalyse. Wenn es jedoch schwierig ist, tcpdump für Android zu kompilieren, empfehle ich Ihnen, einige Anwendungen vom Markt zu verwenden.

Dies sind die Anwendungen, über die ich gesprochen habe:

  • Shark: Ist eine kleine Version von Wireshark für Android Handys). Dieses Programm erstellt eine * .pcap und Sie können die Datei mit wireshark auf dem PC lesen.
  • Shark Reader: Mit diesem Programm können Sie die * .pcap direkt in Ihrem Android Telefon lesen.

Die Shark-App funktioniert mit gerooteten Geräten. Wenn Sie sie installieren möchten, müssen Sie sicherstellen, dass Ihr Gerät bereits gerootet ist.

Viel Glück ;)

25
Martin Solac

Wenn Sie es vom Emulator aus tun, können Sie es folgendermaßen tun:

Lauf emulator -tcpdump emulator.cap -avd my_avd, um den gesamten Datenverkehr des Emulators in eine lokale Datei auf Ihrem PC zu schreiben und diese dann in wireshark zu öffnen

Es gibt einen ähnlichen Beitrag, der helfen könnte HIER

16
ninjasense

Hinweis: Für tcpdump sind Root-Rechte erforderlich, sodass Sie Ihr Telefon rooten müssen, falls dies noch nicht geschehen ist. Hier ist ein ARM binär von tcpdump (dies funktioniert für mein Samsung Captivate). Wenn Sie es vorziehen, Ihre eigene Binärdatei zu erstellen, folgen Sie den Anweisungen hier (Ja, Sie müssten wahrscheinlich die Kompilierung kreuzen).

Schauen Sie sich auch Shark For Root (ein Android Packet Capture Tool basierend auf tcpdump) an.

Ich glaube nicht, dass tcpdump den Datenverkehr anhand einer bestimmten Prozess-ID überwachen kann. Die Strace Methode , auf die sich Chris Stratton bezieht, scheint mehr Aufwand zu sein als es wert ist. Es wäre einfacher, bestimmte IPs und Ports zu überwachen, die vom Zielprozess verwendet werden. Wenn diese Informationen nicht bekannt sind, erfassen Sie den gesamten Datenverkehr während eines Zeitraums der Prozessaktivität und sichten Sie den resultierenden Teil mit Wireshark.

7
user600838

Das im Android SDK enthaltene DDMS-Tool enthält ein Tool zum Überwachen des Netzwerkverkehrs. Es bietet nicht die Art von Details, die Sie von tcpdump und ähnlichen Tools auf niedriger Ebene erhalten, ist aber dennoch sehr nützlich.

Offizielle Dokumentation: http://developer.Android.com/tools/debugging/ddms.html#network

3
emidander

Sie müssen das Telefon rooten und tcpdump cross compilieren oder die bereits kompilierte Version einer anderen Person verwenden.

Möglicherweise fällt es Ihnen leichter, diese Experimente mit dem Emulator durchzuführen. In diesem Fall können Sie die Überwachung vom Host-PC aus durchführen. Wenn Sie ein echtes Gerät verwenden müssen, besteht eine andere Möglichkeit darin, es in ein WLAN-Netzwerk zu stellen, das an einer sekundären Schnittstelle auf einer Linux-Box hängt, auf der tcpdump ausgeführt wird.

Ich bin mir nicht sicher, wie Sie nach einem bestimmten Prozess filtern sollen. Ein Vorschlag, den ich in einem schnellen Googeln gefunden habe, ist die Verwendung von strace für den betreffenden Prozess anstelle von tcpdump für das System.

2
Chris Stratton

Ohne root können Sie Debug-Proxys wie Charlesproxy & Co verwenden.

2
Megachip

Für Android Phones (Without Root): - Sie können diese Anwendung verwenden tPacketCapture Dadurch wird der Netzwerkverkehr für Ihr Gerät erfasst, wenn Sie die Erfassung aktivieren. Siehe diese URL für weitere Details zum Netzwerk-Sniffing ohne Rooting Ihres Geräts.

Sobald Sie die Datei haben, die in .pcap Format können Sie diese Datei verwenden und den Verkehr mit einem beliebigen Traffic Analyzer wie Wireshark analysieren.

In diesem Beitrag finden Sie auch weitere Ideen zu Erfassen des Mobilfunkverkehrs auf Wireshark

2
Kunal0615

Packet Capture ist das beste Tool, um Netzwerkdaten auf Android zu verfolgen. Benötigt keinen Root-Zugriff und ist einfach zu lesen und zu speichern, je nach Anwendung. Check this out

1

Voraussetzungen: adb und wireshark sind auf Ihrem Computer installiert und Sie haben ein gerootetes Android Gerät.

  1. Download tcpdump nach ~/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. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

Jetzt können Sie die pcap-Datei mit Wireshark öffnen.

Wie für Ihre Frage zur Überwachung bestimmter Prozesse, finden Sie die Bundle-ID Ihrer App, nennen wir es com.Android.myapp

  1. ps | grep com.Android.myapp
  2. kopieren Sie die erste Zahl, die Sie aus der Ausgabe sehen. Nennen wir es 1234. Wenn Sie keine Ausgabe sehen, müssen Sie die App starten.
  3. Download strace nach ~/Downloads und in /data/local auf dieselbe Weise wie oben für tcpdump.
  4. cd /data/local
  5. ./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt

Jetzt können Sie in strace.txt nach IP-Adressen suchen und Ihr Wireshark-Protokoll nach diesen IPs filtern.

1
Chris Woolfe

Probieren Sie diese Anwendung aus https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

Wir können die gesamte Netzwerkkommunikation anzeigen. Sogar die SSL-verschlüsselte Kommunikation.

1
hkbharath

Der übliche Ansatz ist, "cat/proc/net/netstat" wie hier beschrieben aufzurufen:

Android Netzwerkstatistik

0
Peter Knego