[原创]FRIDA源码编译(win,ubuntu20.4)和frida-tools安装以及编译遇到问题
2023-6-12 17:6:0 Author: bbs.pediy.com(查看原文) 阅读量:7 收藏

[原创]FRIDA源码编译(win,ubuntu20.4)和frida-tools安装以及编译遇到问题

2023-6-12 17:06 3159

[原创]FRIDA源码编译(win,ubuntu20.4)和frida-tools安装以及编译遇到问题

一.前言

        frida是一个款优秀的hook框架。本篇文章是对自己根据frida编译手册在编译frida源码过程中的回顾总结以及遇到的问题如何解决的,分享给在编译frida源码过程遇到问题的坛友。

        下面我们就根据frida编译手册来进行编译

二.win编译

        frida在windows编译手册

2.1.编译环境

        首先要确认编译前的环境:

               1,VS2022

               2,Git

               3,python

               4,NodeJs

        关于python环境和Nodejs要注意的是:python环境必须安装在这个目录C:\Program Files\Python310\,否则会无法编译。

2.2.自定义python路径

由于python的默认安装路径在appdata路径下,也可以修改releng/frida.props文件中的<PythonLoacation>标签来修改python的加载路径。

    <PythonLocation Condition="'$(PythonLocation)'=='' AND '$(Platform)'=='x64'">你的python路径</PythonLocation>
   
    <PythonLocation Condition="'$(PythonLocation)'=='' AND '$(Platform)'=='Win32'">你的python路径</PythonLocation>

2.3.nodej版本的选择

编译手册并未对nodejs的版本要求有说明,并不是你可以使用任意你喜欢的nodejs版本进行编译。这里我们参考作者编译完成的模块来选择nodejs的版本。

其中V83,V93就是nodejs的版本。

我们可以对比nodejs的版本号来选择安装nodejs的版本,我这里选择的是V93。nodejs版本对照及下载

至此我们需要的环境就已经准备好了,下面开始clone源码。命令:git clone --recurse-submodules https://github.com/frida/frida

2.4.编译windows Toolchain and SDK

执行releng/build-deps-windows.py全自动编译。脚本执行成功后你可以下楼去打篮球,跑步,玩累了回来你会发现已经编译好了。这个过程是非常耗时的,因为会编译各种版本的SDK,我的自己12核3.7G频率的CPU编译了约70分钟左右。生成目录在build/

2.5.开始编译

如果已经进行到了这一步,所有的准备工作我们已经完成了。用VS2022打开frida目录下的frida.sln。选择你喜欢的版本,win32/x64/Debug/Release。右键frida-core这个工程,选择生成。如果不出意外的话,要出意外了。在下方的输出目录会输出许多警告日志信息,它会遮挡出现的错误日志,我们可在工程属性编辑禁用特定警告。

全角中文引号导致的错误

解决办法就是在VS中剔除掉所有报错使用全角中文字符的位置。接下来frida-core应该不会遇到什么问题了。

接下来编译全部工程生成frida.dll,只要是frida.dll编译出来后,再出现error一律无视。

生成目录在build/frida-windows/版本/bin。再window上编译frida除了再编译toolchain比较耗时外,其他还是很快的。编译出来的dll我们也只能再windows上使用,如果需要在android平台使用,我们需要在ubuntu下编译。

三.ubuntu20.4编译

        关于ubuntu如何安装在本小节中不在赘述,我们除了可以在vmware通过安装ubuntu来进行源码编译这种方式之外,还可以通过wsl安装ubuntu来进行编译。使用WSL在windows上安装linux。使用WSL进行编译产生的错误请自行解决,不在本章讨论范围内。

3.1.编译环境

        编译前确认的环境

        1,ndkr25-linux版本

        2,nodejs

        3,python3.8

先执行编译手册提供给我们的安装环境命令:sudo apt-get install build-essential curl git lib32stdc++-9-dev \    libc6-dev-i386 nodejs npm python3-dev python3-pip

然后clone frida源码:git clone --recurse-submodules https://github.com/frida/frida.git


3.2.开始编译

通过make命令来获取可编译版本的参数

例如,如果要编译在64位android平台下运行:make frida-android-arm64

ubuntu下编译frida不用预先编译toolchain和SDK。因为make执行的脚本会从网络上下载已经编译好的的toolchain和SDK。

我在ubuntu下只遇到这个错误,Cannot load plugin "typescript": Not supported

解决办法是更换nodejs版本(和win一致)来解决,也许是通过apt-get安装的nodejs版本较低的原因。

生成目录:frida/build/frida-android-arm64/bin

四.frida-tools安装

    frida-tools是安装frida在windows上执行的pyhon环境。如果你已经完成第二节win编译,那么你需要在frida-tools/agents/fs目录下执行npm install 和    npm run build两条命令,然后再frida-tools目录下执行python setup.py  install。通过pip list命令检查是否安装成功。

安卓逆向入门


文章来源: https://bbs.pediy.com/thread-277588.htm
如有侵权请联系:admin#unsafe.sh