Comment surveiller le trafic réseau envoyé et reçu de mon émulateur Android?
Il existe deux manières de capturer le trafic réseau directement à partir d'un émulateur Android:
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
).
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.
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 .
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.
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
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.
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)
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.
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
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