window下编译Frida
环境配置
安装 VS2019 选择 使用 C++ 的桌面开发 ,并选择 对 VS2017(v141) 工具的 C++ Window XP 支持[已弃用] 组件,如下图所示。
安装 git 和 nodejs , 并加入环境变量。
安装 python3.8 ,安装目录为 C:\Program Files (x86)\Python 3.8\ ,安装选项如下图所示。
这里需要注意, python 最好安装在系统盘,因为安装在其他盘在编译过程中可能会出现 python 执行子命令权限不足的情况。
安装好以上应用之后,在 cmd 中应该可以执行 git , node , python, py 这些命令。
下载 Frida 源码并编译
下载 Frida 源码。
1 | $ git clone --recurse-submodules https://github.com/frida/frida |
等待源码下载完成,然后进入源码目录,执行下列命令。
1 | $ powershell |
等待命令运行完成,然后打开 frida.sln 文件直接 F7 编译源码。
在编译过程中,可能会出现下列错误
1 | 严重性 代码 说明 项目 文件 行 禁止显示状态 |
这里需要将 keyed-archive.c 文件中的 “%s”换成 '%s' ,这是由于相应的 c 文件 keyed-archive.c 来源于 vala 文件 keyed-archive.vala ,所以需要将对应 valva 里的所有宽字符 “” 替换为 '' 。
以上的所有错误修改完后,再编译即可成功.
编译 frida-server
环境:Ubuntu 18.04
根据官方文档,配置必要的环境,其中官方文档中提到的 lib32stdc++-9-dev 库安装不了,但是最后编译是没有问题的。
1 | sudo apt-get install build-essential curl git libc6-dev-i386 nodejs npm python3-dev python3-pip |
配置 ndk 环境变量。
1 | export ANDROID_NDK_ROOT=/home/ckcat/snap/sdk/ndk/22.1.7171670 |
然后进入 frida 源码目录,执行下列命令进行编译。
1 | make core-android-arm64 # 编译 arm64 的 frida-server |
执行以上命令,会自动下载对应的 toolchain 和 sdk ,编译好的
如果因为网络原因无法自动下载,可以手动下载,官方 toolchain 和 sdk 下载地址如下。
1 | https://build.frida.re/deps/20210123/toolchain-linux-x86_64.tar.bz2 |
其中 20210123 是 frida 中 releng/deps.mk 中的 frida_deps_version 。
下载完之后,解压至 frida/build 目录,然后再执行上面的编译命令即可。(这个操作我没有试过,所以可能有坑,但是问题应该不大。)
这里要说明一点,我使用的
Ubuntu 18.04此前编译过Android系统,所以可能装的库比较齐全,如果安装上面的库以后还是编译不了,那么就根据报错信息安装对应的库就好了。
参考
1 | https://frida.re/docs/building/#windows |