Как захватить сетевой трафик из конкретного приложения для Android.

Я прочитал документ, в котором предлагается подход к захвату сетевого трафика из определенного приложения для Android. Он говорит: "Мы использовали tcpdump для сбора всего сетевого трафика с виртуальной машины. Мы портировали утилиту strace на Android для регистрации каждого выполненного сетевого вызова в приложении. Мы определили все потоки, запущенные приложением, используя идентификатор процесса (pid) приложения. Основываясь на этой информации о потоке, мы можем отфильтровать трафик, который не является источником из приложения ". Но я до сих пор не могу знать принцип работы. Так как я могу захватить сетевой трафик из определенного приложения для Android? Спасибо за ответ.

Ответы

Ответ 1

Вы также можете использовать SandroProxy. Он также может захватывать поток приложений, который не учитывает настройки прокси-сервера android. Существует также возможность создавать файлы pcap для потока ssl. Одним из вариантов является также создание ssl, который может быть расшифрован с помощью wirehark.

Идея заключается в том, чтобы перехватывать поток http/https как обычный прокси или прозрачный прокси с помощью справки iptables, хранить его в виде запросов/ответов или файлов pcap и перенаправлять дальше на сервер.

Как определить, кто выполняет запросы: когда у вас есть открытый сокет для прокси, вы должны сопоставить информацию из /proc/net/tcp или /proc/net/tcp6, чтобы получить процесс uid. С помощью этого вы можете получить имена пакетов. Это может быть и больше.

Вы можете изучить, как создать собственный прокси-сервер и создать его из источников здесь:

http://code.google.com/p/sandrop/source/browse/projects/SandroProxyPlugin/src/org/sandroproxy/plugin/gui/MainActivity.java

http://code.google.com/p/sandrop/source/browse/projects/SandroProxyPlugin/readme.txt

--- отправлено SandroProxy support---