本文主要介绍如何使用tcpdump和wireshark对android应用程序进行抓包并分析,需要说明的是在抓包之前,你的android设备必须root过了,另外你的电脑必须有android sdk环境。
下载并安装tcpdump
tcpdump链接:http://www.tcpdump.org/
选择一个版本下载并解压提取出其中呃tcpdump文件,然后push到你的手机上去:
adb push c:\tcpdump /data/local/tcpdump
进一步操作:
adb shellsuchmod +x /data/local/tcpdump
然后就可以开始抓包了:
/data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
这时你可以操作应用程序相应的操作了,抓包完毕后ctrl+c停止抓包。
然后将抓到pcap文件传输本地开始进行分析了,这里假设你pull到c盘目录下。
adb pull /sdcard/capture.pcap c:/
使用wireshark分析抓包数据
pc上安装wireshark
wireshark下载:http://www.wireshark.org/download.html
如果安装完毕,就可以直接打刚才的pcap文件了。
使用过滤器filter
如果抓到的东西过多,可以使用上方的过滤器,比如我只看http协议,并且是由我设备发出的
右键记录查看tcp stream
这个功能我比较喜欢,可以查看此次http,client端请求和server端返回的数据
还有我觉得更厉害的功能
可以把请求的内容和结果存储下来,比如可以查看post的内容
这是在面板看到的具体的tcp/ip各层的内容
但是这种编码之后,并且以字节流发出去的东西很让人讨厌,利用存储可能,你就可以看到具体的结果了:
选择file->export objects->http,导出这条记录就可以啦。
最后总结下
这是我最近在工作中实际用得到的,但在实际操作tcpdump和wireshark的时候,有更多功能、技巧可以挖掘出来,这篇文章算是对从来没有用过这两个工具的人的一个入门介绍吧。