小柏实战学习安卓图文教程-第十课-Frida静态脱壳2
本节课主题:Frida脱壳环境搭建
通过前几课的学习,我们已经能准确识别APK的加固情况。从本课开始,我们将进入真正的动态脱壳实战,学习如何使用Frida从运行中的应用内存中提取解密后的代码。
一、Frida安装详细步骤
1.先把第一课的雷电模拟器启动,确定开启ADB远程调试了

2.物理机的环境变量配置一下,和当初的java一样配置:
-
复制路径:首先,你需要知道
adb.exe所在的完整路径。就是你雷电9 的安装所在的目录:`D:\soft\moniqi\leidian\LDPlayer9`。请复制这个路径。 -
打开系统环境变量设置:
-
在Windows搜索框输入“环境变量”,然后选择“编辑系统环境变量”。
-
-
编辑 Path 变量:
-
在打开的“系统属性”窗口中,点击下方的“环境变量”。
-
在“系统变量”列表中,找到并选中名为
Path的变量,然后点击“编辑...”。 -
在编辑窗口中,点击“新建”,然后将你刚才复制的路径
D:\soft\moniqi\leidian\LDPlayer9粘贴进去。 -
点击“确定”保存所有窗口。
-
3.检查 adb 链接
-
打开你电脑的命令行窗口
-
在 Windows 上,你可以按
Win+R键,输入cmd,然后按回车。
-
-
直接输入命令并执行
将下面这行命令完整地复制粘贴到打开的命令行窗口里,然后按回车:
adb shell getprop ro.product.cpu.abi这个命令的作用是让你通过电脑上的
adb工具,告诉已连接的安卓设备执行getprop ro.product.cpu.abi这条命令,从而查询其 CPU 架构。 -
将下面这行命令完整地复制粘贴到打开的命令行窗口里,然后按回车:
adb shell getprop ro.build.version.release
这个命令的作用是让你通过电脑上的
adb工具,告诉已连接的安卓设备执行 getprop ro.build.version.release这条命令,从而查询其 安卓版本。 -
查看结果
命令执行后,会直接显示出你模拟器的 CPU 架构,比如
x86或arm64-v8a等。这个结果就是你选择正确frida-server版本的依据。

我的结果:cpu架构 X86_64 ; 安卓9 ;
所以我强烈建议先选择稳定兼容的版本(如 16.0.0),确保环境搭建一次成功,避免在版本问题上花费不必要的时间。
下载的文件全名应该是:frida-server-16.0.0-android-x86_64.xz
二、雷电模拟器端frida-server配置
1. 下载正确的frida-server
4.下载frida-server: 本教程课件直达链接:https://pan.quark.cn/s/ad27e74fbf86
前往 Frida 的官方 GitHub 发布页面(
2. 推送文件到模拟器
-
安装并配置
下载后,请按照我们之前讨论的步骤进行操作:
-
解压
.xz文件得到frida-server-16.0.0-android-x86_64文件。 -
使用
adb push命令将其发送到模拟器的/data/local/tmp/目录:adb push frida-server-16.0.0-android-x86_64 /data/local/tmp/
-

3. 设置执行权限并启动服务
用 adb shell进入模拟器,切换到 root权限,然后进入该目录,为文件赋予可执行权限(chmod 755 ...),最后运行它(./... &)
# 进入adb shell
adb shell
# 切换到root权限
su
#记得允许

tips: 如果手慢了,就像我一下,没来得及允许,那么就是面具app,左下,超级用户,给他打开

# 进入目录并设置权限 cd /data/local/tmp chmod 755 frida-server-16.0.0-android-x86_64 # 启动服务(后台运行) ./frida-server-16.0.0-android-x86_64&
注意:保持此终端窗口开启,确保服务持续运行。

三、PC端Frida安装详细步骤
这是非常关键的一步!你物理电脑(PC)上安装的 Frida 版本必须与安卓模拟器里运行的 frida-server版本完全一致。
1. 安装Python环境
-
推荐Python 3.13
-
安装时务必勾选"Add Python to PATH"
2. 使用国内镜像加速安装
新开一个cmd窗口:
# 安装较新的 Frida 版本 pip install frida==16.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install frida-tools==12.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 或者安装当前稳定版 pip install frida -i https://pypi.tuna.tsinghua.edu.cn/simple


3. 验证安装结果
# 检查版本
frida --version
# 查看帮助信息
frida-ps --help
预期结果:正常显示版本号,无报错信息。

4.最后安装 frida-dexdump
在 PowerShell 中运行以下命令(建议使用国内镜像源以加速下载):
pip install frida-dexdump -i https://pypi.tuna.tsinghua.edu.cn/simple
如果之前安装过,也可以使用 --upgrade选项确保是最新版本:
pip install --upgrade frida-dexdump -i https://pypi.tuna.tsinghua.edu.cn/simple
找到 frida-dexdump 的安装位置,安装成功后,需要找到 frida-dexdump.exe文件在哪里。使用以下命令查询:
python -m pip show -f frida-dexdump
在输出信息中,找到 Location这一行,它显示了包的安装目录。然后在下方的文件列表(Files)里找到 frida-dexdump.exe文件。记下这个文件的完整路径,它应该类似于 C:\Users\你的用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\frida-dexdump.exe。
我的路径: D:\soft\python\Python313\Scripts\frida-dexdump.exe


注意: 将路径添加到系统环境变量 PATH 中 (检查一遍,可能python安装的时候就已经配置好了路径,但是还是要检查一遍)
这是最关键的一步,让系统在任何位置都能识别这个命令。
-
在 Windows 搜索框输入“环境变量”,选择“编辑系统环境变量”。
-
在打开的“系统属性”窗口中,点击下方的“环境变量”按钮。
-
在“系统变量”区域中,找到并选中名为
Path的变量,然后点击“编辑...”。 -
在编辑窗口中,点击“新建”,然后将你在第2步中记下的 完整路径(注意:是
Scripts文件夹的路径,而不是.exe文件本身的路径)粘贴进去。 -
依次点击“确定”保存所有窗口。
验证安装,完全关闭当前 PowerShell 窗口,然后重新打开一个新的 PowerShell 窗口,让环境变量生效。再次输入命令测试:
frida-dexdump --help
此时能正常显示帮助信息.

版本匹配原则:三个一致
Frida环境包含三个组件,必须保持版本一致:
-
PC端frida:Python安装的frida库
-
PC端frida-tools:命令行工具集
-
移动端frida-server:运行在模拟器的服务端
架构识别关键步骤
在下载frida-server前,必须先确认模拟器架构:
adb shell getprop ro.product.cpu.abi
查询结果与版本选择:
-
x86→ 选择frida-server-*-android-x86.xz -
x86_64→ 选择frida-server-*-android-x86_64.xz -
arm/arm64→ 适用于真机,模拟器通常为x86架构
版本推荐表
|
安卓版本 |
推荐Frida版本 |
说明 |
|---|---|---|
|
Android 7.x(雷电5.0) |
12.8.0 |
稳定兼容 |
|
Android 9.x(雷电9.0) |
16.0.0 |
新版本支持 |
|
Android 11+ |
15.2.0+ |
最新功能支持 |
四、连接配置与端口转发
1. 设置端口转发
# 新开一个CMD窗口执行
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043

2. 测试连接状态
# 查看模拟器进程列表
frida-ps -U
成功标志:正常显示模拟器上运行的进程列表。

五、完整环境验证流程
基础功能测试
# 查看设备连接状态
frida-ls-devices
# 查看模拟器中的应用列表
frida-ps -Ua
简单Hook测试脚本
创建测试文件 test.js:
Java.perform(function() {
console.log("[+] Frida环境测试成功!");
console.log("[+] 当前Frida版本:" + Frida.version);
});
执行测试:
# 附加到系统进程进行测试
frida -U -p $(frida-ps -U | grep systemserver | awk '{print $1}') -l test.js
六、常见问题与解决方案
1. 连接失败:frida.ServerNotRunningError
问题原因:frida-server未正常运行或端口未转发
解决方案:
# 检查frida-server进程
adb shell ps | grep frida-server
# 重启服务
adb shell
su
cd /data/local/tmp
pkill frida-server
./frida-server-16.0.0-android-x86 &
# 重新端口转发
adb forward tcp:27042 tcp:27042
2. 版本不匹配:TypeError: cannot read property...
问题原因:PC端与模拟器端Frida版本不一致
解决方案:确保两端版本完全一致
# PC端查看版本
frida --version
# 重新安装匹配版本
pip install frida==16.0.0
pip install frida-tools==12.0.0
3. 权限不足:Permission denied
问题原因:未获取root权限或文件权限设置错误
解决方案:
adb shell
su # 确保提示符变为#(root权限)
chmod 755 /data/local/tmp/frida-server-16.0.0-android-x86
4. 架构不匹配:killed或无法启动
问题原因:下载的frida-server架构与模拟器不匹配
解决方案:重新确认架构并下载正确版本
# 确认模拟器架构
adb shell getprop ro.product.cpu.abi
# 下载对应架构的frida-server
七、环境优化建议
1. 开机自启动frida-server(可选)
创建启动脚本实现模拟器重启后自动运行frida-server。
2. 使用批处理脚本简化流程
创建 start_frida.bat文件:
@echo off
echo 启动Frida环境...
adb connect 127.0.0.1:7555
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
echo Frida环境准备就绪!
pause
环境搭建成功标准
-
frida-ps -U能正常显示进程列表 -
能够成功注入简单测试脚本
-
无版本错误和连接错误
浙公网安备 33010602011771号