24/7 захват пакетов в Android с помощью tcpdump - PullRequest
7 голосов
/ 02 апреля 2012

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

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

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

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

Я посмотрел на: ReadLine в TCPDump-Buffer иногда блокируется до kill tcpdump , но это не полностью решает мою проблему.

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

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

Как насчет того, чтобы попробовать приложение tPacketCapture (работает с некорневыми устройствами)

ОС Android 4.0

Бесплатно

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

-

Гаку

2 голосов
/ 07 июля 2013

Я пытался как следует, чтобы увидеть, что происходит с tcpdump после чередования сетевого интерфейса.1. открытый Wi-Fi запустить tcpdump-arm 2. запустить ps | grep tcpdump-arm3. закрыть Wi-Fi и открыть мобильный интерфейс4.run ps | grep tcpdump-arm

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

Я думаю, что вам нужен tcpdump, чтобы продолжать захват даже после изменения сетевого интерфейса.Вы можете отслеживать трансляцию изменений подключения, как говорится в руководстве по для Google .Затем вы должны запустить killall, чтобы убить процесс tcpdumpНаконец, перезапустите процесс tcpdump, если вы не указали интерфейс, он будет прослушивать только что открытый интерфейс. Если вы хотите, чтобы tcpdump вернулся быстро, вы можете добавить опцию "-l" в качестве ответа в T CPDump-Buffer иногда блокируется до тех пор, пока не будет уничтожен tcpdump .

2 голосов
/ 28 марта 2013

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

...