- Android应用安全实战:Frida协议分析
- 李岳阳 卓斌编著
- 1720字
- 2025-02-17 15:08:08
1.2 Frida框架环境搭建
个人计算机上安装的是Frida框架的客户端,安装方法极其容易,但是需要借助Python的pip包管理器。因此,需要开发者先下载安装Python。Python是一个语法简洁优雅、上手容易、开发迅速的面向对象的脚本语言,海量的第三方包和方便快捷的包管理机制让Python成了当下最流行的编程语言之一。本节会先介绍Python的安装,之后讲解JavaScript与Python代码编辑器的安装,最后讲解如何在个人计算机上安装Frida框架。
1.2.1 Python的安装

这一小节来安装Python这门脚本语言,Python存在不同系统的版本,可以自行选择。本书以在Windows下安装Python 3.8.6为例,具体下载安装步骤如下。
1)打开Python官网https://www.python.org/,单击Downloads选项卡→Windows选项,如图1-2所示。

·图1-2 Python官网
2)进入Windows版本的Python下载页面,在众多版本中找到图1-3中的Python 3.8.6版本,下载图1-3中框选的64位安装包。

·图1-3 Python 3.8.6下载
3)下载完毕后双击运行,出现了如图1-4所示安装界面,勾选下方的Add Python 3.8 to PATH复选框,那么在安装完成后,会在系统中自动添加相应环境变量。接着选择Customize installation选项进行自定义安装。
4)勾选图1-5所示的复选框,单击Next按钮。进入图1-6所示的界面后,选择C盘以外的路径作为Python安装目录,最后单击Install按钮安装即可。

·图1-4 Python 3.8.6安装界面

·图1-5 Python 3.8.6勾选界面

·图1-6 Python 3.8.6安装路径选择
打开命令行终端输入“python”,如果没有报错,则说明Python已经安装成功。如下所示:

1.2.2 Visual Studio Code的安装
Visual Studio Code(以下简称VSCode)是一个轻量级但功能强大的源代码编辑器,适用于Windows、Linux和macOS等多个操作系统。本书的JavaScript与Python代码都将在其中编写,具体下载安装步骤如下。
1)在浏览器中打开网址https://code.visualstudio.com/。选择适合自己系统的VSCode版本,这里选择的是Windows x64中的Stable版本。
2)下载成功后双击运行安装程序,勾选“创建桌面快捷方式”与“添加到PATH(重启后失效)”复选框,然后单击“下一步”按钮进行安装,如图1-7所示。

·图1-7 VSCode下载与安装配置
3)安装成功后VSCode会自动启动,展示出如图1-8所示的主窗口。
1.2.3 Node.js的安装
Frida的Hook代码通常采用JavaScript编写,而安装Node.js可以在编写JavaScript代码时有更好的代码提示,也有助于后续配置Frida代码提示。本书以在Windows下安装为例,具体下载安装步骤如下。
1)在浏览器中打开网址http://nodejs.cn/download/current/,如图1-9所示。选择LTS版本的Windows 64位安装包。

·图1-8 VSCode主窗口
2)下载成功后双击运行安装程序,单击Next按钮,勾选同意协议复选框后,继续单击Next按钮,如图1-10所示。

·图1-9 Node.js下载
3)修改安装目录后,其他都默认,一直单击Next按钮,之后单击Install按钮安装即可,如图1-11所示。

·图1-10 同意协议

·图1-11 选择安装路径
打开命令行终端输入“npm”,如下所示。如果没有报错,则说明Node.js已经安装成功。

接下来,安装Frida代码提示。使用VSCode创建一个工程目录,打开命令行终端,切换到该目录下,使用以下命令来安装Frida代码提示即可:

安装Frida代码提示之前,需要先安装Node.js。上述方式是局部安装,如果切换到其他工程目录,需要重新安装。
1.2.4 Frida的安装

Frida框架作为Python的第三方包,其安装是非常简单快捷的,因为Python的包管理器会自动为开发者处理一系列烦琐的工作。但是不同的Android系统版本需要对应不同的Frida版本,而且不同的Frida版本对Python的版本也有要求。一般而言,可以根据如下的对应关系进行版本选择。
·Android 5~6使用Frida 12.3.6版本,Python安装3.7版本。
·Android 7~8使用Frida 12.8.0版本,Python安装3.8版本。
·Android 9.0+使用Frida 14.0+版本,Python安装3.8版本。
使用以下命令安装Frida即可,默认会安装最新版本:

在计算机端,Frida框架包含两个部分:一个是Frida的Python库;另一个是frida-tools,也就是Frida的CLI工具。后者中有一些可执行文件,可以帮助开发者非常便捷地进行Hook调试。如果要使用Python编写代码,才需要用到Frida的Python库。不过在安装Frida的CLI工具时,会自动安装Frida的Python库。此外,Frida框架还有另外一个部分需要单独下载,然后配置在移动端,如frida-server、frida-inject、frida-gadget等。
如果需要安装指定版本的Frida,推荐先安装Frida的Python库,再安装frida-tools。本书使用的Frida版本是14.2.18,指定版本安装的方式如下:

可以在https://github.com/frida/frida/releases/tag/12.8.0查看Frida对应的tools版本,如图1-12所示,网址最后的版本号可以根据需要进行更改。
可以使用以下两种方式来判断是否安装成功,两种方法都要测试。
第一种是打开命令行终端,输入“frida-version”,看是否能够打印Frida版本号。测试frida-tools是否安装成功的方式如下:

·图1-12 Frida对应的tools版本

第二种是打开命令行终端,输入“python”,进入Python编辑器后,再输入“import frida”,看是否能够正常导入工具包,测试Frida的Python库是否安装成功的方式如下。

如果需要更换Frida版本,可以使用以下命令进行Frida的卸载:
