2011-02-25 10 views
48

Me gustaría controlar el tráfico de red de mi teléfono Android. Estaba pensando en usar tcpdump para Android, pero no estoy seguro de si tengo que compilar de forma cruzada para el teléfono.Supervisar la actividad de red en teléfonos Android

Otra pregunta es la siguiente: Si quiero monitorear los datos de tráfico para una determinada aplicación, ¿hay algún comando para hacerlo?

+0

Shark ya no se mantiene y no funciona en las nuevas versiones de Android. ¿Qué método estás usando ahora? – Arya

+0

@Arya, prueba esta aplicación https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture –

+0

@ MateusGondim Gracias por eso. ¿Sabes algo que pueda usar para el cifrado TLS? – Arya

Respuesta

21

TCPDUMP es una de mis herramientas favoritas para analizar redes, pero si le resulta difícil compilar de forma cruzada tcpdump para android, le recomiendo que use algunas aplicaciones del mercado.

Esta son las aplicaciones que estaba hablando:

  • Tiburón: Es pequeña versión de Wireshark para los teléfonos Android). Este programa creará un * .pcap y usted puede leer con el archivo en PC con wireshark.
  • Shark Reader: Este programa le permite leer el * .pcap directamente en su teléfono Android.

La aplicación Shark funciona con dispositivos rooteados, por lo que si desea instalarla, asegúrese de que ya tiene el dispositivo rooteado.

Buena suerte;)

+8

Proporcione un enlace directo para descargar las herramientas sugeridas. –

+0

¿Estas herramientas siguen siendo las mejores en este momento? –

14

Si usted lo está haciendo desde el emulador puede hacerlo de esta manera:

Run emulator -tcpdump emulator.cap -avd my_avd escribir todo el tráfico del emulador para un archivo local en su PC y luego abrirlo en Wireshark

Hay una publicación similar que podría ayudar HERE

2

Debería rootear el teléfono y realizar una compilación cruzada de tcpdump o usar la versión ya compilada de otra persona.

Puede que le resulte más fácil hacer estos experimentos con el emulador, en cuyo caso podría hacer la supervisión desde la PC de alojamiento. Si debe usar un dispositivo real, otra opción sería ponerlo en una red wifi colgando de una interfaz secundaria en un linux box ejecutando tcpdump.

No sé cómo se filtraría por un proceso específico. Una sugerencia que encontré en Google es usar strace en el proceso del tema en lugar de tcpdump en el sistema.

0

El enfoque común es llamar "cat/proc/net/netstat" tal como se describe aquí:

Android network stats

+1

Eso proporcionará una lista de conexiones, pero no permitirá monitorear los datos en sí. También puede perder canales sin conexiones con estado a menos que los capture en el instante correcto. Además, usar exec en cat es totalmente innecesario; basta con leer el "archivo"/proc/net/netstat en java. –

+0

Nunca lo intenté, así que no lo sabría con certeza. La primera respuesta afirma que funciona http://stackoverflow.com/questions/3394511/measure-data-roaming-traffic-on-android –

7

Nota: tcpdump requiere privilegios de root, por lo que tendrá a raíz de su teléfono si no se hecho ya. Aquí hay un ARM binary de tcpdump (esto funciona para mi Samsung Captivate). Si prefiere construir su propio binario, las instrucciones son here (sí, es probable que necesite cruzar la compilación).

Además, mira Shark For Root (una herramienta de captura de paquetes de Android basada en tcpdump).

No creo que tcpdump pueda monitorear el tráfico por ID de proceso específico. La estrategia method a la que se refiere Chris Stratton parece ser más esfuerzo que su valor. Sería más simple monitorear direcciones IP específicas y puertos utilizados por el proceso objetivo. Si no se conoce esa información, capture todo el tráfico durante un período de actividad del proceso y luego examine el pcap resultante con Wireshark.

2

para los teléfonos Android (Sin Root): - se puede utilizar esta aplicación tPacketCapture esto va a capturar el tráfico de red para el dispositivo cuando se habilita la captura. Consulte this url para obtener más información sobre el rastreo de red sin rootear su dispositivo.

Una vez que tenga el archivo que está en formato .pcap, puede usar este archivo y analizar el tráfico usando cualquier analizador de tráfico como Wireshark.

también ver este post para más ideas sobre Capturing mobile phone traffic on wireshark

2

Sin raíz, se puede usar proxies de depuración como Charlesproxy & Co.

+1

Eso es cierto, estoy usando Charlesproxy durante mucho tiempo y esta herramienta es realmente genial. Proporciona regulación y descifrado SSL (mediante el uso de una clave personalizada) también. Pero sería mucho más agradable tener esta herramienta como parte de Android Studio. –

1

Captura de paquetes es la mejor herramienta para realizar un seguimiento de datos de la red en el androide. DOnot necesita ningún acceso raíz y es fácil de leer y guardar las llamadas según la aplicación. Comprobar this cabo

Cuestiones relacionadas