【问题标题】:How to capture network traffic from a specific android application.如何从特定的 android 应用程序捕获网络流量。
【发布时间】:2014-03-13 08:56:56
【问题描述】:

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

【问题讨论】:

    标签: android networking traffic strace


    【解决方案1】:

    您也可以使用SandroProxy。它还可以捕获不尊重android os代理设置的应用程序流。还可以选择为 ssl 流创建 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 支持发送---

    【讨论】:

    • 发帖者要求解释所使用的机制,而不是商业包以不透明的方式这样做。
    • 这是免费的应用程序。您还可以从源代码构建自定义实现。 code.google.com/p/sandrop。但是如果你还是觉得不对,我可以删除答案。
    • 将链接更改为指向来源会比链接到已完成的应用程序更接近于回答问题,但最好是添加对所使用机制的简要说明。
    • 还将添加如何构建自定义。
    • 这是一个改进,但如果你解释它是如何工作的,它仍然会很好——就像问题解释了(大部分)另一个系统是如何工作的一样。我们的想法是,我们希望您的回答能够作为对所提问题的回应有价值,即使 没有点击任何链接。因此,例如,您如何知道 哪个 应用程序流量来自(不是您如何看到,而是您的程序如何计算出来)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2013-11-05
    • 2019-11-04
    相关资源
    最近更新 更多