潇湘秋雨

博客园 首页 新随笔 联系 订阅 管理

移动APP网络问题经常需要通过抓包来分析,下面把几种抓包方式总结一下。

一、  通过tcpdump

以android平台为例介绍tcpdump抓包

1.先下载tcpdump

2.把tcpdump push进手机:adb push tcpdump /data/local/

3.通过adb shell下修改tcpdump使用权限:

adb shell

chmod 6755 /data/local/tcpdump

4.直接在adb shell下,通过命令进行抓包

cd /data/local/

./tcpdump -p -vv -s 0 -w /sdcard/capture.pcap

5.操作完想停止抓包,按ctrl+c。

6.随后想分析抓到的数据包,可以把刚才的capture.pcap拷贝到电脑,用wireshark打开就可以看到刚才抓到的数据包了。

二、 电脑做wifi热点,手机连上后电脑上使用wireshark抓包

该方法手机无须root,并且适用于各种有wifi功能的手机(IOS、android等)、平板等。只要电脑的无线网卡具有无线承载功能,就可以。方法如下:

    1. 把电脑的网络做为热点,小白用户可以使用wifi精灵等工具,不想安装辅助工具的,也可以通过命令来开启wifi热点(命令开启可以参考http://jingyan.baidu.com/article/335530da4f774019cb41c3eb.html

2.开启wifi热点后,被测手机连接到该热点;

3.启动wireshark,选择做为热点的网卡,点击start开始抓包;

4.操作手机,可以抓取到手机所有与网络交互的数据包,如需停止,直接点击wireshark的stop即可。

三、使用代理的方式,用fiddler来抓取

       此方法只适应于抓取http。此方法的最大优点是,可以拦截发出或者收到的http,可以修改http的request和response数据。因此用此方法可以模拟一些特殊场景(如包无响应、模拟一些很难出现的错误码等)。

此方法最好有一台拥有无线网卡的电脑。

1.电脑和手机连接到同一个局域网下(如电脑和手机连接到同一个wifi下)

2.电脑打开fiddler,在fiddler下,Tools-fiddler options,在connections选项卡下设置监听的端口号和勾选“allow remote computers connect”,点击“ok”

 

3.手机在wifi的选项下,选择代理为“手动”,然后主机名填上电脑的IP地址,端口号填上刚才设置的“8888”后,保存。

4.设置完毕之后,直接操作手机就可以在电脑的fiddler上看到http码流。

 原创作品,转载请注明出处:http://www.cnblogs.com/xieweijia/articles/4353316.html

posted on 2015-03-20 12:20  潇湘秋雨  阅读(1014)  评论(0)    收藏  举报