首页 > 代码库 > 使用tcpdump抓Android网络包

使用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  #tcpdump  /data/local/ ; #tcpdump文件存放在盘根目录,/data/local/为手机目标路径

    (有的手机可能copy失败,可以多加一级目录就可以了adb push  #tcpdump /data/local/tmp/  )

      也可通过文件浏览器工具拷贝文件;

      *执行记录*(第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

      

   

使用tcpdump抓Android网络包