首页
社区
课程
招聘
[原创]手动编译Hluda Frida Server
发表于: 2021-10-21 13:35 40774

[原创]手动编译Hluda Frida Server

2021-10-21 13:35
40774

本文基于ubuntu 21.04操作

frida 将默认分支从 master 切换到 main,如果编译出现

参考此commit:
https://github.com/frida/frida/commit/e4c6a1e646666284ea77c36d61f20558504847b5

ndk版本与你想要编译的版本相关,在其/releng/setup-env.sh注明了需要的NDK版本

图片描述

这里以最新版的frida ndk依赖22 进行

ndk下载网址:https://developer.android.com/ndk/downloads?hl=zh-cn

https://github.com/nvm-sh/nvm

当前最新版本是: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 - https://githistory.xyz/ 在某些情况下确实有用:

图片描述

参考:

 
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/
 
#add env variables
export ANDROID_NDK_ROOT='/opt/android-ndk-r22b'
sudo mv android-ndk-r22b /opt/
 
#add env variables
export ANDROID_NDK_ROOT='/opt/android-ndk-r22b'
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
 
# install node 10
nvm install 10
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
 
# install node 10
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
 
# 回到frida 根目录
cd ..
git clone https://github.com/AAAA-Project/Patchs.git

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2022-3-16 15:04 被lushanu编辑 ,原因: update
收藏
免费 16
支持
分享
最新回复 (24)
雪    币: 441
活跃值: (731)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这样build出来的frida-server还能用之前的pc端的frida调用吗
2022-2-16 15:43
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
Light紫星 这样build出来的frida-server还能用之前的pc端的frida调用吗
当然可以啦,这种只是改了一些特征,逻辑没有改
2022-2-17 10:01
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
编译失败,Mac和ubuntu都试过了,太坑了
2022-3-16 13:58
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
长野飘荡 编译失败,Mac和ubuntu都试过了,太坑了
我真是服辣,失败也不贴报错信息,上来就说我坑?你这种症状多久了
2022-3-16 15:02
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
lushanu 我真是服辣,失败也不贴报错信息,上来就说我坑?你这种症状多久了
额误会了,意思的frida编译太坑
2022-3-16 17:06
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
长野飘荡 额误会了,意思的frida编译太坑
哈哈哈哈哈哈 抱歉抱歉
2022-3-18 09:43
0
雪    币: 221
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
大佬问一下,这个报错是因为什么
lm@lamorm:~/frida$ make core-android-arm
make[1]: 进入目录“/home/lm/frida”
. build/frida-env-android-arm.rc; builddir=build/tmp-android-arm/frida-gum; if [ ! -f $builddir/build.ninja ]; then         meson_args="--native-file build/frida-linux-x86_64.txt"; if [ android-arm != linux-x86_64 ]; then meson_args="$meson_args --cross-file build/frida-android-arm.txt"; fi; python3 /home/lm/frida/releng/meson/meson.py setup $meson_args --prefix /home/lm/frida/build/frida-android-arm --libdir /home/lm/frida/build/frida-android-arm/lib --default-library static -Doptimization=s -Db_ndebug=true --strip -Dgumpp=enabled -Dgumjs=enabled -Dv8=auto -Ddatabase=enabled -Dfrida_objc_bridge=auto -Dfrida_swift_bridge=auto -Dfrida_java_bridge=auto -Dtests=enabled  frida-gum $builddir || exit 1; fi; python3 /home/lm/frida/releng/meson/meson.py install -C $builddir || exit 1
The Meson build system
Version: 0.60.99
Source dir: /home/lm/frida/frida-gum
Build dir: /home/lm/frida/build/tmp-android-arm/frida-gum
Build type: cross build
Project name: frida-gum
Project version: 1.0.0

frida-gum/meson.build:1:0: ERROR: Unknown compiler(s): [['/home/lm/frida/build/frida-android-arm-clang', '-include', '/home/lm/frida/build/frida-version.h']]

A full log can be found at /home/lm/frida/build/tmp-android-arm/frida-gum/meson-logs/meson-log.txt
make[1]: *** [Makefile.linux.mk:111:build/frida-android-arm/lib/pkgconfig/frida-gum-1.0.pc] 错误 1
make[1]: 离开目录“/home/lm/frida”
make: *** [Makefile:4:core-android-arm] 错误 2
2022-4-21 15:22
0
雪    币: 5
活跃值: (2595)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
编译很简单,主要是怎么改特征的啊,哪位大佬分享一下
2022-4-25 10:29
0
雪    币: 225
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
wx_偏执。 大佬问一下,这个报错是因为什么 lm@lamorm:~/frida$ make core-android-arm make[1]: 进入目录“/home/lm/frida” . build/fr ...
你的ndk环境没配好
2022-7-11 10:33
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
去特征的参考此 patch https://github.com/AAAA-Project/Patchs
2022-8-4 10:42
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12

1

最后于 2022-10-24 19:45 被Bingo_player编辑 ,原因: 已解决
2022-10-24 15:27
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
Bingo_player make[1]: Entering directory '/home/ruibiao/Downloads/frida/frida' . build/frida-env-android-arm.rc; ...
完辣,哦吼
2022-10-24 15:27
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
FAILED: bindings/gumjs/gumquickscript-runtime.h bindings/gumjs/gumquickscript-objc.h bindings/gumjs/gumquickscript-java.h bindings/gumjs/gumv8script-runtime.h bindings/gumjs/gumv8script-objc.h bindings/gumjs/gumv8script-java.h bindings/gumjs/gumcmodule-runtime.h 
/home/ruibiao/Downloads/frida/frida/frida-gum/bindings/gumjs/generate-runtime.py arm /home/ruibiao/Downloads/frida/frida/frida-gum/bindings/gumjs /home/ruibiao/Downloads/frida/frida/frida-gum/gum /home/ruibiao/Downloads/frida/frida/build/sdk-android-arm/include/capstone /home/ruibiao/Downloads/frida/frida/build/sdk-android-arm/lib /home/ruibiao/Downloads/frida/frida/build/tmp-android-arm/frida-gum/bindings/gumjs/quickcompile /home/ruibiao/Downloads/frida/frida/build/tmp-android-arm/frida-gum/bindings/gumjs
/home/ruibiao/Downloads/frida/frida/frida-gum/bindings/gumjs/node_modules/frida-compile/bin/compile.js:40
  .catch(error=> {
              ^^
SyntaxError: Unexpected token =>
    at exports.runInThisContext (vm.js:54:16)
    at Module._compile (module.js:429:25)
    at Object.Module._extensions..js (module.js:464:10)
    at Module.load (module.js:341:32)
    at Function.Module._load (module.js:296:12)
    at Function.Module.runMain (module.js:487:10)
    at startup (node.js:111:16)
    at node.js:809:3
Traceback (most recent call last):
  File "/home/ruibiao/Downloads/frida/frida/frida-gum/bindings/gumjs/generate-runtime.py", line 335, in <module>
    subprocess.check_call([node_script_path("frida-compile"), "./runtime/entrypoint-quickjs.js", "-o", runtime] + quick_options, cwd=input_dir)
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/ruibiao/Downloads/frida/frida/frida-gum/bindings/gumjs/node_modules/.bin/frida-compile', './runtime/entrypoint-quickjs.js', '-o', '/home/ruibiao/Downloads/frida/frida/build/tmp-android-arm/frida-gum/bindings/gumjs/runtime-build-quick/frida.js', '-c']' returned non-zero exit status 1.
[94/209] Compiling C++ object bindings...ida-gumpp-1.0.so.p/sanitychecker.cpp.o
ninja: build stopped: subcommand failed.
make[1]: *** [Makefile.linux.mk:118: build/frida-android-arm/lib/pkgconfig/frida-gum-1.0.pc] Error 1
make[1]: Leaving directory '/home/ruibiao/Downloads/frida/frida'
make: *** [Makefile:4: core-android-arm] Error 2
2022-10-24 17:55
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
Bingo_player FAILED: bindings/gumjs/gumquickscript-runtime.h bindings/gumjs/gumquickscript-objc.h bindings/gumjs/ ...
上个问题解决了,接着遇到这个,呜呜呜
2022-10-24 17:55
0
雪    币: 33
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
解决了,谢谢博主
2022-10-25 17:24
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
为什么没有编译好的直接安装
2022-10-25 17:47
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18

这个编译的时候也要注意nodejs的版本,具体可以去看你那个版本对应的ci文件 https://github.com/frida/frida/blob/main/.github/workflows/ci.yml


例如这个对应的 node 18


2022-10-26 21:41
0
雪    币: 5662
活跃值: (3502)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

谢谢楼主,使用时报错了,说找不到system_server进程,用的16.0.7的版本。hluda服务没报错,也没任何输出。手机用的小米5X,第三方魔趣9系统,用官方frida-server arm64 16.0.7没问题,但不能过app检测。用hluda-server时就说找不到system_server进程,手机会黑一下屏然后重新加载界面(过程大概3-5秒)。

最后于 2022-12-5 14:50 被rehai编辑 ,原因:
2022-12-5 14:46
0
雪    币: 1122
活跃值: (1928)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
rehai 谢谢楼主,使用时报错了,说找不到system_server进程,用的16.0.7的版本。hluda服务没报错,也没任何输出。手机用的小米5X,第三方魔趣9系统,用官方frida-server arm6 ...
这个补丁只支持到 15.0.14,之后的版本是用不了,Android 9的话,自己编一个14就可以
2022-12-5 22:07
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
lushanu 当然可以啦,这种只是改了一些特征,逻辑没有改[em_6]
修改特征的教程一起放上吧
2022-12-8 13:36
0
雪    币: 5662
活跃值: (3502)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
lushanu 这个补丁只支持到 15.0.14,之后的版本是用不了,Android 9的话,自己编一个14就可以
frida 14我的pip一直装不上,还在想办法
2022-12-14 22:36
0
雪    币: 893
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
lushanu 这个编译的时候也要注意nodejs的版本,具体可以去看你那个版本对应的ci文件 https://github.com/frida/frida/blob/main/.github/workflows/c ...
谢谢!安装对应的node版本就可以编译成功了!
2023-7-19 15:15
0
雪    币: 300
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
root@lxm-virtual-machine:/home/lxm/frida# make -f Makefile.toolchain.mk
│ ninja :: Building for linux-x86_64
make: *** [Makefile.toolchain.mk:112:build/ft-linux-x86_64/manifest/ninja.pkg] 错误 1
root@lxm-virtual-machine:/home/lxm/frida# 
这是什么问题
2024-1-6 13:07
0
雪    币: 17
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
lamorm 大佬问一下,这个报错是因为什么 lm@lamorm:~/frida$ make core-android-arm make[1]: 进入目录“/home/lm/frida” . build/fr ...
找到问题了么哥们
2024-8-19 11:16
0
游客
登录 | 注册 方可回帖
返回
//