2010-03-16 40 views

Respuesta

5

Sí, wireshark funcionará.

No creo que haya una manera fácil de filtrar únicamente el tráfico del emulador, ya que proviene del mismo IP de src.

Quizás la mejor manera sea 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.

+0

Buena sugerencia, pero es difícil conseguir un emulador que se ejecuta en la parte superior de una máquina virtual. ¿Has conseguido esto para trabajar? – MikeSchem

+0

¿Qué problemas ha tenido? No lo he hecho yo mismo, pero no puedo imaginar que haya problemas. – Bitdivision

91

Hay dos maneras de capturar el tráfico de red directamente de un emulador de Android:

  1. copiar y ejecutar un ARM-compatible tcpdump binary en el emulador, la escritura de salida a la tarjeta SD, tal vez (por ejemplo tcpdump -s0 -w /sdcard/emulator.cap).

  2. Run emulator -tcpdump emulator.cap -avd my_avd a escribir todo el tráfico del emulador para un archivo local en su PC

En ambos casos, a continuación, puede analizar el archivo pcap con tcpdump o Wireshark con normalidad.

+0

¿No es en tiempo real/en línea? Quiero decir, los paquetes solo se pueden analizar al final? – BornToCode

+0

En el primer caso, podría analizar a través de stdout en el dispositivo en lugar de escribir en un archivo. En el segundo caso, es posible que pueda transmitir/rastrear el archivo tal como está escrito. O puede capturar el tráfico de red en el equipo host, en lugar de en el emulador. –

+0

He encontrado que los emuladores que uso ya tienen tcpdump instalado, y el comando # 1 funciona sin instalar uno. También puede ejecutarlo con "adb -e shell tcpdump -s0 -w /sdcard/emulator.cap". – Les

4

Puede utilizar 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 puede utilizar Fiddler2 here.

+1

Otro enlace [aquí] (http://blogs.msdn.com/b/jpsanders/archive/2013/04/03/configuring-fiddler-to-be-a-proxy-for-android-emulators.aspx). Añadiría que el servidor proxy debería ser '10.0.2.2', que es la dirección IP de la máquina host en los emuladores de Android, sin necesidad de averiguar de qué se trata. – Mendhak

17

También es posible utilizar el proxy http para controlar las solicitudes http del emulador. Puede pasar el indicador -http-proxy al iniciar un nuevo emulador para establecer el proxy (Ejemplo burp) para supervisar 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. Más información se puede encontrar here.

+1

¿Qué pasa con el tráfico https – pee2pee

6

Para OS X puede usar Charles, es simple y fácil de usar.

+0

No sé 'Charles' antes. Pero, por lo que puedo ver, es específico de HTTP. Pero la pregunta de OP no es. –

2

Puede supervisar el tráfico de red desde Android Studio. Vaya a Android Monitor y abra la pestaña Red.

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

+5

¿Puedes decir desde dónde abrir la pestaña detallada de uso de red en android studio 1.5 (windows) como se muestra en la imagen en el enlace, solo estoy obteniendo un gráfico pero no detalles? –

4

Una versión actual de Android Studio no aplicó correctamente el argumento -tcpdump. Yo todavía era capaz de capturar un volcado pasando el parámetro relacionado con qemu de la siguiente manera:

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

Puede utilizar http://docs.mitmproxy.org/en/stable/install.html

Su fácil de configurar y no requiere ningún ajuste adicional.

Voy a través de varias herramientas, pero me pareció muy bueno y fácil.

+0

No sé 'mitmproxy' antes. Pero, por lo que puedo ver, es específico de HTTP. Pero la pregunta de OP no es. –

+0

Nuevo Android Studio 3.0 proporciona un generador de perfiles, puede usarlo. Y para mitm proporciona todo tipo de protocolos, http, https, etc. Solo necesita configurar el proxy correctamente. –

+0

¿Está disponible para capturar paquetes de aplicaciones no desarrolladas por mí? ¿Y en un emulador de terceros como Nox App Player? ¡Gracias! –

0

Ahora es posible usar Wireshark directamente para capturar el tráfico del emulador de Android. Hay un extcap plugin llamado androiddump que lo hace posible. Necesita tener un ejecutable tcpdump en la imagen del sistema que se ejecuta en el emulador (la mayoría de las imágenes actuales lo tienen, probado con imágenes API 24 y API 27) y adbd ejecutándose como raíz en el host (solo ejecute adb root). En la lista de interfaces disponibles en Wireshark (solo la versión Qt, la GTK + obsoleta no la tiene) o la lista que se muestra con tshark -D, debe haber varias interfaces Android que permiten detectar el tráfico Bluetooth, Logcat o Wifi, por ejemplo:

android-wifi-tcpdump-emulador-5554 (Android WiFi Android_SDK_built_for_x86 emulador-5554)

Cuestiones relacionadas