tcpdump rpcapd 相关编译方法

tcpdump rpcapd 相关编译方法

# 安装编译环境
sudo apt install build-essential
sudo apt install crossbuild-essential-arm64 byacc flex
# arm旧版交叉编译环境
# crossbuild-essential-armhf

# 下载源码
wget http://www.tcpdump.org/release/tcpdump-4.99.1.tar.gz
wget http://www.tcpdump.org/release/libpcap-1.10.1.tar.gz

# 解压
tar zxvf tcpdump-4.99.1.tar.gz
tar zxvf libpcap-1.10.1.tar.gz

# miss libcrypt 处理(ubuntu22默认没有arm的libcrypt,lcrypt参数编译会报错,需要单独下载)
wget http://ports.ubuntu.com/ubuntu-ports/pool/main/libx/libxcrypt/libcrypt-dev_4.4.28-2_arm64.deb
mkdir libcrypt-dev
ar -x libcrypt-dev_4.4.28-2_arm64.deb --output=libcrypt-dev
cd libcrypt-dev
tar -I zstd -xvf data.tar.zst

# arm编译设置环境变量
# export CC=arm-linux-gnueabi-gcc
export CC=aarch64-linux-gnu-gcc

# 先编译libpcap
# arm编译添加参数LDFLAGS
cd libpcap-1.10.1
./configure --host=arm-linux --with-pcap=linux --enable-remote  LDFLAGS=-L/home/work/tcpdump/libcrypt-dev/usr/lib/aarch64-linux-gnu
make

cd tcpdump-4.99.1

# get kernel version number
uname -a
export ac_cs_linux_vers=5

# libpcap编译静态编译会报错
export CFLAGS=-static
export CPPFLAGS=-static
export LDFLAGS=-static

./configure --host=arm-linux --disable-ipv6

make
# arm处理
# arm-linux-gnueabi-strip tcpdump
aarch64-linux-gnu-strip tcpdump

# 核实输出文件支持架构
file tcpdump

# 编译rpcapd
cd libpcap-1.10.1
cd rpcapd

file rpcapd

# 静态编译最后的文件,arm需要用-L加上libcrypt路径
aarch64-linux-gnu-gcc -fvisibility=hidden -g -O2 -o rpcapd daemon.o \
    fileconf.o log.o rpcapd.o ../rpcap-protocol.o ../sockutils.o ../fmtutils.o ../sslutils.o ../libpcap.a \
    -lcrypt -lpthread -static -L/home/work/tcpdump/libcrypt-dev/usr/lib/aarch64-linux-gnu

file rpcapd

# x86_64的静态编译
# ./configure --with-pcap=linux --enable-remote  
# gcc -fvisibility=hidden -g -O2  -o rpcapd daemon.o \
#     fileconf.o log.o rpcapd.o ../rpcap-protocol.o ../sockutils.o ../fmtutils.o ../sslutils.o ../libpcap.a  -lcrypt

# tcpdump 单独静态编译
gcc -static -DHAVE_CONFIG_H -static  -I. -I../libpcap-1.10.1  -static -static -o tcpdump fptype.o tcpdump.o libnetdissect.a ../libpcap-1.10.1/libpcap.a

相关链接资料:

Compile and run rpcapd for Android – Adam Jordan

How to Build or Compile tcpdump for Android | Android tcpdump

实时抓取Android上的网卡数据包 | zzzZZZ

RPCAPD配合Wireshark可视化远程抓包 – 个人知识分享

rpcapd(8) man page | TCPDUMP & LIBPCAP

上一篇
下一篇