如何从特定的Android应用程序捕获网络流量。

时间:2014-02-14 05:58:39

标签: android networking traffic strace

我读过一篇论文,提出了一种捕获来自特定Android应用程序的网络流量的方法。它说"我们使用tcpdump来收集来自虚拟机的所有网络流量。我们将strace实用程序移植到Android以记录app执行的每个网络系统调用。我们使用应用程序的进程ID(pid)识别应用程序启动的所有线程。根据此线程信息,我们可以过滤掉非源自应用程序的流量"。但是我仍然不知道操作原理。那么如何从特定的Android应用程序捕获网络流量呢?感谢您的回答。

1 个答案:

答案 0 :(得分:7)

您还可以使用SandroProxy。它还可以捕获不遵守android os代理设置的应用流程。还可以选择为ssl flow创建pcap文件。一个选项也是创建可以使用wireshark解密的ssl。

想法是使用iptables帮助拦截http / https流作为普通代理或透明代理,将其存储为请求/响应或pcap文件并进一步转发到服务器。

如何确定谁在提出请求: 当您打开套接字代理时,您必须匹配来自的信息 / proc / net / tcp或/ proc / net / tcp6来获取进程uid。有了这个,你可以获得packagesNames。它可以更多一个。

您可以在此处查看如何创建自定义代理并从源代码构建自定义代理:

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支持发送---