¿Cómo controlo el tráfico de red enviado y recibido desde mi emulador de Android?
127
Hay dos formas de capturar el tráfico de red directamente desde un emulador de Android:
Copie y ejecute un binario tcpdump compatible con ARM en el emulador, escribiendo la salida en la tarjeta SD, tal vez (por ejemplo tcpdump -s0 -w /sdcard/emulator.cap
).
Ejecute emulator -tcpdump emulator.cap -avd my_avd
para escribir todo el tráfico del emulador en un archivo local en su PC
En ambos casos, puede analizar el archivo pcap con tcpdump o Wireshark como de costumbre.
The -tcpdump flag is not supported in QEMU2 yet and will be ignored.
la advertencia, agregue -motor clásico a su orden como la siguiente:emulator -tcpdump emulator.cap -avd my_avd -engine classic
. Esto forzará un motor de emulador obsoleto, pero debería funcionar hasta que solucionen el problema.avd
se encuentra elTambién es posible usar el proxy http para monitorear las solicitudes http del emulador. Puede pasar la
-http-proxy
bandera al iniciar un nuevo emulador para configurar el proxy (ejemplo eructo ) para monitorear el tráfico de Android. Ejemplo de uso./emulator -http-proxy localhost:8080 -avd android2.2
. Tenga en cuenta que en mi ejemplo estoy usando Burp, y está escuchando el puerto 8080. Puede encontrar más información aquí .fuente
Para OS X puede usar Charles , es simple y fácil de usar.
Para obtener más información, eche un vistazo a la publicación del blog Emulador de Android y Charles Proxy .
fuente
Charles
antes. Pero por lo que puedo ver, es específico de HTTP. Pero la pregunta del OP no lo es.Una versión actual de Android Studio no aplicó correctamente el
-tcpdump
argumento. Todavía pude capturar un volcado pasando el parámetro relacionado a qemu de la siguiente manera:fuente
Sí, Wirehark funcionará.
No creo que haya una manera fácil de filtrar únicamente el tráfico del emulador, ya que proviene de la misma IP src.
Quizás la mejor manera sería configurar un entorno VMware muy simple y solo ejecutar el emulador allí, al menos de esa manera no habría demasiado tráfico de fondo.
fuente
Puede usar Fiddler para monitorear el tráfico http:
http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator-working-with-fiddler-http-proxy-tool/
También puedes usar Fiddler2 aquí .
fuente
10.0.2.2
la dirección IP de la máquina host en los emuladores de Android, sin necesidad de averiguar cuál es.Ahora es posible usar Wireshark directamente para capturar el tráfico del emulador de Android. Hay un complemento extcap llamado androiddump que lo hace posible. Debe tener un
tcpdump
archivo ejecutable en la imagen del sistema que se ejecute en el emulador (la mayoría de las imágenes actuales lo tienen, probado con imágenes API 24 y API 27) y que seadbd
ejecuta como raíz en el host (solo ejecutaradb root
). En la lista de las interfaces disponibles en Wireshark (solo la versión Qt, el GTK + obsoleto no lo tiene) o la lista que se muestra contshark -D
debería haber varias interfaces de Android que permitan detectar el tráfico de Bluetooth, Logcat o Wifi, por ejemplo:android-wifi-tcpdump-emulator-5554 (Android WiFi Android_SDK_built_for_x86 emulator-5554)
fuente
Puede iniciar el emulador con el comando
-avd Adfmf -http-proxy http://SYSTEM_IP:PORT
. Usé HTTP Analyzer, pero debería funcionar para cualquier otra cosa. Más detalles se pueden encontrar aquí: http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.htmlfuente
Puede usar http://docs.mitmproxy.org/en/stable/install.html
Es fácil de configurar y no requerirá ajustes adicionales.
Reviso varias herramientas, pero me pareció muy bueno y fácil.
fuente
mitmproxy
antes. Pero por lo que puedo ver, es específico de HTTP. Pero la pregunta del OP no lo es.Puede monitorear el tráfico de red desde Android Studio. Vaya a Monitor de Android y abra la pestaña Red.
http://developer.android.com/tools/debugging/ddms.html
ACTUALIZACIÓN: ⚠️ Android Device Monitor quedó en desuso en Android Studio 3.1. Ver más en https://developer.android.com/studio/profile/monitor
fuente
Te sugiero que uses Wireshark .
Puede utilizar otras técnicas de filtrado mencionadas aquí para obtener tráfico específico.
fuente