TcpDump抓包
TcpDump是Linux里面很强大的网络数据采集工具,也就是我们常说的抓包工具。
因为Android系统本身就是以Linux 2.6 kenal作为内核的,所以我们可以使用TcpDump进行抓包。
真机要确保是eng工程模式。
有了测试机之后,adb连接上,然后使用下面命令查看连接设备是否成功
adb devices List of devices attached 16e8718e device
连接成功之后,使用下面命令将TcpDump上传到/data/local/tcpdump路径
adb push ~/Desktop/tcpdump /data/local/tcpdump
修改权限
adb shell chmod 777 /data/local/tcpdump
到此为止,我们的TcpDump就部署成功了。
我们简单介绍几个常用命令。
下面的命令是用来抓包的最简单的命令
adb shell /data/local/tcpdump -n -s 0
-n 代表不把网络地址转换成名字
-s 0 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
因为我们网络请求很多,我们需要进行过滤,比如要获取所有10.10.10.1 的主机收到的和发出的所有的数据包
adb shell /data/local/tcpdump -n -s 0 host 10.10.10.1
TcpDump还有很多强大的用法,我就不一一解释了,自行Google吧~
我们使用的命令是下面这样的(注意:host 后面跟的是你本机的ip可以在wifi链接中看到)
adb shell /data/local/tcpdump/tcpdump -n -s 0 -w /imooc.pcap host 192.168.9.103
你会在DDMS中发现指定目录出现了一个imooc.pcap文件,接着运行你想要捕捉的app玩两下,你会发现这个文件的大小在改变,接着停止,下载该文件到你的电脑
我们可以使用下面的命令把文件下载下来
adb pull/imooc.pcap ~/Desktop/imooc.pcap
这样我们就可以把所有和当前ip进行通讯的包抓到,然后保存到/sdcard/imooc.pcap文件
WireShake分析数据包
得到我们的pcap格式的数据包了,下一步就是使用WireShake进行数据分析。WireShake也很强大,但是我们这里只是简单的使用,更多强大功能自己去摸索。
用WireShark打开imooc.pcap后,如下
其余都是差不多,仔细看看就好了。
接着得到地址了。使用工具访问测试该地址,这里使用的是curl
curl -d "timestamp=1456123661574&page=2&uid=1126592&token=dd43e5a1fdfafada655d31e403179474" "www.imooc.com/api3/courselist_ver2"
因为该数据访问 使用的是POST请求所以这里使用 curl -d "访问请求" "访问地址"
得到以下数据:
工具资源后期会添加链接~