好吧 frida build@linux 参照frida.re编译指示 只需要:
#https://frida.re/docs/building/#gnulinux
#docker ubuntu:22.04 中执行以下命令:(即构建frida)
$ git clone --recurse-submodules https://github.com/frida/frida.git
$ cd frida
$ make #列出目标
$ make core-linux-x86_64-thin
$ make tools-linux-x86_64-thin
pip install colorama prompt_toolkit pygments
./build/frida-linux-x86_64/bin/frida
fedora-36所用git版本为git 2.39.1, 该版本git clone过程的后阶段携带了git index-pack动作,这样的行为导致了git-replace无法正常工作,从而造成凡是github的仓库clone都很慢无法解决,于是只好放弃fedora-36,转向ubuntu:22.04
宿主机准备工作
sudo mkdir /frida-home/;
sudo chown z.z /frida-home
cd /frida-home/
git clone git@gitcode.net:fridaz/frida.git
cd frida; git submodule update --init --checkout --recursive --depth 1
#git status:zmaster(基于官方frida 16.0.7)
sudo mkdir /pubx/
sudo chown z.z /pubx
cd /pubx/
git clone git@gitcode.net:pubx/git-replace.git
cp -rv ~/.ssh /frida-home/ #宿主机中的 私钥 ~/.ssh/* 是被 gitcode信任的
cd /frida-home/
wget https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.sh
build using ubuntu:22.04 on docker
0.拉取docker镜像
#基本上各个docker镜像不好用,这里在宿主机中搭建 claash for linux, 搭建claash for linux参考
su - root
proxyychainss4 docker pull ubuntu:22.04
exit #退出su - root
- docker 启动
sudo docker pull ubuntu:22.04 #网络卡慢的话 ,参照上方
sudo docker run -itd -v /frida-home/:/frida-home -v /pubx/:/pubx/ ubuntu:22.04
sudo docker exec -it 9bc6bcec7bb9 bash
以下小段脚本 只是记录docker启动bash常见命令,不直接作为此处业务过程
#本小段脚本只是记录docker启动bash常见命令,不直接作为此处业务过程
#一步到bash, 但退出bash即关闭容器
sudo docker run -it -v /frida-home:/frida-home/ -v /pubx/:/pubx/ ubuntu:22.04 bash
#一步到bash, 启动的是自己commit过的tag ubuntu_22.04_frida_build_env
sudo docker run -it -v /frida-home/:/frida-home -v /pubx/:/pubx/ ubuntu_22.04_frida_build_env bash
#先以daemon样式启动容器,再运行该容器中的bash。这样退出bash不会导致容器退出,方便多次进出bash。
sudo docker run -itd -v /frida-home/:/frida-home -v /pubx/:/pubx/ fedora_36_frida_build_env
sudo docker exec -it 9bc6bcec7bb9 bash
- ubuntu清华源
参考: ubuntu清华源
注意不要用https,否则会出现ca证书不信任问题
sed -i "s@http://.*archive.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sed -i "s@http://.*security.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
build frida gum
进docker执行:
### in docker bash:
export PS1="\[\`if [[ \$? = "0" ]]; then echo '\e[32m\h\e[0m'; else echo '\e[31m\h\e[0m' ; fi\`:\$PWD\n\$ "
#export PS1='\[`[ $? = 0 ] && X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ '
#yum whatprovides *bin/which #原fedora的