Frida编译及魔改
Frida魔改编译
[!NOTE]
总觉得魔改个Frida方便些,网上说16版本稳定一些,但是我pixel6老是死机o(╥﹏╥)o没办法,所以此次使用的Frida版本为17.4.0,ubuntu版本为24.04.02
如果有网络部分出现问题可以试试神奇的”魔法”
一、编译环境安装及测试
安装基础依赖
1 | sudo apt install build-essential git python3-pip lib32stdc++-9-dev libc6-dev-i386 curl unzip |
build-essential: 包含 C/C++ 编译器 (gcc/g++) 和make等基础开发工具。git: 版本控制工具,用于从 GitHub 下载源码。python3-pip: Python 的包管理器,用于安装后续的 Python 依赖。lib32stdc++-9-dev&libc6-dev-i386: 32 位 C++ 标准库和 C 库的开发文件,交叉编译 32 位架构。(需要编译32位可以安装)curl&unzip: 用于下载和解压文件。
Python安装lief库
1 | pip3 install lief --break-system-packages |
--break-system-packages可以在当前环境中强制安装 Python 包
下载源码
1 | git clone --recurse-submodules -b 17.4.0 https://github.com/frida/frida |
--recurse-submodules: 这是编译 Frida 关键的参数之一。作用是克隆主项目的同时,自动下载所有这些被依赖的子项目。-b 17.4.0:-b参数用来指定一个特定的版本。
查看对应的Node.js和NDK版本
1 | autorun@autorun-VMware-Virtual-Platform: ~/frida/subprojects/frida-nodes$ cat package.json | grep node |
通过”node”: “>=16”,“@types/node”: “^22.13.16”,可以确定node版本为22,版本尽量靠近即可。
1 | autorun@autorun-VMware-Virtual-Platform: ~/frida$ cat releng/env_android.py | grep NDK_REQUIRED |
这个在网上没有找到,还是我一个个文档翻才找到的 (◡ᴗ◡✿)
虽然操作有点丑陋
通过NDK_REQUIED = 25,我们选择r25版本的NDK
安装对应的node.js和ndk
安装node.js
1 | 安装nvm |
安装ndk r25
具体版本可以去官网https://github.com/android/ndk/wiki/Unsupported-Downloads看看有哪些
1 | # 创建文件夹,解压的ndk文件到时候放这里,位置自行选择 |
编译测试
在Frida目录直接make,会列出支持的所有编译选项,也会自动下载编译链
尝试
1 | ./configure --host=android-arm64 |
-j8中的8可以改为其它数字,意思是多线程运行数,注意不要超过CPU支持最大线程
如果能够顺利编译出Frida并顺利运行即代表环境依赖完备
编译结果一般在frida/build/subprojects中
? ? ?
本来第一次莫名其妙的报了好多错,修了好久。
百度,必应,Google,ChatGPT,Stack Overflow都去过了。
好不容易搞好了。还重新搞了一遍,结果你告诉我一遍过?
果然编译前一定要看黄历 o(╥﹏╥)o
二、去特征
Florida
这里采用的是https://github.com/Ylarod/Florida的patch
先下载并解压其source.zip在自定义目录
最后好将/frida-corepatch文件中的ggbond修改,以防针对性检测
执行patch,之后再进行编译
1 | root@autorun-VMware-Virtual-Platform:/home/autorun/frida/build/subprojects/frida-core# git am /home/autorun/Florida-17.4.0/patches/frida-core/*.patch |
如出现报错如下
1 | [257/299] Generating subprojects/frida...frida-data-agent with a custom command |
1 | #执行这一句找出问题文件,并将这一句修改为“/../../../../subprojects/frida-core/src/anti-anti-frida.py” |
再次编译即可


