web-dev-qa-db-fra.com

Android émulateur: comment surveiller le trafic réseau?

Comment surveiller le trafic réseau envoyé et reçu de mon émulateur Android?

116
mlindeboom

Il existe deux manières de capturer le trafic réseau directement à partir d'un émulateur Android:

  1. Copiez et exécutez un binaire tcpdump compatible ARM sur l’émulateur, écrivez le résultat sur la carte SD, par exemple (par exemple, tcpdump -s0 -w /sdcard/emulator.cap).

  2. Courir emulator -tcpdump emulator.cap -avd my_avd pour écrire tout le trafic de l'émulateur dans un fichier local de votre PC

Dans les deux cas, vous pouvez ensuite analyser le fichier pcap avec tcpdump ou Wireshark normalement.

96
Christopher Orr

Il est également possible d'utiliser un proxy http pour surveiller les requêtes http de l'émulateur. Tu peux passer -http-proxy drapeau lors du démarrage d’un nouvel émulateur pour définir le proxy (Exemple burp ) à surveiller Android trafic. Exemple d’utilisation ./emulator -http-proxy localhost:8080 -avd Android2.2. Notez que dans mon exemple, j'utilise Burp et qu'il s'agit du port d'écoute 8080. Plus d'informations peuvent être trouvées ici .

20
Waltsu

Pour OS X, vous pouvez utiliser Charles , c'est simple et facile à utiliser.

Pour plus d'informations, jetez un coup d'œil à émulateur Android et Charles Proxy blog.

10
Tom Susel

Une version actuelle de Android Studio n'a pas correctement appliqué le fichier -tcpdump argument. J'étais toujours capable de capturer un dump en passant le paramètre associé à qemu comme suit:

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

Oui, Winshark fonctionnera.

Je ne pense pas qu'il existe un moyen simple de filtrer le trafic d'émulateur uniquement, car il provient du même IP src.

Le meilleur moyen serait peut-être de configurer un environnement VMware très dépouillé et de n'exécuter que l'émulateur, du moins il n'y aurait pas trop de trafic en arrière-plan.

5
Bitdivision

Vous pouvez utiliser Fiddler pour surveiller le trafic http:

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

Vous pouvez également utiliser Fiddler2 here .

4
Laramie

Il est maintenant possible d'utiliser directement Wireshark pour capturer le trafic Android de l'émulateur. Il existe un plug-in extcap appelé androiddump qui le rend possible. Vous devez disposer d’un exécutable tcpdump dans l’image système exécutée sur l’émulateur (la plupart des images actuelles l’ont, testé avec des images API 24 et API 27) et de adbd exécuté en tant que racine sur l’hôte ( Il suffit de courir adb root). Dans la liste des interfaces disponibles dans Wireshark (la version Qt seulement, le GTK + obsolète ne l’a pas) ou la liste affichée avec tshark -D il devrait y avoir plusieurs Android interfaces permettant de renifler le trafic Bluetooth, Logcat ou Wifi, par exemple:

Android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)

3
Prof. Moriarty

Vous pouvez utiliser http://docs.mitmproxy.org/fr/stable/install.html

Il est facile à installer et ne nécessite aucun ajustement supplémentaire.

Je passe en revue divers outils mais je les trouve vraiment bons et faciles.

2
Dhiraj Himani

Vous pouvez surveiller le trafic réseau depuis Android Studio. Accédez à Android Surveiller et ouvrez l'onglet Réseau.

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

MISE À JOUR: ⚠️ Android Le moniteur de périphérique est obsolète dans Android Studio 3.1. Voir plus dans https://developer.Android.com/studio/profile/monitor

2
Fivos

Vous pouvez démarrer l'émulateur avec la commande -avd Adfmf -http-proxy http://SYSTEM_IP:PORT. J'ai utilisé HTTP Analyzer, mais cela devrait fonctionner pour tout le reste. Plus de détails peuvent être trouvés ici: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html

2
Paddy