2012-04-02 15 views
5

Me gustaría obtener capturas de tráfico de datos a nivel de paquete (.pcap) en Android durante una semana (en varios archivos si es posible).24/7 captura de paquetes en Android usando tcpdump

Pensé que podría usar tcpdump a través de Shark, sin embargo, creo que la captura se detiene después de un tiempo. La mayor captura de paquetes que obtuve es de alrededor de 40MB. Descubrí que tcpdump se detiene/se bloquea al cambiar la interfaz de red. Por ejemplo, cuando el teléfono está conectado a 3G, cuando ejecuto tcpdump desde Shark, puedo ver el proceso de tcpdump ejecutándose hasta que active WiFi.

En el Galaxy S2, cuando estoy conectado a través de WiFi tengo las siguientes interfaces (obtenidas mediante el uso de netcfg en adb shell): lo, svnet0, usb0, sit0, eth0. Cuando me conecto a través de 3G, obtengo pdp0 en lugar de eth0.

¿Hay alguna manera de que pueda ejecutar tcpdump 24/7? ¿O alguna forma de comprobar cuándo se está ejecutando y si se detiene, hacer que vuelva a ejecutarse desde una aplicación Java? Comprobando el proceso de tcpdump o algo así ¿quizás? ¿O monitoreando el estado de la red y ejecutando tcpdump cada vez que se cambia la red?

He echado un vistazo a: ReadLine on TCPDump-Buffer sometimes blocks until kill tcpdump, pero no resuelve por completo mi problema.

Estoy utilizando dispositivos rooteados.

Respuesta

0

Si tienes un dispositivo rooteado luego use SimplePacketCapture en lugar de tPacketCapture. tPacketCapture crea un vpn que puede romper su aplicación de VoIP.

1

He intentado lo siguiente para ver qué pasa con tcpdump después de alternar la interfaz de red.
1.open wifi plazo tcpdump-arm
2.run ps | grep tcpdump-brazo
3.close wifi y la interfaz móvil abierta
4.run ps | grep tcpdump-brazo

he encontrado que Al alternar la interfaz de red en el teléfono móvil, el proceso tcpdump-arm sigue funcionando, pero no captura ningún paquete.

Creo que necesita tcpdump para seguir capturando incluso cuando la interfaz de red ha cambiado. Puede ver la transmisión de cambio de conectividad como dice al principio tutorial of google.
Luego, debe ejecutar "killall" para matar el proceso tcpdump
Por último, reinicie el proceso tcpdump, si no especifica una interfaz, escuchará en la interfaz recién abierta. Si desea que el tcpdump regrese rápidamente, puede agregar la opción "-l" como lo implica la respuesta en T CPDump-Buffer sometimes blocks until kill tcpdump.

Cuestiones relacionadas