可参考workflow或下面的步骤:
本项目依赖于ehids/ebpfmanager和cilium/ebpf,但是做出了一些修改
所以目前编译需要使用修改过的版本,三个项目需要放在同一目录下
git clone https://github.com/SeeFlowerX/ebpf
git clone https://github.com/SeeFlowerX/ebpfmanager
git clone https://github.com/SeeFlowerX/stackplz
本项目在linux x86_64环境下编译,编译时先进入本项目根目录
准备必要的外部代码,记得挂全局代理或者使用proxychains
等工具
./build_env.sh
然后下载ndk并解压,这里选的是android-ndk-r25b
,解压后修改build.sh
中的NDK_ROOT
路径
本项目还需要使用golang,版本要求为1.18
,建议通过snap安装,或者使用如下方法安装
wget "https://golang.org/dl/go1.18.7.linux-amd64.tar.gz"
tar -C /usr/local -xvf "go1.18.7.linux-amd64.tar.gz"
设置环境变量
nano ~/.bashrc
在末尾添加如下内容
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on
对单个项目来说,似乎要用下面的命令手动操作下,再重新用vscode打开才不会报错
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
使环境变量立即生效
source ~/.bashrc
执行./build.sh
即可完成编译,产物在bin
目录下
将可执行文件推送到手机上后就可以开始使用了
adb push bin/stackplz /data/local/tmp