我想监控Android手机的网络流量。我在考虑使用tcpdump for Android,但我不确定是否必须为手机进行交叉编译。
另一个问题如下:如果我想监视某个应用程序的流量数据,那么有没有这样做的命令?
答案 0 :(得分:24)
TCPDUMP是我最喜欢的分析网络的工具之一,但是如果你发现难以交叉编译tcpdump for android,我建议你使用市场上的一些应用程序。
这些是我正在谈论的应用程序:
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设备。
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
exit
exit
adb pull /sdcard/dump.pcap ~/Downloads/
现在您可以使用Wireshark打开pcap文件。
关于监视特定流程的问题,请找到您应用的捆绑包ID,我们将其称为com.android.myapp
ps | grep com.android.myapp
/data/local
相同的方法,将strace下载到〜/ Downloads并放入tcpdump
。 cd /data/local
./strace -p 1234 -f -e trace=network -o /sdcard/strace.txt
现在,您可以在strace.txt中查找IP地址,并为这些IP过滤Wireshark日志。
答案 10 :(得分:0)
常见的方法是调用“cat / proc / net / netstat”,如下所述: