为OpenWrt/LEDE编译rpcapd 用于Wireshark远程抓包

rpcapd是winpcap带的专门用来远程抓包的小工具,但是winpcap是给Windows用的,Linux下需要自己编译,如果要放到路由器上用,就要交叉编译了。

以前编译都是直接在OpenWrt/LEDE的menuconfig里面选,现在不能选了,需要直接用toolchain手动编译。

步骤如下:

# 首先要把OpenWrt/LEDE的SDK下载或者编译出来
# 以下的路径自行修改

export PATH=$PATH:/root/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin
export STAGING_DIR=/root/lede/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16

export CC=mipsel-openwrt-linux-musl-gcc
export CXX=mipsel-openwrt-linux-musl-g++
export AR=mipsel-openwrt-linux-musl-ar
export RANLIB=mipsel-openwrt-linux-musl-ranlib
export ac_cv_linux_vers=4.4.61

# 在https://www.winpcap.org/devel.htm 下载winpcap源码
unzip source.zip
cd winpcap/wpcap/libpcap
chmod +x configure
./configure --build=x86_64-unknown-linux-gnu --host=mipsel-openwrt-linux --with-pcap=linux
make

# 在winpcap/wpcap/libpcap/pcap-int.h 里加上一行 #include <string.h> 否则在 strlcpy 处会报错
cd rpcapd
# 修改 Makefile
# 修改编译器,改成CC=mipsel-openwrt-linux-gcc
make

file rpcapd
# rpcapd: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked, interpreter /lib/ld-musl-mipsel-sf.so.1, not stripped

相关参考:https://talpachen.github.io/2016/07/20/Net/rpcapd/

 

附我编译的
  适用于LEDE(musl)的ar71xx版rpcapd:rpcapd_ar71xx.7z
  适用于LEDE(musl)的ramips版rpcapd:rpcapd_ramips.7z


发表评论