监控Android手机中的networking活动

我想监视我的Android手机的networkingstream量。 我正在考虑使用tcpdump for Android,但我不确定是否需要为手机进行交叉编译。

另一个问题是如下,如果我想监视某个应用程序的交通数据,有什么命令呢?

TCPDUMP是我最喜欢分析networking的工具之一,但如果你发现很难交叉编译android的tcpdump,我build议你使用市场上的一些应用程序。

这是我正在谈论的应用程序:

  • 鲨鱼:是Android手机wireshark的小版本)。 这个程序将创build一个* .pcap,你可以用PC上的文件阅读wireshark。
  • 鲨鱼阅读器:这个程序可以让你直接在你的Android手机阅读* .pcap。

鲨鱼应用程序与根植设备的作品,所以如果你想安装它,确保你有你的设备已经扎根。

祝你好运 ;)

如果你是从模拟器上做的话,你可以这样做:

运行emulator -tcpdump emulator.cap -avd my_avd将所有模拟器的stream量写入PC上的本地文件,然后用wireshark打开

有一个类似的post,可以帮助这里

注意:tcpdump需要root权限,所以如果还没有完成的话,你必须把你的电话root。 这里是一个tcpdump的ARM 二进制文件 (这适用于我的三星Captivate)。 如果你更喜欢构build你自己的二进制文件,说明在这里 (是的,你可能需要交叉编译)。

另外,请查看Shark For Root (一个基于tcpdump的Android数据包捕获工具)。

我不相信tcpdump可以通过特定的进程ID监视stream量。 克里斯·斯特拉顿提到的strace 方法似乎比它的价值更努力。 监视目标进程使用的特定IP和端口会更简单。 如果这个信息是未知的,在一个过程活动期间捕获所有的stream量,然后用Wireshark筛选产生的pcap。

Android SDK中包含的DDMS工具包含一个用于监控networkingstream量的工具。 它没有提供你从tcpdump和类似的低级工具获得的细节,但它仍然非常有用。

官方文档: http : //developer.android.com/tools/debugging/ddms.html#network

您将需要根据手机进行交叉编译tcpdump或使用其他人的已编译版本。

您可能会发现使用模拟器进行这些实验更容易,在这种情况下,您可以通过主机PC进行监视。 如果你必须使用一个真实的设备,另一个select是把它放在一个运行tcpdump的Linux机箱上挂在一个辅助接口上的WiFinetworking上。

我不知道如何去过滤一个特定的过程。 我在一些快速search中发现的一个build议是在主题进程上使用strace,而不是系统上的tcpdump。

对于Android手机(没有根): – 您可以使用此应用程序tPacketCapture这将捕获您的设备的networkingstream量当您启用捕获。 请参阅此url ,了解有关networking嗅探的更多详细信息,而不会使您的设备生根

一旦你有了.pcap格式的文件,你可以使用这个文件,并使用Wireshark等任何stream量分析器来分析stream量。

有关在Wireshark上捕获手机stream量的更多信息,另请参阅此文章

如果没有root用户,可以使用Charlesproxy &Co等debugging代理。

数据包捕获是在Android上跟踪networking数据的最佳工具。 不需要任何root权限,便于根据应用程序读取和保存通话。 看看这个

常用的方法是按如下所述调用“cat / proc / net / netstat”:

Androidnetworking统计信息

试试这个应用程序https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture

我们可以查看所有的networking通信,甚至SSLencryption通信。