2012-04-02 2 views
5

Я хотел бы получить захват трафика на уровне пакетов (.pcap) в Android в течение недели (по возможности, в нескольких файлах).24/7 захват пакетов в Android с помощью tcpdump

Я думал, что могу использовать tcpdump через Shark, однако обнаружил, что захват останавливается через некоторое время. Самый большой пакетный захват, который я получил, составляет около 40 МБ. Я узнал, что tcpdump останавливается/падает при изменении сетевого интерфейса. Например, когда телефон подключен к 3G, когда я запускаю tcpdump из Shark, я вижу процесс tcpdump, пока я не включу Wi-Fi.

В Galaxy S2 при подключении через WiFi у меня есть следующие интерфейсы (полученные с помощью netcfg в оболочке adb): lo, svnet0, usb0, sit0, eth0. Когда я подключаюсь через 3G, я получаю pdp0 вместо eth0.

Есть ли способ, которым я могу запустить tcpdump 24/7? Или любой способ проверить, когда он запущен, и если он перестанет заставлять его запускать снова из Java-приложения? Проверка процесса tcpdump или что-то вроде этого может быть? Или контролировать состояние сети и запускать tcpdump каждый раз при изменении сети?

У меня был взгляд: ReadLine on TCPDump-Buffer sometimes blocks until kill tcpdump, но он не полностью решает мою проблему.

Я использую укоренившиеся устройства.

ответ

2

Как о попытке применения tPacketCapture (работает с некорневых устройств)

Android OS 4.0

Free

https://play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture

-

Gaku

+0

Спасибо! Однако я должен обновить все телефоны, которые я использую, и для некоторых из них невозможно получить обновление (оригинал от оператора). Замечательно, что я могу это сделать в ОС Android 4.0. – Ekhi

0

Если у вас есть внедренное устройство затем используйте SimplePacketCapture вместо tPacketCapture. tPacketCapture создает vpn, который может сломать ваше приложение voip.

1

Iv попытался сделать так, чтобы увидеть, что происходит с tcpdump после чередования сетевого интерфейса.
1.open WiFi пробег tcpdump-arm
2.run пс | Grep ТСРйитр-рука
3.Закройте Wi-Fi и открытый мобильный интерфейс
4.run пс | Grep ТСРйитр-рука

Я обнаружил, что при чередовании сетевого интерфейса на мобильном телефоне процесс tcpdump-arm все еще работает, но он не захватывает никаких пакетов.

Я думаю, вам нужно tcpdump, чтобы сохранить захват даже при изменении сетевого интерфейса. Вы можете поймать трансляцию изменения связи, как говорит сначала tutorial of google.
Затем вы должны запустить «killall», чтобы убить процесс tcpdump
Наконец, перезапустите процесс tcpdump, если вы не указали интерфейс, он будет прослушивать только что открытый интерфейс. Если вы хотите вернуть tcpdump быстро, вы можете добавить опцию «-l», как следует из ответа T CPDump-Buffer sometimes blocks until kill tcpdump.

Смежные вопросы