1.抓包的流程cmd命令
->e: 转换盘符
-> cd E:\Android\android-sdk-windows\platform-tools 个人配置的sdk路径
-> adb version判断adb版本配置
-> adb devices 手机是否正常连接
-> 拷贝tcpdump文件 adb push d:/tcpdump /data/local/tcpdump
-> 给 tcpdump 增加可执行权限
(1).在命令提示符窗口中使用命令 adb shell 远程打开Android手机上的终端Shell;
(2).在当前Shell中使用su命令获取管理员权限;
(3).在当前Shell中使用 chmod 命令修改 tcpdump 的权限: chmod 6755 /data/local/tcpdump
-> 使用 tcpdump 抓包,并将结果写入一个pcap文件保存。
(1).在当前Shell中输入命令: /data/local/tcpdump -p -s 0 -w /sdcard/001.pcap;
(2).在Android手机上进行相关操作,产生通信数据包,通信行为完成后在命令提示符窗口中使用 Ctrl + C
组合键退出当前Shell,以停止抓包。
上述过程中,tcpdump命令的参数含义如下:
# "-p": disable promiscuous mode (不使用混杂模式)
# "-s 0": capture the entire packet(-s参数用以指定数据包捕获长度,此处指定为0,意为抓取完整的数据包)
# "-w *.pcap": write packets to a file (将结果写入一个pcap文件,而不在终端上直接显示)
-> 将抓包结果下载到本地PC上。在命令提示符窗口中使用命令:adb pull /sdcard/001.pcap <LocalPath of PcapFile >
--->抓包结果可以直接在手机对应目录下找到,建议直接复制或剪切出来,比较快捷。
2.抓包过程中的问题
(1).无法将tcpdump拷贝到/data/local目录下,提示没有权限
使用命令:adb shell chmod 777 /data/local 修改文件夹属性为可写入即可
注意:在使用某款手机的时候出现修改local权限失败,无法写入情况。可将文件拷贝到/data/local/tmp中,其余步骤同上
(2).在执行抓包的时候会报PIE错误
Android 5.0以上添加的机制,以前的tcpdump不支持,可以在网上找支持5.0以上版本的tcpdump工具
3.抓包命令记录
/data/local/tmp/tcpdump -i any -p -s 0 -w /sdcard/capture001.pcap
/data/local/tmp/tcpdump -i wlan0 -p -s 0 -w /sdcard/capture001.pcap 抓取指定网卡
相关参考资料:http://www.cnblogs.com/anee/archive/2013/09/12/3316139.html
http://www.cnblogs.com/likwo/archive/2012/09/06/2673944.html