在开发过程中遇到问题时,无法非常方便的获取到数据包,导致分析解决问题比较麻烦。这里介绍如何在Android手机上实现tcpdump抓包。
1、root机器
在用tcpdump抓包过程中,需要使用到root权限。当前可以进行root的方法有很多,个人推荐http://root.baidu.com/,安装使用挺方便的。
2、准备adb工具
ADB是Android手机开发包中自带的Bug调试工具,使用这个工具可以非常方便的通过PC对Android机器进行调试,在本人使用过程中经用将其用于在Android机器上面执行Shell命令
ADB是Android手机开发包中自带的Bug调试工具,使用这个工具可以非常方便的通过PC对Android机器进行调试,在本人使用过程中经用将其用于在Android机器上面执行Shell命令
1)adb shell,在PC机的命令终端中直接执行Android的Shell命令(也可以通过在Android机器上面安装命令终端等App来执行shell命令,从易用性来讲肯定没有使用adb shell方便的多,但也是一种方法)
2)adb push local remote,将PC上的文件推送到Android机器上面的路径中
3)adb pull remote local,从Android机器上面的文件拉取到PC指定的路径中
3、安装tcpdump
3、安装tcpdump
Android系统虽然源自于Linux操作系统,为适用于手持设备环境的要求,对其进行一番简化阉割是无法避免的,其中tcpdump这调试分析神器,就在被阉割的行列。为正常使用tcpdump,我们需要在Android系统中安装一份tcpdump,主要步骤为:
1)下载tcpdump包
提供一份tcpdump包下载地址:http://www.strazzere.com/android/tcpdump
2)上传tcpdump包到Android机器
adb push d: cpdump /data/local/tmp
remote安装目录需要根据情况进行自定义
3)执行chmod 0777 tcpdump命令,赋予可执行权限(执行chmod a+x tcpdump反映失败,还没整明白啥原因)
4、抓取数据
到此为止,基本上已经完成了准备工作。tcpdump命令的具体使用方法可以参见tcpdump手册( http://www.tcpdump.org/)。在实际操作过程中,按照在Linux执行抓包的命令:tcpdump -Xnlps0 -i any port 80 -w pcap.cap时,却告知tcpdump: syntax error,查看帮助文档才发现不支持port类型过滤,为此最后将抓包命令简化为:./tcpdump -Xnlps0 -w pcap.cap,一不做二不休,将全部的包都抓下来,在PC机器上面用Wireshark也相当可行。
5、分析数据
正如上面所讲的,直接采用wireshark来分析数据比较方便。