立即注册,突破游客限制,与技术大牛交流切磋,畅享海量资源,让你的技术之路不再孤单!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 璇瑛 于 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模块管理器中,激活算法助手模块,然后重启一下试试。
建议LSPosed下载1.9.2及以下版本的,但也不要太低,因为狐狸面具版本比较低,高版本的LSPosed可能刷入不进去。
理论补充:
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. 关于magiskmagisk是当前最主流的 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 的业务流程、界面逻辑、普通校验逻辑等。 (2)Native 层逆向针对lib目录下的 SO 库(ELF 格式文件),分析 C/C++ 编写的原生代码。 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目录 如果对你有帮助点个赞吧
|