您的位置:

使用androidtcpdump实现移动设备网络流量捕获与分析

一、安装androidtcpdump

在移动设备上捕获流量需要安装捕获工具,而androidtcpdump则是一款基于tcpdump的工具,具有捕获网络流量的能力,同时支持把捕获到的数据导出到PC进行分析。安装步骤如下:

adb push androidtcpdump /data/local/tmp/
adb shell chmod 6755 /data/local/tmp/androidtcpdump
adb shell setcap cap_net_raw,cap_net_admin=eip /data/local/tmp/androidtcpdump

执行完毕上述命令即可安装成功。

二、使用androidtcpdump捕获流量

捕获流量需要在移动设备上执行以下命令:

adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/test.pcap

其中-i 表示指定网络接口,any 表示监听所有网络接口;-s 表示抓取数据包时每个包的长度;-w 表示输出的文件路径和文件名。

执行此命令后,androidtcpdump将开始抓取所有网络接口上的流量,并将其保存到指定的文件中。可以通过Ctrl+C命令停止抓取。

三、使用Wireshark分析流量

将捕获到的流量文件导入到Wireshark中处理和分析:

  1. 将指定的文件拷贝到PC上,使用Wireshark打开。
  2. Wireshark界面会显示捕获到的网络流量信息。
  3. 通过Wireshark的过滤功能,可以从海量数据中筛选出需要的数据包,从而更加方便地进行分析。

例如,使用以下过滤器可以只显示访问指定IP的数据包:

ip.addr==192.168.1.10

通过上述过滤器,Wireshark将只显示访问IP地址为192.168.1.10的数据包。

四、常用命令

  1. 捕获所有流量
  2. adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/all.pcap
      

    该命令捕获全部流量,并将结果存储到指定文件中。

  3. 捕获指定应用程序网络流量
  4. adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/app.pcap -p {package_name}
      

    将指定应用程序的网络流量捕获并存储到指定文件。

  5. 捕获指定端口号的网络流量
  6. adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/port.pcap port {port_number}
      

    捕获指定端口号的网络流量,并将结果存储到指定文件。

  7. 实时输出捕获的网络流量
  8. adb shell /data/local/tmp/androidtcpdump -i any -s 0
      

    该命令开始实时输出网络流量,不保存到文件中。