tcpdump 编译

环境准备

1、ubantu 20.04
2、下载openharmony 源码
3、sudo apt install libpcap-dev*

tcpdump 64位编译

参考如下Blog
Openharmony版本 tcpdump交叉编译说明
注:
1、 tcpdump、libpcap 源码包与文档保持一致

tcpdump 32位编译

源码下载:

wget https://www.tcpdump.org/release/libpcap-1.10.4.tar.xz
wget https://www.tcpdump.org/release/tcpdump-4.99.4.tar.xz

tar -xvf libpcap-1.10.4.tar.xz
tar -xvf tcpdump-4.99.4.tar.xz

注: 解压在同级目录

安装编译环境

//ohos的源码下载后,其实也有对应的工具链,位置如下
prebuilts/gcc/linux-x86/arm(32位)/gcc-linaro-7.5.0-arm-linux-gnueabi/bin

编译

编译libpcap

配置编译环境:

export OHOS_PATH=/home/tjw/openharmony/laphone_5.0/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin  // 参照自己的编译环境配置
export CC="${OHOS_PATH}/arm-linux-gnueabi-gcc "
export CXX="${OHOS_PATH}/arm-linux-gnueabi-cpp "
export LD="${OHOS_PATH}/arm-linux-gnueabi-ld "
export RANLIB="${OHOS_PATH}/arm-linux-gnueabi-ranlib "
export CFLAGS="-fPIC -D__MUSL__=1"

编译libpcap-1.10.4

cd libpcap-1.10.4
mkdir build
cd build
../configure --host=arm-linux --prefix=$PWD/install
make &&  make install

编译tcpdump

配置编译环境:

export OHOS_PATH=/home/tjw/openharmony/laphone_5.0/prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi/bin  //编译工具链路径
export CC="${OHOS_PATH}/arm-linux-gnueabi-gcc "
export CXX="${OHOS_PATH}/arm-linux-gnueabi-cpp "
export LD="${OHOS_PATH}/arm-linux-gnueabi-ld "
export RANLIB="${OHOS_PATH}/arm-linux-gnueabi-ranlib "
export CFLAGS="-static"
export CPPFLAGS="-static "
export LDFLAGS="-static"

编译tcpdump-4.99.4

进入tcpdump源码目录,创建build目录

cd tcpdump-4.99.4
mkdir build
cd build
ln -s ../../libpcap-1.10.4/build/install libpcap
../configure --host=arm-linux --target=arm-linux  --prefix=$PWD/install CFLAGS="-fPIC -D__MUSL__=1 -I./libpcap/include -L./libpcap/lib"
make && make install

widnwos 下脚本

install

安装tcpdump 工具,注意so 和tcpdump 可执行文件必须和脚本在同级目录。

set hdc=hdc.exe
%hdc% shell mount -o remount,rw /
%hdc% file send  libpcap.so.1.10.4  /system/lib/libpcap.so.1
%hdc% file send tcpdump /system/bin/
%hdc% shell "chmod 777 /system/bin/tcpdump"
pause

run

执行tcpdump 抓取网络日志。

set hdc=hdc.exe
%hdc% shell "tcpdump -i any -w /data/log/tcp.pcap" &
pause

download

下载抓取的网络日志,到当前路径。

set hdc=hdc.exe
%hdc% file recv /data/log/tcp.pcap .
pause
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐