手动编译Hluda Frida Server
原文地址 https://bbs.kanxue.com/thread-269889.htm
本文基于ubuntu 21.04操作
frida 将默认分支从 master 切换到 main,如果编译出现
|
1
|
make[1]: *** No rule to make target '.git/refs/heads/master', needed by 'build/frida-version.h'. Stop. |
参考此commit:
https://github.com/frida/frida/commit/e4c6a1e646666284ea77c36d61f20558504847b5
1. 搭建编译环境
1.1 Install dependencies
|
1
2
3
4
5
|
sudo apt updatesudo apt-get install build-essential tree ninja-build gcc-multilib g++-multilib lib32stdc++-9-dev flex bison xz-utils ruby ruby-dev python3-requests python3-setuptools python3-dev python3-pip libc6-dev libc6-dev-i386 -ysudo gem install fpm -v 1.11.0 --no-documentpython3 -m pip install lief |
1.2 Setup ndk
ndk版本与你想要编译的版本相关,在其/releng/setup-env.sh注明了需要的NDK版本

这里以最新版的frida ndk依赖22 进行
ndk下载网址:https://developer.android.com/ndk/downloads?hl=zh-cn
|
1
2
|
wget https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zipunzip android-ndk-r22b-linux-x86_64.zip |
|
1
2
3
4
|
sudo mv android-ndk-r22b /opt/#add env variablesexport ANDROID_NDK_ROOT='/opt/android-ndk-r22b' |
1.3 Setup nodejs
https://github.com/nvm-sh/nvm
|
1
2
3
4
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash# install node 10nvm install 10 |
2. 编译frida
2.1 最新版
当前最新版本是:15.1.5
|
1
|
git clone --recurse-submodules https://github.com/frida/frida |
Apply hluda patch
|
1
2
3
4
5
6
7
8
|
git clone https://github.com/AAAA-Project/Patchs.gitcd frida/frida-core/git am ../../Patchs/strongR-frida/frida-core/*.patch# 回到frida 根目录cd .. |
编译:
编译时会自动下载 对应的toolchain和sdk。
|
1
2
3
4
|
make core-android-armmake core-android-arm64make core-android-x86make core-android-x86_64 |
when compile completed, into build/frida-android-arm/bin ,you will see:

2.2 老版本
看了看Patchs的commit message、时间,基本就能知道commit对应的patch,对应哪些版本:

看看编译14.2.12怎么弄
|
1
2
3
|
git clone --recurse-submodules https://github.com/frida/frida.gitcd frida git checkout 14.2.12 |
这里有个坑,当checkout的时候,仅frida这个仓库回滚到14.2.12,其中的submodule 依然是最新的,要让所有submodule也是14.2.12时的版本才行:
|
1
|
git submodule update --recursive |
检查一下需要的ndk版本,依然是22:
checkout Patchs 到 14.2.12:
|
1
|
git checkout 8e1308b |
Apply hluda patch:
|
1
2
|
cd frida/frida-coregit am ../../Patchs/strongR-frida/frida-core/*.patch |
check一下,没报错就行。
接下来和之前的编译步骤一样
|
1
2
3
4
5
6
|
cd fridamake core-android-armmake core-android-arm64make core-android-x86make core-android-x86_64 |

Git History - https://githistory.xyz/ 在某些情况下确实有用:

参考:
- hluwa - actions build.xml
[培训]科锐逆向工程师培训 48期预科班将于 2023年10月13日 正式开班

浙公网安备 33010602011771号