怎样对Android设备进行网络抓包

问题描写叙述:

       前段时间自己的app訪问server的url总是会出现间接性失败的问题,于是server的同事开了个会。提出了他们server存在的这个bug,我的同事自然说自己的server没问题,然后要我重现bug然后提供抓包给他分析。

所以我自己去折腾了各种网络抓包的方法。以下介绍一种实际可行的对android设备抓包的方法。


解决方式:

       利用tcpdump对android设备进行抓包,用wireshark进行抓包分析。

在进行抓包之前,须要将设备进行root,推荐是用root工具king root。成功率较高。

1、下载tcpdump

我给大家准备好了tcpdump的下载地址

http://www.strazzere.com/android/tcpdump

2、将tcpdump复制进自己的android设备

不须要adb shell进入设备。直接运行adb push e:\tools\tcpdump /data/local/tcpdump将文件拷贝到指定的目录。

能够手动复制,也能够利用adb push指令进行复制。

这个指令须要进入到你adb所在的文件夹才干运行。

复制完毕后能够用ls查看是否复制成功。

3、进入到tcpdump相应的目录

cd /data/local

4、运行tcpdump的抓包指令

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

正常情况下,是能够抓包成功过了。可是你可能会遇到以下的提示

这样的情况下须要对tcpdump进行读写授权,运行读写权限的时候。先进行adb shell进入设备。不须要进入到tcpdump的目录

/*改动读写权限*/
mount -t yaffs2 -o remount,rw,noatime,nodiratime /mnt/sdcard/data/tcpdump
-t vfstype 指定文件系统的类型。通常不必指定。mount 会自己主动选择正确的类型。


-o options 主要用来描写叙述设备或档案的挂接方式。

假设还是不行能够用以下指令改动读写权限
/*改动读写权限*/
chmod 6755 /data/local/tcpdump


5、将抓到的包拷贝到电脑

adb pull /sdcard/capture.pcap C:\Users\XXX\Desktop\capture.pcap

5、抓包完毕。用wireshark进行分析

wireshark的下载链接非常多,我就不贴了。

结论:

android设备抓包的方式还有不止这一种,假如你的电脑能开wifi热点的话,能够让android设备连接自己的wifi热点。能够直接用wireshark直接进行抓包。会简便非常多。


抓包以及分析技能做网络应用的童鞋们还是须要掌握的,比方訪问server速度过慢的原因,也能够通过抓包来进行分析。



以下我会继续介绍怎样分析网络抓包。找出开头提到的訪问server间隙性失败的原因。在抓包分析之前,先了解一下TCP的三次握手和四次握手
《TCP建立连接三次握手和断开连接四次握手 》。这篇文章从抓包分析了TCP建立连接的三次握手和四次握手机制



posted @ 2017-07-06 11:10  wzjhoutai  阅读(853)  评论(0编辑  收藏  举报