简易的Android eBPF抓包工具 使用rust编写 macOS(arm)下编译通过
注意: 需要root权限
注意: 目前仅支持64位架构
注意: 在不支持BTF(BPF Type Format)的内核上无法顺利运行
下载编译好的程序 放到可执行目录下 以root权限运行
- 安装rust工具链:
rustup toolchain install stable - 安装rust工具链每夜版:
rustup toolchain install nightly --component rust-src - (交叉编译环境) 目标架构:
rustup target add aarch64-unknown-linux-musl - (交叉编译环境) LLVM:
brew install llvm - (交叉编译环境) musl C 工具链:
brew install filosottile/musl-cross/musl-cross - bpf-linker (参考aya官方文档):
LLVM_SYS_180_PREFIX=$(brew --prefix llvm) cargo install --no-default-features bpf-linker
CC=aarch64-linux-musl-gcc cargo build --release --target=aarch64-unknown-linux-musl --config=target.aarch64-unknown-linux-musl.linker=\"aarch64-linux-musl-gcc\"生成的程序位于 target/aarch64-unknown-linux-musl/release/icap
adb push target/aarch64-unknown-linux-musl/release/icap /data/local/tmp/aya/
adb shell
cd /data/local/tmp/aya
# RUST_LOG=info ./icap
./icap