2016-10-03 6 views
0

Я хочу захватить сетевой трафик, созданный событием, активированным в графическом интерфейсе (например, нажатой кнопкой) приложения android (файл .apk), установленного на AVD. Во-первых, я захватил системный вызов процесса с помощью команды Strace в ADB оболочки (я получил PID процесса с помощью команды пс):Захват сетевого трафика, создаваемого приложением android

strace -f -tt -s 200 -p 27707 -o syscallcap.txt 

Затем я анализирую текстовый файл, но главное поток (27707) принимает данные (или отправляет данные) - системный вызов recvfrom (sendto или sendmsg) - из неизвестного процесса; последние два поля являются NULL):

27707 19: 06: 29,441356 recvfrom (72, «nysv \ 0 \ 0 \ 0 \ 0} \ 323 \ 33 {\ 370 \ г \ 0 \ 0W \ 36 \ 1 \ 0 \ 0 \ 0 \ 0 \ 0" , 2400, MSG_DONTWAIT, NULL, NULL) = 24

Как я могу понять, что системные вызовы важны для моих целей? Как я могу захватить сетевой трафик http/tcp/udp приложения для Android, установленного на эмуляторе, начиная с системного вызова? Любые советы или идеи приветствуются, потому что это для проекта диссертации.

ответ

0

Ну, есть два способа, которыми я знаю, чтобы регистрировать сетевой трафик устройства.

IPTABLES

IPTables является приложением брандмауэра для модуля Linux Netfilter, используется для настройки цепочек и правил. Мы используем iptables для перехвата и перенаправления трафика на наш внутренний прокси-сервер, который затем передает трафик на настроенный прокси-сервер.

Требуется корневых

Android firewall with VpnService

Используя этот метод, вы можете осуществить туннелирование в приложении, которое будет регистрировать все сетевой трафик.

ссылка, представленная должна дать вам направление

Теперь для отображения трафика от переднего плана приложения, все приложения имеют уникальный идентификатор приложения, который может быть использован для установки/контролировать цепь для входа своего трафика.

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