Émulateur Android: Comment surveiller le trafic réseau?
10 réponses
il y a deux façons de capturer le trafic réseau directement à partir D'un émulateur Android:
-
copier et exécuter un tcpdump binaire compatible ARM sur l'émulateur, en écrivant la sortie à la carte SD, peut-être (par exemple
tcpdump -s0 -w /sdcard/emulator.cap
). -
Run
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.
il est également possible d'utiliser le proxy http pour surveiller les requêtes http de l'émulateur. Vous pouvez passer -http-proxy
drapeau lors du démarrage d'un nouvel émulateur pour définir 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 .
Oui, wireshark marchera.
Je ne pense pas qu'il y ait un moyen facile de filtrer uniquement le trafic émulateur, puisqu'il provient de la même IP src.
peut-être que la meilleure façon serait de mettre en place un environnement VMware très nu et de n'y faire fonctionner que l'émulateur, au moins de cette façon il n'y aurait pas trop de trafic de fond.
une version actuelle D'Android Studio n'a pas correctement appliqué l'argument -tcpdump
. J'ai quand même réussi à capturer un dump en passant le paramètre correspondant à qemu comme suit:
tools/emulator -engine classic -tcpdump dump.cap -avd myAvd
, Vous pouvez démarrer l'émulateur avec la commande -avd Adfmf -http-proxy http://SYSTEM_IP:PORT
.
J'ai utilisé L'analyseur HTTP, mais ça devrait marcher 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
vous pouvez surveiller le trafic réseau depuis Android Studio. Allez à Android Monitor et ouvrez l'onglet Réseau.
il est maintenant possible d'utiliser Wireshark directement pour capturer le trafic des émulateurs Android. Il y a un extcap 151980920 "plugin appelé androiddump qui le rend possible. Vous devez avoir un exécutable tcpdump
dans l'image système tournant sur l'émulateur (la plupart des images actuelles l'ont testé avec les images API 24 et API 27) et adbd
tournant en root sur l'hôte (il suffit d'exécuter adb root
). Dans la liste des interfaces disponibles dans Wireshark (version Qt seulement, GTK + déprécié ne l'a pas) ou la liste affichée avec tshark -D
il devrait y avoir plusieurs interfaces Android 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/en/stable/install.html
c'est facile à configurer et ne nécessitera pas de modifications supplémentaires.
je passe par divers outils, mais j'ai trouvé qu'il est vraiment bon et facile.