我想监视我的Android手机的网络流量。我当时在考虑将tcpdump用于Android,但不确定是否需要为手机进行交叉编译。
另一个问题是,如果我想监视某个应用程序的流量数据,是否有执行此操作的命令?
TCPDUMP是我最喜欢的网络分析工具之一,但是如果您发现难以交叉编译用于Android的tcpdump,建议您使用市场上的某些应用程序。
这些是我正在谈论的应用程序:
Shark应用程序可用于植根设备,因此,如果要安装它,请确保已植根设备。
祝你好运;)
尝试此应用https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture
我们可以查看所有网络通信..甚至SSL加密的通信。
常用方法是按如下所述调用“ cat / proc / net / netstat”:
如果您正在仿真器中进行操作,则可以这样操作:
运行emulator -tcpdump emulator.cap -avd my_avd
,将所有仿真器的流量写入PC上的本地文件,然后在Wireshark中打开它
[有类似的帖子可能会帮助HERE
注意:tcpdump需要root特权,因此如果尚未完成手机的话,则必须root。这是tcpdump的ARM binary(适用于我的Samsung Captivate)。如果您喜欢构建自己的二进制文件,则说明为here(是的,您可能需要交叉编译)。
另外,请签出Shark For Root(基于tcpdump的Android数据包捕获工具)。
我不相信tcpdump可以通过特定的进程ID监视流量。克里斯·斯特拉顿(Chris Stratton)所指的线索method似乎比其价值更大。监视目标进程使用的特定IP和端口会更简单。如果该信息未知,请捕获过程活动期间的所有流量,然后使用Wireshark筛选生成的pcap。
Android SDK中包含的DDMS工具包括用于监视网络流量的工具。它没有提供您从tcpdump和类似的低级工具获得的详细信息,但它仍然非常有用。
官方文档:http://developer.android.com/tools/debugging/ddms.html#network
对于Android手机(无根):-您可以使用此应用程序tPacketCapture,当您启用捕获功能时,它将捕获设备的网络流量。请参见this url,以了解有关在不生根设备的情况下进行网络嗅探的更多详细信息。
一旦有了.pcap
格式的文件,您就可以使用此文件并使用任何流量分析器(例如Wireshark)来分析流量。
[另请参阅此帖子以获取有关Capturing mobile phone traffic on wireshark的更多想法
您需要启动手机并交叉编译tcpdump或使用其他人已经编译的版本。
您可能会发现使用仿真器更容易进行这些实验,在这种情况下,您可以从托管PC进行监视。如果您必须使用真实的设备,另一种选择是将其放置在与运行tcpdump的Linux盒上的辅助接口无关的wifi网络上。
我不知道您怎么通过特定的过程进行过滤。我在一些快速谷歌搜索中发现的一个建议是在主题进程上使用strace而不是系统上的tcpdump。
没有root用户,您可以使用Charlesproxy&Co之类的调试代理。>
前提条件:您的计算机上已经安装了adb和wirehark,并且您拥有已扎根的android设备。
Packet Capture是在android上跟踪网络数据的最佳工具。不需要任何root访问权限,并且易于根据应用程序读取和保存呼叫。检出this]