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源码使用因为路径否则会出现编码问题.