【问题标题】:Monitor network activity in Android Phones监控 Android 手机中的网络活动
【发布时间】:2023-03-12 09:09:01
【问题描述】:

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

另一个问题是,如果我想监控某个应用程序的流量数据,有什么命令可以做到吗?

【问题讨论】:

标签: android monitoring wireshark tcpdump


【解决方案1】:

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

这些是我所说的应用程序:

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

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

祝你好运;)

【讨论】:

  • 请提供下载建议工具的直接链接。
  • 什么是“鲨鱼”?在网上搜索“Android Shark”只会返回一堆以海洋为主题的手机游戏。
【解决方案2】:

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

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

有一个类似的帖子可能对HERE有帮助

【讨论】:

    【解决方案3】:

    注意:tcpdump 需要 root 权限,所以如果你还没有做的话,你必须 root 手机。这是 tcpdump 的 ARM binary(这适用于我的三星 Captivate)。如果您更喜欢构建自己的二进制文件,说明是 here(是的,您可能需要交叉编译)。

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

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

    【讨论】:

      【解决方案4】:

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

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

      有关Capturing mobile phone traffic on wireshark的更多想法,另请参阅此帖子

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          前提条件:你的电脑上安装了adb和wireshark,并且你有一个root的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. Ctrl+C 捕获足够的数据后。
          10. exit
          11. exit
          12. adb pull /sdcard/dump.pcap ~/Downloads/

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

          至于你关于监控特定进程的问题,找到你的应用的bundle id,我们称之为com.android.myapp

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

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

          【讨论】:

          • 请注意,在某些手机上,您需要使用adb root 而不是adb shell su root
          • 注意如果你的手机上有adb root,你必须adb push ~/Downloads/tcpdump /data/local
          【解决方案7】:

          您需要root手机并交叉编译tcpdump或使用其他人已经编译的版本。

          您可能会发现使用模拟器进行这些实验更容易,在这种情况下,您可以从托管 PC 进行监控。如果您必须使用真实设备,另一种选择是将其放在 wifi 网络上,该网络挂在运行 tcpdump 的 linux 机器上的辅助接口上。

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

            • 没错,我使用Charlesproxy已经很久了,这个工具真的很酷。它还提供节流和 SSL 解密(通过使用自定义密钥)。但如果将这个工具作为 Android Studio 的一部分会更好。
            【解决方案9】:

            数据包捕获是在 android 上跟踪网络数据的最佳工具。 不需要任何 root 访问权限,并且易于阅读和保存基于应用程序的调用。 签出this

            【讨论】:

              【解决方案10】:

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

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

              【讨论】:

                【解决方案11】:

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

                Android network stats

                【讨论】:

                • 这将提供连接列表,但不允许监控数据本身。除非您在正确的时刻捕捉到它们,否则您也可能会错过没有状态连接的频道。在 cat 上使用 exec 也是完全没有必要的 - 只需阅读 java 中的 /proc/net/netstat “文件”。
                • 我从未尝试过,所以不确定。第一个答案声称可以工作stackoverflow.com/questions/3394511/…
                猜你喜欢
                • 2013-11-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多