Comment surveiller le trafic réseau envoyé et reçu de mon émulateur Android?
127
Il existe deux façons de capturer le trafic réseau directement à partir d'un émulateur Android:
Copiez et exécutez un binaire tcpdump compatible ARM sur l'émulateur, en écrivant la sortie sur la carte SD, peut-être (par exemple tcpdump -s0 -w /sdcard/emulator.cap
).
Exécutez emulator -tcpdump emulator.cap -avd my_avd
pour écrire tout le trafic de l'émulateur dans un fichier local sur votre PC
Dans les deux cas, vous pouvez ensuite analyser le fichier pcap avec tcpdump ou Wireshark comme d'habitude.
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
avertissement, ajoutez -engine classique à votre commande comme ceci:emulator -tcpdump emulator.cap -avd my_avd -engine classic
. Cela forcera le moteur d'émulation obsolète, mais devrait fonctionner jusqu'à ce qu'ils résolvent le problème.avd
se trouve le?Il est également possible d'utiliser le proxy http pour surveiller les requêtes http de l'émulateur. Vous pouvez passer le
-http-proxy
drapeau lors du démarrage d'un nouvel émulateur pour définir le proxy (exemple burp ) pour surveiller le trafic Android. Exemple d'utilisation./emulator -http-proxy localhost:8080 -avd android2.2
. Notez que dans mon exemple, j'utilise Burp, et il écoute le port 8080. Plus d'informations peuvent être trouvées ici .la source
Pour OS X, vous pouvez utiliser Charles , c'est simple et facile à utiliser.
Pour plus d'informations, veuillez consulter le billet de blog Android Emulator et Charles Proxy .
la source
Charles
avant. Mais pour autant que je puisse voir, c'est spécifique à HTTP. Mais la question du PO ne l'est pas.Une version actuelle d'Android Studio n'a pas correctement appliqué l'
-tcpdump
argument. J'étais toujours capable de capturer un vidage en passant le paramètre associé à qemu comme suit:la source
Oui, WireShark fonctionnera.
Je ne pense pas qu'il existe un moyen facile de filtrer uniquement le trafic d'émulateur, car il provient de la même adresse IP src.
La meilleure façon serait peut-être de configurer un environnement VMware très nu et d'exécuter uniquement l'émulateur là-dedans, du moins de cette façon, il n'y aurait pas trop de trafic en arrière-plan.
la source
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 ici .
la source
10.0.2.2
l'adresse IP de la machine hôte dans les émulateurs Android, pas besoin de savoir ce que c'est.Il est désormais possible d'utiliser Wireshark directement pour capturer le trafic de l'émulateur Android. Il existe un plugin extcap appelé androiddump qui le rend possible. Vous devez avoir un
tcpdump
exécutable dans l'image système en cours d'exécution sur l'émulateur (la plupart des images actuelles l'ont, testé avec les images API 24 et API 27) etadbd
s'exécutant en tant que root sur l'hôte (exécutez simplementadb root
). Dans la liste des interfaces disponibles dans Wireshark (version Qt uniquement, le GTK + obsolète ne l'a pas) ou la liste affichée avectshark -D
il devrait y avoir plusieurs interfaces Android permettant de renifler le trafic Bluetooth, Logcat ou Wifi, par exemple:android-wifi-tcpdump-emulator-5554 (émulateur Android WiFi Android_SDK_built_for_x86-5554)
la source
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.htmlla source
Vous pouvez utiliser http://docs.mitmproxy.org/en/stable/install.html
Il est facile à installer et ne nécessitera aucune modification supplémentaire.
Je passe par divers outils mais je trouve que c'est vraiment bon et facile.
la source
mitmproxy
avant. Mais pour autant que je puisse voir, c'est spécifique à HTTP. Mais la question du PO ne l'est pas.Vous pouvez surveiller le trafic réseau depuis Android Studio. Accédez à Moniteur Android et ouvrez l'onglet Réseau.
http://developer.android.com/tools/debugging/ddms.html
MISE À JOUR: ⚠️ Android Device Monitor est obsolète dans Android Studio 3.1. En savoir plus sur https://developer.android.com/studio/profile/monitor
la source
Je vous suggère d'utiliser Wireshark .
Vous pouvez utiliser d'autres techniques de filtrage mentionnées ici pour obtenir un trafic spécifique.
la source