frida - 编译教程 - iyue
- 当前编译环境: Mac m1 Ubuntu20.04 都可以成功编译 frida git 分支 16.0.7`
下载源码
git clone --recurse-submodules https://github.com/frida/frida.git cd frida make
切换需要的分支 当前基于 16.0.7
git checkout 16.0.7 git submodule update
- 配置编译环境
NDK下载目录 不同分支版本 有不同的ndk 可在源码 查看 或者 根据make后的提示
# for linux ubuntu20.04 别更新 别更新 别更新 或者尝试使用docker sudo apt-get install build-essential curl git lib32stdc++-9-dev libc6-dev-i386 nodejs npm python3-dev python3-pip ## 配置NDK目录 ~/.bashrc add export ANDROID_NDK_ROOT=/*your path*/ndk/25.0.8775105 # for mac brew install npm ## 配置NDK目录 ~/.zshrc add export ANDROID_NDK_ROOT=/*your path*/ndk/25.0.8775105 # all pip install colorama prompt-toolkit pygments # install node npm install npm -g npm install n n install stable npm install frida
frida - build for Linux
linux 没有 证书那一步
cd frida && make core-android-arm64
frida - build for Mac
- 贴图是我觉得有人可能跟我一样找了半天证书助理在哪里 百度了 都没找到最后乱点才出来的
- 创建证书
- 修改证书名称 frida-cert 名称 和 ./build.sh 脚本里写的对应上就可以 不过人家官方推荐的
- 双击打开 frida-cert设置始终信任
- 拷贝到系统 删除登录页刚创建的 frida-cert
要确保 macOS 接受新创建的证书,请重新启动任务门控守护进程:
sudo killall taskgated
- build frida module
在frida目录创建编译脚本 build.sh
执行: ./build.sh core-android-arm64
可选参数 不同平台有不同的 生成目标 core-android-arm64 全平台都有
core-android-arm64 core-android-arm core-android-x86_64 core-android-x86
python-macos linux 为 python-linux-x86 || x86_64
tools-macos 同上
export MACOS_CERTID=frida-cert
export IOS_CERTID=frida-cert
export WATCHOS_CERTID=frida-cert
export TVOS_CERTID=frida-cert
make $1 -j 8
- 体验一下成功的感觉
- core-android-arm64
- python-macos
tools-macos
frida - Build frida whl
- 创建文件build_frida_python.sh
- 下载 frida-core-devkit 对应的分支tag 对应版本 对应平台的 frida-core-devkit-16.0.7-android-arm64
- 使用: ./build_frida_python.sh ./frida-core-devkit/frida-core-devkit-16.0.7-android-arm64重要的事情说三遍
- 下面脚本使用绝对路径
- 下面脚本使用绝对路径
下面脚本使用绝对路径
set FRIDA=$(pwd) # 根目录 frida 源码的上层目录 set FRIDA_VERSION=16.0.7 # from frida-version.h version set FRIDA_EXTENSION=$FRIDA/build/frida-macos-arm64/lib/python3.10/site-packages/_frida.so export FRIDA_CORE_DEVKIT=$FRIDA/frida-core-devkit-16.0.7-android-arm64 # 编译可执行文件 make tools-macos -j 16 make core-android-arm64 -j 16 # 编译python 模块 whl 可以使用 pip 安装 mkdir dist cd dist pip wheel ../frida-python cd ../frida-tools make # 必须执行不然有几个js 脚本会漏掉 cd ../dist pip wheel ../frida-tools
注意事项
- 其它版本得注意一下源码中需要的NDK版本 以及 node版本.
- 期间有大量需要科学的这个只能自己处理了.
- 想来接下去就是修改特征了,可参考huluw 的patch 和 看雪大佬们总结的frida特征.
- frida源码使用因为路径否则会出现编码问题.