我想监控我的 Android 手机的网络流量。我正在考虑为 Android 使用 tcpdump,但我不确定是否必须为手机进行交叉编译。
另一个问题是,如果我想监控某个应用程序的流量数据,有什么命令可以做到吗?
我想监控我的 Android 手机的网络流量。我正在考虑为 Android 使用 tcpdump,但我不确定是否必须为手机进行交叉编译。
另一个问题是,如果我想监控某个应用程序的流量数据,有什么命令可以做到吗?
TCPDUMP 是我最喜欢的网络分析工具之一,但如果您发现难以为 android 交叉编译 tcpdump,我建议您使用市场上的一些应用程序。
这些是我正在谈论的应用程序:
Shark 应用程序适用于 root 设备,所以如果你想安装它,请确保你的设备已经 root。
祝你好运 ;)
如果你是从模拟器做的,你可以这样做:
运行emulator -tcpdump emulator.cap -avd my_avd
将模拟器的所有流量写入PC上的本地文件,然后在wireshark中打开它
有一个类似的帖子可能对这里有帮助
注意:tcpdump 需要 root 权限,所以如果你还没有做的话,你必须 root 手机。这是 tcpdump 的 ARM二进制文件(适用于我的 Samsung Captivate)。如果您更喜欢构建自己的二进制文件,请参阅此处的说明(是的,您可能需要交叉编译)。
另外,请查看Shark For Root(基于 tcpdump 的 Android 数据包捕获工具)。
我不相信 tcpdump 可以通过特定进程 ID 监控流量。Chris Stratton 提到的 strace方法似乎比它的价值更多。监视目标进程使用的特定 IP 和端口会更简单。如果该信息未知,请在进程活动期间捕获所有流量,然后使用 Wireshark 筛选生成的 pcap。
对于 Android 手机(无 Root):- 您可以使用此应用程序tPacketCapture,这将在您启用捕获时捕获您设备的网络流量。请参阅此 url以获取有关无需 root 设备进行网络嗅探的更多详细信息。
获得.pcap
格式文件后,您可以使用此文件并使用任何流量分析器(如 Wireshark)分析流量。
Android SDK 中包含的 DDMS 工具包括一个用于监控网络流量的工具。它没有提供您从 tcpdump 和类似的低级工具获得的那种详细信息,但它仍然非常有用。
官方文档:http: //developer.android.com/tools/debugging/ddms.html#network
前提条件: adb 和 wireshark 已安装在您的计算机上,并且您有一个 root 的 android 设备。
adb push ~/Downloads/tcpdump /sdcard/
adb shell
su root
mv /sdcard/tcpdump /data/local/
cd /data/local/
chmod +x tcpdump
./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
Ctrl+C
一旦您捕获了足够的数据。exit
exit
adb pull /sdcard/dump.pcap ~/Downloads/
现在您可以使用 Wireshark 打开 pcap 文件。
至于你关于监控特定进程的问题,找到你的应用的bundle id,我们称之为com.android.myapp
ps | grep com.android.myapp
ps
尝试使用top
./data/local
相同的方式投入使用tcpdump
。cd /data/local
./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt
现在您可以查看 strace.txt 的 IP 地址,并为这些 IP 过滤您的 wireshark 日志。
您需要 root 手机并交叉编译 tcpdump 或使用其他人已经编译的版本。
您可能会发现使用模拟器进行这些实验更容易,在这种情况下,您可以从主机 PC 进行监控。如果您必须使用真实设备,另一种选择是将其放在 wifi 网络上,该网络挂在运行 tcpdump 的 linux 机器上的辅助接口上。
我不知道您将如何按特定流程进行过滤。我在一些快速谷歌搜索中发现的一个建议是在主题进程上使用 strace 而不是系统上的 tcpdump。
数据包捕获是在 android 上跟踪网络数据的最佳工具。不需要任何 root 访问权限,并且易于阅读和保存基于应用程序的调用。看看这个_
Without root, you can use debug proxies like Charlesproxy&Co.
试试这个应用程序 https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture
我们可以查看所有网络通信.. 甚至 SSL 加密通信。
常见的方法是调用“cat /proc/net/netstat”,如下所述: