在Android上捕获某些进程或包的数据包[关闭]

Posted

技术标签:

【中文标题】在Android上捕获某些进程或包的数据包[关闭]【英文标题】:Capture packets for certain process or package on Android [closed] 【发布时间】:2012-11-13 03:57:42 【问题描述】:

我可以在 android 上甚至通过 adb 捕获某些进程或包的数据包吗?

【问题讨论】:

“数据包”到底是什么意思? 很抱歉我的英语不太好!我知道如何使用 tcpdump 捕获整个网络数据包,但我很难在 Android 上仅监控一个进程。感谢所有回复。 【参考方案1】:

如果您正在查看特定应用程序,请通过设置应用程序禁用其他进程的后台数据。手机上安装tcpdump,电脑上安装wireshark过滤数据。无法直接按特定进程进行过滤,但您可以让手机的其余部分足够安静,以便您可以筛选噪音。

这里有一个很好的教程:analyzing android network traffic

如果您正在寻找到已知网站的流量,例如如果您试图嗅探私有 api 调用,那么在 wireshark 中过滤进出该地址的出站和入站流量是微不足道的。

【讨论】:

【参考方案2】:

不,抱歉,您不能通过adb 监视应用程序对 Internet 的使用。具有 root 访问权限,you have more options,但即便如此,也不能简单地使用 adb

【讨论】:

首先感谢您的回复。我的手机已经root了,我可以通过任何方式捕获给定应用程序的网络数据包吗? @dpro:请参阅the SO question that I linked to in my question 及其各种答案以获得更多帮助。 监视我自己的应用程序怎么样?有没有办法查看所有流量?假设我是我的应用程序中的一个库,我不能更改任何代码,但我可以更改清单,甚至在调试模式下运行并且设备已植根。 @Ilya_Gazman:“有没有办法查看所有流量?” - 没有特定于该应用程序。在您的 WiFi 接入点上使用标准网络监控工具,或使用已接受答案中所述的 Wireshark。我不知道有任何 adb 选项。 我在想更多关于 android.net.TrafficStats 或 KeyStore 的东西。我知道从棉花糖(或棒棒糖)开始,您可以请求管理员权限并使用 DevicePolicyManager 安装用户证书。这让我觉得可能有办法......

以上是关于在Android上捕获某些进程或包的数据包[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

制作数据包捕获系统需要啥? [关闭]

对 OSGi 捆绑包的完整 Android 支持 [关闭]

使用 libpcap,有没有办法从离线 pcap 文件中确定捕获的数据包的文件偏移量?

如何让Wireshark可以捕获无线网卡的数据包

log4j配置只打印指定jar或包的DEBUG信息

Log4j配置具有相同类或包的不同记录器级别