Как я могу получить живое представление tcpdump из эмулятора Android в Wireshark на OSX? - PullRequest
5 голосов
/ 04 ноября 2011

Мне нужно отладить связь между моим приложением и сервером. Я смог перехватить пакеты, запустив эмулятор с переключателем tcpdump :

%emulator -tcpdump emulator.cap @MyDroid

Проблема, с которой я столкнулся, заключается в том, что мне нужно отключить эмулятор, прежде чем я смогу открыть файл emulator.cap в Wireshark. В противном случае Wireshark будет жаловаться, что захват не завершен. Этот процесс очень, очень медленный. Я хотел бы иметь возможность получить в реальном времени просмотр файла emulator.cap в Wireshark.

Кажется, это должно быть возможно с использованием труб. Я занимаюсь разработкой под OS X и попробовал путь 1 и путь 2 из этого руководства: http://wiki.wireshark.org/CaptureSetup/Pipes.

По крайней мере, это позволяет мне просматривать снимок захвата, но я не получаю представление, которое обновляется в режиме реального времени. Нажатие кнопки обновления в Wireshark не обновляет перехваченные пакеты. Мне нужно закрыть и снова открыть Wireshark, чтобы получить обновление (что гораздо быстрее, чем перезапустить эмулятор).

Какие шаги для просмотра живого захвата с эмулятора Android в Wireshark на OS X?

1 Ответ

2 голосов
/ 15 ноября 2011

Начните с создания именованного канала и откройте Wireshark для чтения из него.Затем направьте tcpdump эмулятора для записи в тот же именованный канал.Wireshark, кажется, чувствителен к выполнению действий в этом порядке, иначе он будет жаловаться на формат libcap.

Вот команды:

%mkfifo /tmp/emulator
%wireshark -k -i /tmp/emulator &
%emulator -tcpdump /tmp/emulator @MyDroid

Обновление:

После использования в течение некоторого времени, оно кажется хрупким.У меня был Wireshark, жаловался на пакет, и единственный способ восстановиться - повторить все эти шаги снова.Есть ли лучшее / более надежное решение?

...