找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

704

积分

0

好友

96

主题
发表于 6 小时前 | 查看: 0| 回复: 0

在移动应用安全测试领域,Frida 是一个不可或缺的动态插桩工具。它强大的功能允许安全研究人员对 Android 应用进行 Java 层和 Native 层的 Hook 操作,是实现app渗透与分析的关键。本文将以 Frida 17.6.2 版本为例,手把手带你完成从 PC 端到 Android 手机端的完整环境搭建。

第一步:安装 Python 环境

Frida 的 PC 端工具基于 Python,因此我们首先需要安装 Python 环境。访问 Python 官方网站下载对应版本,这里以 Python 3.11.4 为例。

下载地址:

https://www.python.org/downloads/release/python-3114/

请根据您的操作系统选择合适的安装包。对于 Windows 用户,推荐下载 64 位的安装程序。

Python官网下载页面,高亮推荐Windows 64位安装程序

运行安装程序时,一个关键步骤是务必将 Python 添加到系统环境变量(PATH)中。在安装界面勾选 “Add python.exe to PATH” 选项,这能确保后续在命令行中直接使用 Python 和 pip 命令。

Python安装界面,标注“Add python to PATH”选项

选择安装路径后,点击 “Install Now” 开始安装。

Python安装路径选择界面

等待安装进度完成。

Python安装进度界面

出现以下界面,即表示 Python 安装成功。

Python安装成功提示界面

接下来,我们需要验证安装。按下 Win + R 键,输入 cmd 打开命令提示符。

Windows运行对话框,输入cmd

在打开的命令行窗口中,输入以下命令检查 Python 版本:

python --version

如果正确显示版本号(如 Python 3.11.4),则说明环境变量配置成功,Python 已就绪。

命令提示符验证Python版本

第二步:配置 Python 虚拟环境(可选但推荐)

为了避免不同项目间的依赖冲突,建议使用虚拟环境。我们将使用 virtualenvwrapper-win 这个工具来管理虚拟环境。

使用国内镜像源加速安装:

pip install virtualenvwrapper-win -i https://mirrors.aliyun.com/pypi/simple

使用pip安装virtualenvwrapper-win的命令行过程

安装成功后,需要配置一个环境变量。在任意位置创建一个文件夹,名称必须WORKON_HOME,这个文件夹将用来存放你所有的虚拟环境。

在文件资源管理器中创建名为WORKON_HOME的文件夹

接下来,将此文件夹的路径添加到系统环境变量中。打开“编辑系统环境变量”,新建一个系统变量。

通过开始菜单打开系统属性,准备编辑环境变量

变量名设为 WORKON_HOME,变量值即为你刚创建的文件夹的完整路径(例如 C:\zyq\WORKON_HOME)。

在环境变量设置窗口中新建WORKON_HOME变量

配置完成后,重新打开一个命令提示符窗口,即可使用虚拟环境命令。首先,创建一个名为 zyaqfr 的虚拟环境:

mkvirtualenv zyaqfr

创建成功后,命令行提示符前会显示虚拟环境名称 (zyaqfr)

使用mkvirtualenv命令创建虚拟环境

使用 workon 命令可以列出当前所有的虚拟环境。

workon

使用workon命令列出可用虚拟环境

进入虚拟环境后,使用 pip list 查看已安装的包,你会发现环境非常“干净”,只有基本的 pipsetuptools。这种隔离性可以有效避免不同项目间第三方包版本的冲突,是 Python 开发中的最佳实践。

在虚拟环境中使用pip list命令,显示仅有两个基础包

第三步:在 PC 端安装 Frida 客户端工具

确保你处于刚才创建的虚拟环境中(命令行前缀为 (zyaqfr))。我们将安装 Frida 的核心工具包 frida-tools,它会自动安装对应版本的 frida 核心库。当前(示例撰写时)最新版本为 17.6.2。

GitHub上Frida 17.6.2版本的发布页面

使用以下命令进行安装:

pip install frida-tools -i https://mirrors.aliyun.com/pypi/simple

安装过程会下载一系列依赖包。

使用pip安装frida-tools,显示下载和依赖解析过程

当看到 Successfully installed frida-17.6.2 frida-tools-14.5.1 ... 等提示时,表示安装成功。

安装完成,提示成功安装frida及相关包

再次使用 pip list 命令,确认 fridafrida-tools 已出现在已安装包列表中,且版本正确。

虚拟环境中pip list结果,显示已安装frida 17.6.2

至此,PC 端的 Frida 环境已准备完毕。

第四步:在 Android 设备上安装 Frida 服务端

Frida 的工作原理需要在目标设备(这里是 Android 手机)上运行一个服务端程序 frida-server。首先,我们需要根据手机 CPU 架构下载对应的版本。

在 Frida 的 GitHub Release 页面,可以找到各种架构的 frida-server

Frida GitHub发布页中列出的各种架构frida-server文件

1. 准备 ADB 工具

我们需要使用 ADB(Android Debug Bridge)来与手机通信。如果你还没有 ADB,可以从 Android 开发者官网下载 Platform-Tools。

下载地址:

https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn

Android开发者官网的SDK Platform-Tools下载页面

下载解压后,将 adb.exe 所在目录添加到系统 PATH 环境变量,或直接在解压目录中打开命令行。

2. 查询手机 CPU 架构

将 Android 手机通过 USB 连接电脑,并开启 USB 调试模式。在命令行中执行:

adb shell getprop ro.product.cpu.abi

命令将返回设备的 CPU 架构,例如 arm64-v8a

使用adb shell和getprop命令查询手机CPU架构为arm64-v8a

3. 下载并推送 frida-server

根据查询到的架构(本例为 arm64),在 Release 页面下载对应的文件,例如 frida-server-17.6.2-android-arm64.xz

在发布页中找到并下载对应架构的frida-server文件

下载后解压,得到一个名为 frida-server-17.6.2-android-arm64 的可执行文件。

文件资源管理器中显示解压后的frida-server可执行文件

在命令行中,使用 adb push 命令将其推送到手机的 /sdcard/ 目录(需要有存储权限):

adb push C:\zyaq1\frida-server-17.6.2-android-arm64\frida-server-17.6.2-android-arm64 /sdcard/

使用adb push命令将文件推送到手机SD卡

可以进入手机 Shell 查看文件是否推送成功:

adb shell
su
ls /sdcard/

在文件列表中看到 frida-server-17.6.2-android-arm64 即表示成功。

通过adb shell查看手机SD卡目录,确认文件存在

4. 运行 frida-server

由于 /sdcard/ 目录通常没有执行权限,我们需要将文件移动到有权限的目录(如 /data/local/tmp/)并赋予执行权限。

在已获取 Root 权限的 ADB Shell 中执行以下命令:

cp /sdcard/frida-server-17.6.2-android-arm64 /data/local/tmp/
cd /data/local/tmp/
chmod +x frida-server-17.6.2-android-arm64
./frida-server-17.6.2-android-arm64

在adb shell中复制文件、修改权限并启动frida-server

最后一条命令执行后,终端会挂起,这表明 frida-server 已在后台启动并持续运行。

第五步:测试连接

保持手机上的 frida-server 在运行状态。在 PC 上另开一个命令提示符窗口(确保虚拟环境已激活),执行以下命令:

frida-ps -U

参数 -U 表示连接到 USB 设备。如果一切配置正确,该命令将列出手机当前运行的所有进程。

在PC端新命令行中执行frida-ps -U,成功列出手机进程列表

当你能看到一长串进程列表(如上图所示)时,恭喜你!这标志着 Frida 的 PC 端与 Android 服务端已成功建立连接,整个 Frida 基础环境搭建完成。

接下来,你就可以基于此环境,开始你的移动应用动态分析与 Hook 之旅了。你可以尝试编写 Frida 脚本,挂钩特定的应用函数,观察或修改其运行时行为,从而进行更深入的安全评估与分析。在像云栈社区这样的技术论坛中,你也可以找到更多关于 Frida 高级用法与实战案例的分享。




上一篇:Linux USB设备驱动开发实战指南:从内核结构到数据传输流程
下一篇:渗透测试中资产收集的方法论、工具库与实战技巧总结
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-28 15:33 , Processed in 0.254416 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表