本文基于ubuntu 21.04操作
frida 将默认分支从 master 切换到 main,如果编译出现
参考此commit:35fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3M7X3W2V1j5g2)9J5c8X3k6J5K9h3c8S2i4K6u0r3j5$3!0E0L8h3W2@1i4K6u0r3k6e0c8U0y4X3p5I4k6e0j5@1y4U0j5$3y4U0t1^5y4r3g2S2y4K6N6U0x3K6k6V1y4U0q4X3x3U0l9#2y4e0R3#2x3o6b7^5y4o6N6T1y4b7`.`.
ndk版本与你想要编译的版本相关,在其/releng/setup-env.sh
注明了需要的NDK版本
这里以最新版的frida ndk依赖22 进行
ndk下载网址:11eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3L8X3c8C8i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8K6i4K6y4r3K9r3I4Q4x3@1c8*7K9q4)9J5k6r3y4F1
b0aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6F1N6X3#2Q4x3X3c8K6K9q4)9J5c8X3&6$3L8b7`.`.
当前最新版本是:15.1.5
Apply hluda patch
编译:
编译时会自动下载 对应的toolchain和sdk。
when compile completed, into build/frida-android-arm/bin
,you will see:
看了看Patchs 的commit message、时间,基本就能知道commit对应的patch,对应哪些版本:
看看编译14.2.12怎么弄
这里有个坑,当checkout的时候,仅frida这个仓库回滚到14.2.12,其中的submodule 依然是最新的,要让所有submodule也是14.2.12时的版本才行:
检查一下需要的ndk版本,依然是22:
checkout Patchs 到 14.2.12:
Apply hluda patch:
check一下,没报错就行。
接下来和之前的编译步骤一样
Git History - 587K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5K9i4y4@1L8%4u0&6i4K6u0W2P5s2W2*7i4K6u0r3 在某些情况下确实有用:
参考:
make[
1
]:
*
*
*
No rule to make target
'.git/refs/heads/master'
, needed by
'build/frida-version.h'
. Stop.
make[
1
]:
*
*
*
No rule to make target
'.git/refs/heads/master'
, needed by
'build/frida-version.h'
. Stop.
sudo apt update
sudo 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
-
y
sudo gem install fpm
-
v
1.11
.
0
-
-
no
-
document
python3
-
m pip install lief
sudo apt update
sudo 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
-
y
sudo gem install fpm
-
v
1.11
.
0
-
-
no
-
document
python3
-
m pip install lief
wget https:
/
/
dl.google.com
/
android
/
repository
/
android
-
ndk
-
r22b
-
linux
-
x86_64.
zip
unzip android
-
ndk
-
r22b
-
linux
-
x86_64.
zip
wget https:
/
/
dl.google.com
/
android
/
repository
/
android
-
ndk
-
r22b
-
linux
-
x86_64.
zip
unzip android
-
ndk
-
r22b
-
linux
-
x86_64.
zip
sudo mv android
-
ndk
-
r22b
/
opt
/
export ANDROID_NDK_ROOT
=
'/opt/android-ndk-r22b'
sudo mv android
-
ndk
-
r22b
/
opt
/
export ANDROID_NDK_ROOT
=
'/opt/android-ndk-r22b'
curl
-
o
-
https:
/
/
raw.githubusercontent.com
/
nvm
-
sh
/
nvm
/
v0.
39.0
/
install.sh | bash
nvm install
10
curl
-
o
-
https:
/
/
raw.githubusercontent.com
/
nvm
-
sh
/
nvm
/
v0.
39.0
/
install.sh | bash
nvm install
10
git clone
-
-
recurse
-
submodules https:
/
/
github.com
/
frida
/
frida
git clone
-
-
recurse
-
submodules https:
/
/
github.com
/
frida
/
frida
git clone https:
/
/
github.com
/
AAAA
-
Project
/
Patchs.git
cd frida
/
frida
-
core
/
git am ..
/
..
/
Patchs
/
strongR
-
frida
/
frida
-
core
/
*
.patch
cd ..
git clone https:
/
/
github.com
/
AAAA
-
Project
/
Patchs.git
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2022-3-16 15:04
被lushanu编辑
,原因: update