一、通过tcpdump抓包
以android平台为例介绍tcpdump抓包
-
先下载tcpdump
-
将tcpdump push至手机: adb push tcpdump /data/local
-
修改tcpdump权限: adb shell chmod 777 /data/local/tcpdump
-
直接在adb shell 中抓包: cd /data/local ./tcpdump -s -0 -w /sdcard/tcpdump
-
操作手机,快捷键Ctrl + C 可以停止装包,将tcpdump 用wireshark打开,分析
二、电脑做wifi热点,手机连上后电脑上使用wireshark抓包
该方法手机无须root,并且适用于各种有wifi功能的手机(IOS、android等)、平板等。只要电脑的无线网卡具有无线承载功能,就可以。方法如下:
-
把电脑的网络做为热点
-
开启wifi热点后,被测手机连接到该热点;
-
启动wireshark,选择做为热点的网卡,点击start开始抓包;
-
操作手机,可以抓取到手机所有与网络交互的数据包,如需停止,直接点击wireshark的stop即可。
三、使用fiddler来抓取
此方法只适应于抓取http。此方法的最大优点是,可以拦截发出或者收到的http,可以修改http的request和response数据。因此用此方法可以模拟一些特殊场景(如包无响应、模拟一些很难出现的错误码等)。
此方法最好有一台拥有无线网卡的电脑。
-
电脑和手机连接到同一个局域网下(如电脑和手机连接到同一个wifi下)
-
电脑打开fiddler,在fiddler下,Tools-fiddler options,在connections选项卡下设置监听的端口号和勾选“allow remote computers connect”,点击“ok”
-
手机在wifi的选项下,选择**为“手动”,然后主机名填上电脑的IP地址,端口号填上刚才设置的“8888”后,保存。
-
设置完毕之后,直接操作手机就可以在电脑的fiddler上看到http码流。