1 抓包工具介绍
1.1 抓包准备
在手机APP测试过程中遇到一些问题需要分析时,就需要抓包来分析具体问题。本文针对Andriod手机来介绍一下。在抓包之前做一些准备工作,如下:
1,Android手机需要先获得root权限。一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得)。在终端模拟器界面输入su并回车,若报错则说明未root,若命令提示符从$变#则为rooted;
2,如果Android手机尚未root,可通过superoneclick或其它方法进行root处理(需要先安装Microsoft .NET Framework)。
3,需要先获得 Android SDK;
4,需要获得tcpdump软件,获取地址(http://www.strazzere.com/android/tcpdump)
1.2 抓包步骤
抓包步骤如下:
1. 将Android手机与电脑USB相连,打开windows命令提示符窗口
2. 将tcpdump程序copy至android手机(该命令前面那个目录文件为本地地址,后
面那个目录为目的手机端地址)
C:\android-sdk-windows\platform-tools>adb push c:/tcpdump /data/local/tcpdump
3. 修改tcpdump的权限
C:\android-sdk-windows\platform-tools>adb shell
#chmod 777 /data/local/tcpdump
4. 进入root权限
C:\android-sdk-windows\platform-tools>adb shell
$ su
在运行su指令后,手机终端桌面会出现相应提示信息以确认您对root操作的认可。
5. 运行tcpdump,输入以下命令启动抓包。
/data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
6. 在手机端执行相应需要进行抓包分析的操作,执行完成后在命令提示符窗口执行
Ctrl+C中断抓包进程
7. 将抓包结果复制至本地(前面那个目录为手机端地址,后面那个目录为本地地址)
C:\android-sdk-windows\platform-tools>adb pull /sdcard/capture.pcap c:/
8. 使用Wireshark等工具查看抓包文件capture.pcap
附录:参数含义
1 adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
2 # "-i any": listen on any network interface
3 # "-p": disable promiscuous mode (doesn't work anyway)
4 # "-s 0": capture the entire packet
5 # "-w": write packets to a file (rather than printing to stdout)
2 具体实例介绍
这里以一个具体实例介绍抓包工具的使用。
问题描述:QQ旅游酒店返现Android APP 价格从高到低排出现结果为空情况,抓包
分析原因如下:
1,如下是开始抓包的命令:
2,如下把log信息存储下来:
3,从log信息中找到请求URL,如下:
4,在pcap中发现没有抓到URL的http请求包。于是查找发送SYN的请求
5,然后查找响应的ACK包,发现没有找到。说明访问服务器不成功
6,结果分析
有sync没有ack包, 说明tcp三次握手没有成功, 也就是说和服务器建立三次握手都没有成功。那我们的请求根本都还没有发送。