Android 如何使用tcpdump抓包

简介

TCPDump可以将网络中传送的数据包完全截获下来提供分析

下载tcpdump源码

tcpdump提供了源码, 你可以前往https://www.tcpdump.org/下载最新版本

我这里下载的最新版本是:
tcpdump:4.9.2
licpcap:1.9.0

#下载
wget http://www.tcpdump.org/release/tcpdump-4.9.2.tar.gz
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz

编译

我们车机绝大多熟都是ARM的架构, 所以我们需要编译arm的二进制文件
下面以Ubuntu的编译环境为例:

# 首先需要安装依赖的编译工具和工具链
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install byacc
sudo apt-get install flex

# 解压刚刚下载好的源代码
tar zxvf tcpdump-4.9.2.tar.gz
tar zxvf libpcap-1.9.0.tar.gz

# 设置GCC
export CC=arm-linux-gnueabi-gcc

# 配置&编译 libpcap
cd libpcap-1.9.0
./configure --host=arm-linux --with-pcap=linux
make #在当前更目录下会的到libpcap的so文件

# 配置&编译 tcpdump
export ac_cs_linux_vers=2
export CFLAGS=-static
export CPPFLAGS=-static
export LDFLAGS=-static
./configure --host=arm-linux --disable-ipv6
make #当前的根目录下会得到libpcap的二进制文件
arm-linux-gnueabi-strip tcpdump 

如何使用

  • 设备需要root权限
    adb root
    adb remount
  • tcpdump 二进制文件push到车机
    adb push tcpdump /data/local/
    adb shell chmod 6755 /data/local/tcpdump
  • 运行tcpdump
    cd /data/local
    ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
  • 抓取抓获的网络传输包
    adb pull /sdcard/capture.pcap
  • 使用wireshark打开capture.pcap分析log

参考:

https://www.androidtcpdump.com/

https://www.jianshu.com/p/ca6cdc825ad3

你可能感兴趣的:(android)