监控Android手机中的网络活动

时间:2011-02-25 19:28:40

标签: android monitoring wireshark tcpdump

我想监控Android手机的网络流量。我在考虑使用tcpdump for Android,但我不确定是否必须为手机进行交叉编译。

另一个问题如下:如果我想监视某个应用程序的流量数据,那么有没有这样做的命令?

11 个答案:

答案 0 :(得分:24)

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

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

  • Shark:适用于Android手机的小版本wireshark)。该程序将创建一个* .pcap,您可以使用wireshark在PC上读取该文件。
  • Shark Reader:此程序允许您直接在Android手机中阅读* .pcap。

Shark应用程序适用于root设备,因此如果您想安装它,请确保您的设备已经植根。

祝你好运;)

答案 1 :(得分:16)

如果您是从模拟器中执行此操作,则可以这样执行:

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

有一篇类似的帖子可能有助HERE

答案 2 :(得分:7)

注意:tcpdump需要root权限,因此如果尚未完成,则必须root。这是tcpdump的ARM binary(适用于我的三星Captivate)。如果您更喜欢构建自己的二进制文件,说明是here(是的,您可能需要交叉编译)。

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

我不相信tcpdump可以通过特定进程ID监控流量。克里斯·斯特拉顿所指的那条method似乎比它的价值更多的努力。监视目标进程使用的特定IP和端口会更简单。如果该信息未知,请在流程活动期间捕获所有流量,然后使用Wireshark筛选生成的pcap。

答案 3 :(得分:3)

Android SDK中包含的DDMS工具包括一个用于监控网络流量的工具。它没有提供从tcpdump和类似的低级工具获得的详细信息,但它仍然非常有用。

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

答案 4 :(得分:2)

你需要root手机并交叉编译tcpdump或使用别人已编译的版本。

您可能会发现使用模拟器进行这些实验更容易,在这种情况下,您可以从主机pc进行监控。如果你必须使用一个真实的设备,另一个选择是将它放在一个挂在运行tcpdump的linux盒子上的二级接口的wifi网络上。

我不知道如何通过特定流程进行过滤。我在一些快速谷歌搜索中发现的一个建议是在主题过程中使用strace而不是在系统上使用tcpdump。

答案 5 :(得分:2)

对于Android手机(无根): - 您可以使用此应用程序tPacketCapture这将在您启用捕获时捕获设备的网络流量。 有关网络嗅探的更多详细信息,请参阅this url,无需设备生根。

获得.pcap格式的文件后,您可以使用此文件并使用Wireshark等任何流量分析器分析流量。

另请参阅此帖子,了解有关Capturing mobile phone traffic on wireshark

的更多建议

答案 6 :(得分:2)

如果没有root,您可以使用调试代理,例如Charlesproxy& Co。

答案 7 :(得分:1)

Packet Capture是跟踪android上网络数据的最佳工具。 不需要任何root访问权限,并且易于阅读并根据应用程序保存调用。 检查this

答案 8 :(得分:1)

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

我们可以查看所有网络通信..甚至SSL加密通信。

答案 9 :(得分:1)

前提条件:您的计算机上已经安装了adb和wirehark,并且您拥有已扎根的android设备。

  1. tcpdump下载到〜/ Downloads
  2. adb push ~/Downloads/tcpdump /sdcard/
  3. adb shell
  4. su root
  5. mv /sdcard/tcpdump /data/local/
  6. cd /data/local/
  7. chmod +x tcpdump
  8. ./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
  9. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

现在您可以使用Wireshark打开pcap文件。

关于监视特定流程的问题,请找到您应用的捆绑包ID,我们将其称为com.android.myapp

  1. ps | grep com.android.myapp
  2. 复制从输出中看到的第一个数字。我们将其称为1234。如果您没有看到任何输出,则需要启动该应用程序。
  3. 使用与上述/data/local相同的方法,将strace下载到〜/ Downloads并放入tcpdump
  4. cd /data/local
  5. ./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt

现在,您可以在strace.txt中查找IP地址,并为这些IP过滤Wireshark日志。

答案 10 :(得分:0)

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

Android network stats