使用tcpdump抓Android网络包
1 抓包原理
tcpdump(需Root用户运行)拦截和显示发送或收到过网络连接到该机器的TCP/IP和其他数据包。简单说就监控手机进出网络数据。
2 方法优劣
2.1优点
1.手机数据包无遗漏
2.2缺点
1.不能实时抓包
2.电脑需要安装Android SDK
3.测试手机需要获取root权限
4.测试手机需要安装tcpdump软件
3 安装准备
3.1手机获取root权限
目前针对android手机的Root工具很多,网上下载任意刷机工具,比如刷机精灵、一键ROOT等等
3.2电脑安装Android SDK
下载地址 http://developer.android.com/sdk/index.html
解压下载的文件进行安装,再配置环境变量即可,目前同事电脑基本均已安装配置此环境。
3.3手机安装tcpdump
tcpdump下载地址: http://www.strazzere.com/android/tcpdump
4 工具安装
1.Android手机USB连接电脑,打开Windows命令提示符窗口;
2.检查手机连接是否正常;
adb devices #检查手机是否已连接
*执行记录*:
注1:已检查到手机连接正常
3.adb shell 进入手机修改/data/local权限
adb shell #登入手机
su #切换Root用户
chmod 777 /data/local/ #修改目录权限,修改后Ctrl+C退出adb shell
4.将tcpdump程序copy到android手机
adb push E:\tcpdump /data/local/ #tcpdump文件存放在E盘根目录,/data/local/为手机目标路径
也可通过文件浏览器工具拷贝文件;
*执行记录*(第3步至第4步)
5.adb进入手机修改tcpdump的权限,修改为可执行权限;
adb shell #登入手机
su #切换Root用户
chmod 777 /data/local/tcpdump #增加可执行权限
5 实例
1.usb连接手机,切换root用户,执行抓包命令
adb shell #登入手机
su #切换Root用户
/data/local/tcpdump -p -vv -s 0 -w /sdcard/Mcart001.pcap #执行抓包命令,结果保存到SD卡Mcart001.pcap文件中
2.操作APP,生成请求数据
3. 按Ctrl+C中断抓包退出
4.导出抓包结果至电脑
adb pull /sdcard/Mcart001.pcap E:/ #前为手机中文件及存放路径,后为电脑E盘根目录
5.使用Wireshark等工具分析抓包文件Mcart001.pcap