我阅读了一篇关于如何捕获特定Android应用程序网络流量的论文。其中提到:“我们使用tcpdump来收集虚拟机中所有的网络流量。我们将strace实用程序移植到Android上,记录应用程序执行的每个网络系统调用。我们使用应用程序的进程ID(pid)识别所有启动的线程。基于这些线程信息,我们可以过滤出不是该应用程序发起的流量。” 但我仍然不知道它的操作原理。那么我该如何捕获特定Android应用程序的网络流量呢?谢谢回答。
我阅读了一篇关于如何捕获特定Android应用程序网络流量的论文。其中提到:“我们使用tcpdump来收集虚拟机中所有的网络流量。我们将strace实用程序移植到Android上,记录应用程序执行的每个网络系统调用。我们使用应用程序的进程ID(pid)识别所有启动的线程。基于这些线程信息,我们可以过滤出不是该应用程序发起的流量。” 但我仍然不知道它的操作原理。那么我该如何捕获特定Android应用程序的网络流量呢?谢谢回答。
想法是拦截HTTP/HTTPS流量,作为正常代理或透明代理使用iptables来协助存储请求/响应或pcap文件,并将其转发到服务器。
如何确定谁在发送请求: 当您打开到代理的套接字时,必须从/proc/net/tcp或/proc/net/tcp6中匹配信息以获取进程UID。通过这样做,您可以获取软件包名称。可能会有多个。
您可以查看如何制作自定义代理并从以下来源构建自己的代理:
http://code.google.com/p/sandrop/source/browse/projects/SandroProxyPlugin/readme.txt
--- 由SandroProxy支持发送 ---