Android网络开发之用tcpdump抓包

来源:互联网 发布:淘宝定制产品如何发布 编辑:程序博客网 时间:2024/06/06 01:05

    Android开发过程中,当涉及到网络通信的时候,有一些字段需要抓包获取。我之前因为SSDP设备发现的包头格式没有写对,经过抓包分析和标准包头对比发现了这个困扰我很久的问题。总之,掌握在Android手机里面抓包是很有必要的。

    准备工作:Android系统的手机,网络环境,tcpdump,破解手机root权限,建议最好在手机里面安装RE文件管理器并且给root权限。具体步骤如下:

    首先,通过adb工具将tcpdump推送到手机,tcpdump的下载地址为:http://www.strazzere.com/android/tcpdump。操作可以一条指令搞定:adb push c:/tcpdump /data/local/tcpdump。当然,用其他方式将tcpdump发送到手机也可以。

    然后,需要修改tcpdump的权限:

    C:\\adb shell

    $ su
    #chmod 777 /data/local/tcpdump

输入su指令的时候,可能需要在手机上点击确认按钮。这样adb就能有权限修改tcpdump的属性了。

    开始抓包:

    adb shell
    $ su
    /data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap

    抓包结束只需要按下ctrl + c即可。需要注意的是:在Windows平台下,ctrl + c会直接中断,用该用ctrl + d或者其他指令结束该程序(Mac OS不受影响)。

    将抓包文件拉取出来:adb pull /sdcard/capture.pcap c:/    如果你没有安装RE文件管理器,可能看不到capture.pcap文件,但是它确实是存在的,原因是权限不够(root创建的文件在Android下,普通权限程序无法查看)。

    接下来你就可以用Wireshark分析你抓的包了。打开的时候可能会报错,因为如果你用中断的方式结束抓包,pcap文件尾会没有写入,忽略即可。


个人辛勤劳动成果,如有转载,请注明出处,谢谢!

0 0