最适合新手的Frida入门配置--安卓逆向

[复制链接]
查看588 | 回复3 | 2026-6-25 00:25:11 | 显示全部楼层 |阅读模式

立即注册,突破游客限制,与技术大牛交流切磋,畅享海量资源,让你的技术之路不再孤单!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 璇瑛 于 2026-6-25 00:25 编辑

本教程为面向小白的frida环境配置,操作比较多, 理论可以先直接看文章后半部分:理论补充
一、电脑下载python并添加到环境变量。
建议安装到D盘
安装python不过多解释,记得添加环境变量啊
终端输入python -V检查是否成功,输出版本号则成功,失败继续去搞环境变量
二、电脑下载frida
pip install frida​
pip install frida-tools
终端输入frida,检查frida环境
三、电脑下载android sdk和模拟器
下载完成之后配置记得环境变量(例如路径):D:\Android\Sdk\platform-tools
win+R输入sysdm.cpl回车 --高级--环境变量--系统变量--新建:变量名:ANDROID_HOME 变量值:你下载的platform-tools路径
                                               高级--环境变量--系统变量--Path--在空白的格子里添加  你下载的platform-tools路径;
shell中输入adb回车检查adb状态,若发现报错则继续回去配置环境变量

模拟器教程这里用的是mumu模拟器的安卓12。也可以用雷电模拟器之类,但有条件更推荐买个二手机,专门作为学习逆向来用。
四、连接
模拟器打开超级用户权限

用adb连接到模拟器(mumu模拟器新版本):
adb connect 127.0.0.1:16384
进入安卓shell环境(我电脑上有多个模拟器,就用了-s指定,可以直接adb shell):
adb -s 127.0.0.1:16384 shell
获取root权限
su
查看架构:
getprop ro.product.cpu.abi
去github下载对应版本frida-sever-android

然后打开你刚才下载的sever文件目录命令行,执行推送(不必须用adb push,用共享文件夹啥的也行,只要把文件放到目标路径就行)

adb -s 127.0.0.1:16384 push frida-server-17.15.3-android-x86_64 /data/local/tmp/

确认文件存在

ls /data/local/tmp

赋予执行权限

chmod 755 /data/local/tmp/frida-server-17.15.3-android-x86_64

验证启动sever

./data/local/tmp/frida-server-17.15.3-android-x86_64 &
回到电脑shell执行,验证:

//列出设备中的所有进程
frida-ps -U

到现在,frida环境已经配置好了,接下来就可以尝试学习使用JavaScript来编写frida脚本,应用到实战中。
下边附录,搞定LSPosed环境:
五、模拟器刷入Xposed
拿Xposed环境,目的是为了使用算法助手等工具
5.1刷入magisk
要刷入Xposed模块,需要LSPosed框架,需要依赖Zygisk
推荐使用magisk比较简单方便

用模拟器刷magisk和真机略有不同,下面有视频教程,推荐用狐狸面具刷magisk,简单一些。
直接下载安装狐狸面具,然后打开面具,退出,再打开。之后安装面具的时候,就可以看到:“直接安装(直接修改system)”这个选项,选这个选项就行。注意!!!模拟器里的设备设置---磁盘共享选项,一定要改为可写系统盘,不要用只读系统盘,否则将无法刷入。
刷入成功之后,右上角设置里,找到Zygisk选项并打开,这时候最好重启一下模拟器。

之后再打开面具,就会发现主页的Zygisk已经提示开启,这时候就可以尝试刷入LSPosed框架,下载LSPosed压缩包,通过共享文件夹或者是adb push传到模拟器里,在面具的模块哪里,选择刷入模块,选择下载好的LSPosed的zip文件刷入即可。
刷入之后打开模块开关,在LSPosed模块管理器中,激活算法助手模块,然后重启一下试试。

算法助手下载链接:算法助手Pro v1.0.9 安卓版
建议LSPosed下载1.9.2及以下版本的,但也不要太低,因为狐狸面具版本比较低,高版本的LSPosed可能刷入不进去。
狐狸面具链接(你也可以网上自己找):magisk狐狸面具下载安装-
视频教程链接:模拟器刷入面具教程

理论补充:
1.  frida是什么?
Frida 是一款跨平台的 动态二进制插桩(DBI) 工具,支持 Android、iOS、Windows、macOS、Linux 等系统,可以在不修改程序安装包 / 源码的前提下,向运行中的进程注入代码,实现函数 Hook、行为监控、逻辑篡改等。极大便于逆向分析。frida-tools已经提供了一系列开箱即用的命令,接下来就是要深入学习一些使用frida命令、简单adb shell命令,以及编写frida脚本、分析hook结果、还有安卓相关等等.....正式开启逆向之路,道阻且长。

2. 为什么用到adb?
adb全称Android Debug Bridge,安卓调试桥,是安卓官方留的工具,用它可以将电脑和安卓手机连接起来,用电脑指令操作手机,做一些调试功能,此外,adb的权限比较大,可以做一些手机用户原本做不到的操作,手机权限:root>adb>shizuku>用户
而frida就依赖于电脑adb和手机/模拟器通信,可以很便利的配置frida,注入js脚本等。(使用frida,得先进入adb shell,然后su....启动frida--server)

3.什么是root?
Android 系统底层基于 Linux 内核,类似电脑的 Linux/Windows ,系统有权限分级:
普通用户只能操作自己的文件、修改基础设置,无法触碰系统核心分区,获取 root 权限,就可以读写、修改系统所有分区和文件,做到很多以前做不到的事情。
要做逆向,手机root权限是要有的,很多时候只有有了root权限,才能使用一些更强大的工具,更加便利的分析逆向我们的目标。

4. 关于magisk
magisk是当前最主流的 Root 方案
在 Magisk 出现之前,主流 root 工具是 SuperSU,原理是直接修改系统分区(System 分区),写入 root 所需的二进制文件。这种方式的缺点很明显:容易被应用检测到 root、卸载还原麻烦、系统升级必掉 root。
Magisk 的创新,就是不直接修改系统分区:
它把 root 程序、所有系统修改都打包在 boot 分区的镜像里,系统启动时挂载一个虚拟的 “叠加层”。对系统本身来说,System 分区始终是完整、未改动的原始状态,所有修改都在虚拟层生效,这就是 Systemless 机制
magisk有四个主要功能:可视化 Root 权限管理、模块系统、Root 隐藏、Zygisk 注入框架(Xposed模块都基于Zygisk开发)
root知识很多,但不是frida讨论的主题,这里仅在列出几个关键词:Bootloader(BL 锁)、第三方 Recovery(如 TWRP)、LSPosed / Xposed、Google Play Integrity。
root还有其他方案,APatch,KernelSU、改版面具等。安卓安全和逆向也不断发展,早都进入了内核对抗的时代,各种混淆加固,环境检测,不是修一下smali就能一键vip了。
5. 安卓逆向入门

5.1 安卓应用
安卓应用的 Java/Kotlin 代码最终会编译为DEX 字节码,运行在专用虚拟机中


5.2 APK结构
APK 是安卓应用的安装包,本质是一个 ZIP 压缩包,解压后主要文件如下:
  • AndroidManifest.xml:清单文件,二进制格式,声明 APP 的包名、版本、权限、四大组件、入口 Activity 等核心信息。
  • classes.dex:Java/Kotlin 代码编译后的 Dalvik 字节码文件,是 Java 层逆向的核心分析对象;复杂 APP 会有 classes2.dex、classes3.dex 等分包。
  • res 目录:存放资源文件(布局、图片、字符串、动画等),会被系统编译优化。
  • lib 目录:存放不同架构的原生 SO 库(C/C++ 编译产物),对应 Native 层逆向的分析对象。
  • assets 目录:原生资源目录,文件不会被编译,可直接读取。
  • META-INF 目录:存放 APK 的签名信息,用于校验安装包完整性和合法性,篡改 APK 后必须重新签名才能安装.

5.3 基础知识
安卓逆向按照分析对象分为两层,入门从 Java 层入手,再逐步深入 Native 层(so层)。
(1)Java 层逆向
针对classes.dex中的字节码逻辑,分析 APP 的业务流程、界面逻辑、普通校验逻辑等。
  • 代码可读性高、工具成熟、便于入门入门;大部分应用的业务逻辑在 Java 层。
  • 反编译读源码、改 Smali 逻辑、Hook 函数参数 / 返回值。

(2)Native 层逆向
针对lib目录下的 SO 库(ELF 格式文件),分析 C/C++ 编写的原生代码。
  • 额,这个不好搞,加密算法、支付校验、防破解逻辑通常放在 Native 层,执行效率高、分析难度大。
  • 甚至得会 ARM 汇编、C/C++ , IDA 反汇编。

5.4 常用分析工具
静态:Apktool、jadx、jeb、ida pro/Ghidra
动态:LSPosed/Xposed、Charles / HttpCanary、Android Studio、Frida。
常见经验:Flutter 应用:存在 flutter_assets 目录,Java 层是空壳,逻辑是Dart写的。
Unity / Cocos 游戏应用:assets/ 下有大量游戏资源目录
加固、热修复、插件化:会出现相关目录,特征是 classes.dex 体积很小,真实代码被加密隐藏
安卓系统升级 / Jetpack 带来的新增目录:classes*.dm Dex 元数据文件,res/ 目录下的大量限定符子目录、kotlin目录
如果对你有帮助点个赞吧


这个人还没有签名
璇瑛 | 2026-6-25 11:46:53 | 显示全部楼层
关于电脑端frida和安卓端sever通信,frida已经自动帮我们做了端口转发
执行frida命令前后,可以使用指令“adb forward --list”查看端口转发
就会发现在执行frida后,多了一条"tcp:27042 tcp:27042"规则,这是frida自动帮我们做了端口转发
这个人还没有签名
logic | 2026-6-25 12:49:02 来自手机 | 显示全部楼层
666
这个人还没有签名
taptap | 2026-8-9 15:36:00 来自手机 | 显示全部楼层
论坛有你更精彩
这个人还没有签名
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文推荐
大神求
大神求
6 天前
热门排行