如何在普通Android手机上抓包
-具体可行的办法和步骤
--通用的pcap抓包办法
上一篇:Android应用如何点击桌面图标开启悬浮窗后跳转到最近打开的应用
下一篇:编写中。
- 一、前言
作为实时音视频和流媒体相关领域的研发人员,经常需要使用pcap抓取网络的数据包进行分析和辅助验证,很多时候就会涉及自己抓包,或者更极端的、教别人如何用最简短的步骤去抓包,来发送给自己分析。
本文就尽量用详实的步骤,列举出在普通Android设备上的抓取网络的数据包方式,也算对手机抓包的方式进行简单的总结和汇总,仅供参考。
- 二、Pcap数据包的分析方式
通常都是输出到电脑上,用Wireshark打开和进行分析。如语音数据,主要解析其信令、分析其RTP包数据,如下图所示,有兴趣可以自己找工具书来看,此处不再赘述。
- 三、Android最常用的抓包方式
笔者在日常工作中,通常使用以下3种方式来自己抓包,向其他人推荐另外一种终极的方式进行抓包,如下:
1、使用tcpdump进行抓包(手机需要Root)。
android-tcp-udp-tcpdump.zip下载链接为:
https://pan.baidu.com/s/1fU1Zawh9VlxRFZ61N1qEkg?pwd=mdnj 提取码: mdnj
使用命令的示例如下:
tcpdump -w tcp.pcap -i wlan0
2、抓包精灵(手机需要Root)
pcap_app.apk 下载链接为:
https://pan.baidu.com/s/12CQWi4W0H2Jkwxw8ITFzpw?pwd=8ubq 提取码: 8ubq
使用方式:在Root过的手机上开启app后,点击【开始抓包】按钮即可。
3、NetCapture抓包精灵(大部分手机不用Root)
pcap_NetCapture.apk 下载链接为:
链接: https://pan.baidu.com/s/1TLjXssV3G56uiavmlF7rWg?pwd=uep1 提取码: uep1
使用方式:普通手机上运行app后,点击右下角的【开始】按钮即可。(它最大的好处是大部分Android手机都不需要Root就能正常的抓包)
- 四、通用的抓包方式
上面这些方法,专业性比较强,有些还要求手机具备Root权限。普通用户的安卓手机根本不具备这样的环境和操作手段,而且大多数使用应用APP的用户都是普通人,你让它弄一个命令去抓包也是强人所难。
那么,有没有办法采用一个通用的方式来进行网络的数据包的获取呢?甚至使它不局限Android手机,iPhone、老人机、学生手机甚至电话手表等等,要是想排查它们里面运行的某些APP的网络数据包,要如何处理呢?
笔者经过多年实践和经验,发现一个很简单的办法,并且足够通用,即:
笔记本电脑上开启一个【移动热点】,Android手机直接连接这个WIFI。然后笔记本电脑上简单开启Wireshark大白鲨,直接抓包就行。如下图所示:
这样的话,手机上所有的操作,它的网络都会通过笔记本电脑来上网。只需要在笔记本电脑抓包的数据上过滤手机的IP和手机上应用使用的网络端口就行。^V^。
- 五、小结
我们经过经验总结,发现普通手机上进行网络数据包的获取,压根不需要跟Android手机本身进行较劲。站在网络更高的层面,一下子视野就开朗了。这就是传说的“高端的食材往往采用最朴素的烹饪方式”。
但是不管怎么样,结果是相同的。笔记本电脑上抓包的效果与Android手机本身进行的抓包,效果是等效的。
至此,我们探索出通用的办法,并且可以将这个抓包办法输出给我们的下游用户,教别人如何用最简短的步骤去抓包出来进行统一的分析。本文的方法具有一定的通用性,对同类的应用或网络功能的获取,也具有一定的参考意义。