frida编译(按官网,frida 16.07)

宿主机准备工作

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


  1. 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 run时若指定名字 如下:
sudo docker run --name xxxx  -itd -v /frida-home/:/frida-home -v /pubx/:/pubx/ ubuntu:22.04 
  1. 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

准备

进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\$ "

apt install git -y

#替换git命令, 以将: 
# 1. clone的很慢的github仓库地址替换为预置国内仓库地址、
# 2. clone后若发现子模块.gitmodules , 则替换.gitmodules中的github仓库地址为预置的国内仓库地址
cd /pubx/git-replace; sh -x install.sh ; cd -  

ssh-keygen #一路回车, 只为了生成正确权限的的~/.ssh目录
cp -rv /frida-home/.ssh/* ~/.ssh   #从宿主机 复制 gitcode信任的 私钥

sh /frida-home/Miniconda3-py39_22.11.1-1-Linux-x86_64.sh  #install to /miniconda3/
source /miniconda3/bin/activate
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install meson ninja

#yum install gcc gcc-c++ #原fedora的
apt show gcc g++
apt install gcc g++
gcc --version  #gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
g++ --version  #g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0


apt install pkg-config 

#由于这里使得 frida-gum默认编译gumjs,因此需要安装nodejs环境
#[安装nodejs环境](https://blog.csdn.net/hfcaoguilin/article/details/124598084)
apt install curl 
#curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
curl https://gitcode.net/pubx/nvm/-/raw/master/install.sh | bash

echo """export NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/""" >> ~/.bashrc

source ~/.bashrc

#再用nvm安装nodejs
nvm ls-remote
nvm install v18.13.0
nvm use v18.13.0
which node #/root/.nvm/versions/node/v14.17.1/bin/node
which npm #/root/.nvm/versions/node/v14.17.1/bin/npm
npm config -g set registry https://registry.npm.taobao.org
##nodejs环境安装完毕

npm install typescript -g

build frida

进docker执行:




cd /frida-home/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
./build/frida_thin-linux-x86_64/bin/frida /usr/bin/ls
#Failed to attach: process with pid 35853 either refused to load frida-agent, or terminated during injection
ls -lh zHook.log.json  #zHook日志已生成,但估计gum运行报错了,所以上一行frida没有启动成功。待排查
#-rw-r--r-- 1 root root 278K Jan 27 11:15 zHook.log.json




真机ubuntu 22.10(kinetic)下, frida-gum 在ninja install后的 pkg-config search path举例

#真机ubuntu 22.10(kinetic)下, frida-gum 在ninja install后的 pkg-config search path举例
echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/x86_64-linux-gnu/' >> ~/.bashrc
source ~/.bashrc

其他

安装 miniconda3时报错 如下 ,可忽略,不影响miniconda3使用


sh /frida-home/Miniconda3-py39_22.11.1-1-Linux-x86_64.sh  #install to /miniconda3/

#报错如下:  ,以下报错可忽略,不影响miniconda3使用  (此报错是由于sh 没有 [[,  而[[实际是bash的。所以上述sh改为bash,即不会有此报错)
"""/frida-home/Miniconda3-py39_22.11.1-1-Linux-x86_64.sh: 438: [[: not found

Installing * environment...

/frida-home/Miniconda3-py39_22.11.1-1-Linux-x86_64.sh: 444: [[: not found

CondaFileIOError: '/miniconda3/pkgs/envs/*/env.txt'. [Errno 2] No such file or directory: '/miniconda3/pkgs/envs/*/env.txt'

""" 

可将编译环境保存为 docker镜像

  1. 办法1: 可提交为本地image
sudo  docker run -it -v /frida-home:/frida-home ubuntu:22.04  bash
#容器bash中执行:   ....miniconda3, meson, ninja, gcc, .... 等安装(见以下编译过程)
#可以在这之后 将容器a982d01d2752保存为镜像:
sudo docker commit a982d01d2752  ubuntu_22.04_frida_build_env

#下次再从镜像 创建容器:
sudo  docker run -it -v /frida-home:/frida-home ubuntu_22.04_frida_build_env  bash
#容器的中已经有以上安装过的部件了,无需再次安装了
  1. 办法2: 可保存为本地文件(方便带走) (貌似不知道如何指定新名字, load之后如何启动貌似也不太清楚)
sudo  docker run -it -v /frida-home:/frida-home ubuntu:22.04  bash
#容器bash中执行:   ....miniconda3, meson, ninja, gcc, .... 等安装(见以下编译过程)
#可以在这之后 将容器a982d01d2752保存为镜像:
sudo docker save --output ubuntu_22.04_frida_build_env.tar a982d01d2752

#下次再从镜像 创建容器:
sudo  docker load --input ubuntu_22.04_frida_build_env.tar
#容器的中已经有以上安装过的部件了,无需再次安装了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ziix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值