小柏实战学习安卓图文教程-第十课-Frida静态脱壳2

本节课主题:Frida脱壳环境搭建

通过前几课的学习,我们已经能准确识别APK的加固情况。从本课开始,我们将进入真正的动态脱壳实战,学习如何使用Frida从运行中的应用内存中提取解密后的代码。

一、Frida安装详细步骤

1.先把第一课的雷电模拟器启动,确定开启ADB远程调试了

image

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 架构,比如 x86arm64-v8a等。这个结果就是你选择正确 frida-server版本的依据。

image

我的结果: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 发布页面(https://github.com/frida/frida/releases),根据前面识别的架构,在庞大的文件列表中找到并下载上面确定的文件。

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/

image

 

 

 

3. 设置执行权限并启动服务

用 adb shell进入模拟器,切换到 root权限,然后进入该目录,为文件赋予可执行权限(chmod 755 ...),最后运行它(./... &

# 进入adb shell
adb shell

# 切换到root权限
su
#记得允许

image

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

image

 

# 进入目录并设置权限
cd /data/local/tmp
chmod 755 frida-server-16.0.0-android-x86_64
# 启动服务(后台运行) ./frida-server-16.0.0-android-x86_64&

注意:保持此终端窗口开启,确保服务持续运行。

image

 

 

三、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

image

image

 

3. 验证安装结果

# 检查版本
frida --version

# 查看帮助信息
frida-ps --help

预期结果:正常显示版本号,无报错信息。

image

 

 

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

image

image

 

 

注意: 将路径添加到系统环境变量 PATH 中 (检查一遍,可能python安装的时候就已经配置好了路径,但是还是要检查一遍)

这是最关键的一步,让系统在任何位置都能识别这个命令。

  • 在 Windows 搜索框输入“环境变量”,选择“编辑系统环境变量”。

  • 在打开的“系统属性”窗口中,点击下方的“环境变量”按钮。

  • 在“系统变量”区域中,找到并选中名为 Path的变量,然后点击“编辑...”。

  • 在编辑窗口中,点击“新建”,然后将你在第2步中记下的 完整路径注意:是 Scripts文件夹的路径,而不是 .exe文件本身的路径)粘贴进去。

  • 依次点击“确定”保存所有窗口。

 

验证安装,完全关闭当前 PowerShell 窗口,然后重新打开一个新的 PowerShell 窗口,让环境变量生效。再次输入命令测试:

frida-dexdump --help

此时能正常显示帮助信息.

image

 

 

 

版本匹配原则:三个一致

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

image

 

 

2. 测试连接状态

# 查看模拟器进程列表
frida-ps -U

成功标志:正常显示模拟器上运行的进程列表。

image

 

五、完整环境验证流程

基础功能测试

# 查看设备连接状态
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

环境搭建成功标准

  1. frida-ps -U能正常显示进程列表

  2. 能够成功注入简单测试脚本

  3. 无版本错误和连接错误

 

 

posted on 2026-01-16 12:20  shaun88  阅读(29)  评论(0)    收藏  举报

导航