ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【安卓逆向】为什么用Frida?

【安卓逆向】为什么用Frida? 在 Android 逆向分析中JADX 和 Frida 通常是配合使用的。静态分析阶段主要使用JADX通过反编译 APK 查看 Java / Kotlin 代码搜索关键类、方法、字符串以及加密、网络通信等相关逻辑。而当我们需要进一步观察程序在运行时的真实行为时就可以使用Frida。例如实时查看函数参数和返回值、分析加密过程、定位关键数据以及在授权的测试环境中验证检测逻辑等。一个比较常见的分析流程如下APK ↓ JADX 静态分析 ↓ 搜索关键代码 ↓ 确定目标方法 / Native 调用点 ↓ 编写 Frida Hook ↓ 启动 APP ↓ 动态观察运行过程例如使用 JADX 分析 APK 时可以重点搜索类名 / 方法名 字符串 加密算法 Cipher MessageDigest OkHttp Retrofit System.loadLibrary() JNI假设我们找到com.example.crypto.Crypto.encrypt()或者发现程序通过System.loadLibrary(native);加载了 Native 库那么下一步就可以结合 Frida 对这些关键位置进行动态分析观察实际运行过程中传入的参数、返回值以及调用时机。这也是为什么实际逆向工作中静态分析和动态分析很少完全分开。JADX 更适合回答“这段代码大概是怎么实现的”Frida 更适合回答“这个方法运行的时候到底传了什么返回了什么实际执行到了哪里”什么是 FridaFrida 是一个动态插桩Dynamic Instrumentation框架。它能够在目标程序运行期间将自己的脚本注入目标进程并对其中的 Java 方法、Native 函数以及部分系统调用进行观察和干预。简单理解就是程序运行 ↓ Frida 注入 ↓ Hook 目标函数 ↓ 观察 / 修改执行过程通过 Frida我们可以在运行时获取函数参数、返回值、调用时机等信息也可以在授权的测试场景下修改指定函数的执行结果从而验证自己的分析结论。Frida 支持多个平台包括Android iOS Windows macOS Linux它最大的特点并不是“替你分析 APK”而是提供了一套非常灵活的运行时分析能力。因此在 Android 逆向中可以把两者简单理解为JADX 静态分析 看代码、找逻辑、定位目标 Frida 动态分析 看运行过程、验证逻辑、观察真实数据实际项目中通常就是先用 JADX找到目标再用 Frida验证目标。
返回列表