应用抓包之tcpdump命令抓包

抓包前准备

原料
1.预抓包的App一个(我们以app抓包为例)
2.已配置android sdk
3.分析软件Wireshark(Windows版)
4.抓包命令:tcpdump
5.模拟器或真机(以模拟器为例,真机需root)

抓包准备

首先我们先配置下环境变量
1.先来个ANDROID_HOME:SDK的路径,类似于JAVA_HOME。(一劳永逸,以后安装到别的路径,改变一下HOME路径就行)

2.把sdk路径下的platfrom-tools和tools添加到环境变量

配置好就可以用adb命令了

3.安装我们的原料app(以实际要抓的app为主)。为防止侵权,这里我就随便抓取手机上的数据包。
4.打开命令行,执行adb shell,进入android的shell环境,执行su切换到root用户。

开抓

1.执行tcpdump命令
tcpdump可以将网络中传送的数据包完全截获下来提供分析。

tcpdump -i any -p -n -s 0 -w /sdcard/capture.pcap
//或
/data/local/tcpdump -i any -p -n -s 0 -w /sdcard/capture.pcap

以上命令将截获的数据包保存到sdcard,capture.pcap抓取是数据包,pcap为Wireshark分析文件的后缀。

这时抓包就开始了,在手机上刷新几下要抓取数据的app。
抓完之后按ctrl+c停止抓包

2.将抓取的数据导出到电脑上(从sdcard导出到电脑上分析)
退出android shell环境(命令行输入两次exit),回到Windows环境。

接着执行

adb pull /sdcard/capture.pcap d:/capture.pcap

导出刚才抓到的文件到电脑d盘。(如果导出失败,自己手动把抓包数据复制到电脑上)

或者通过DDMS导出到电脑

3.Wireshark打开刚才获取到的.pcap文件
过滤出http

点击某一个抓到的http包,可以查看它的详细信息(自己判断一下可能是哪个域名)

我们可以看到是get请求

复制出来去请求一下(右键->复制->值)

去浏览器中请求

再结合app,看看是哪个界面的内容
4.新建个文本文件,保存抓到的借口。例如:

看看请求出来ip地址,顺着ip找出所有的api借口

54开头的就是我要抓的app。

tcpdump抓包就说这么多,当然,wireshark还有许多强大的功能,此处就不一一介绍了O(∩_∩)O~~

你可能感兴趣的:(Android)