文章总结: 本文档深入解析Flutter应用逆向分析的核心方法,重点介绍了动态工具reFlutter(重打包Dump元数据与注入代理)与静态工具Blutter(解析libapp.so反编译)。文章梳理了FridaHookBoringSSL解决抓包难题的方案,并提供了结合IDA与Frida的通用分析流程。建议根据分析目标互补使用reFlutter与Blutter,以兼顾网络抓包与深层逻辑分析。 综合评分: 86 文章分类: 逆向分析,移动安全,安全工具
Fultter逆向分析方法
原创
云天实验室 云天实验室
哆啦安全
2026年2月2日 12:11 四川
智能分析产品(28款神器)
Android逆向技能树(2026版)
鸿蒙HarmonyOS应用逆向技能树(2026版)
Flutter应用的逆向分析通常从解析编译后的Dart代码和拦截网络流量入手,并依赖专门的工具。以下是核心方法、工具和操作流程的梳理:
主流的Flutter逆向分析工具,并按动态/静态分析、抓包Hook、综合套件进行了分类
🛠️ 核心分析工具
这是逆向工作的主力,分为动态和静态两大流派:
-
reFlutter
-
类别: 动态分析
-
主要功能: 通过重打包并修改Flutter运行时(
libapp.so),在App运行时Dump出函数名、偏移地址等元数据(生成dump.dart),并自动注入代理设置以方便抓包-。 -
特点与局限: 动态获取信息,维护成本相对较低,能绕过抓包难题。但需要重打包应用,可能触发签名或root检测。对新版本的官方支持可能有延迟。
https://github.com/Impact-I/reFlutter
-
Blutter
-
类别: 静态分析
-
主要功能: 直接静态解析
libapp.so文件,反编译出带符号的汇编代码,并生成用于Hook的Frida脚本和对象池信息文件(pp.txt,objs.txt)。 -
特点与局限: 无需运行应用,适合深入分析代码逻辑。但分析门槛较高,输出为汇编代码,且不直接处理网络抓包。
-
JEB(商业软件)
-
类别: 静态分析 (GUI工具)
-
主要功能: 其Dart AOT快照解析插件可以直接加载
libapp.so,解析出函数、类等信息,并提供一定的反编译视图。 -
特点与局限: 图形化界面,对特定版本范围(如Dart 2.10到2.17)支持较好。但作为商业软件需购买,且版本更新可能滞后于Dart SDK的快速迭代。
-
Doldrums
-
类别: 静态分析
-
主要功能: 一个开源的Dart快照分析器,用于从快照中提取信息。
-
特点与局限: 已基本停止维护,仅支持非常旧的Flutter版本(如2.10, 2.12),目前实用性很低。
#
🔌 抓包与Hook辅助工具
这类工具专门解决Flutter应用独特的网络抓包和运行时Hook难题。
-
Frida脚本 (BoringSSL Hook)
-
类别: 动态Hook
-
主要功能: 由于Flutter使用BoringSSL进行证书校验,不走系统代理,需要编写或使用现成的Frida脚本Hook
libflutter.so中的证书验证函数(如ssl_crypto_x509_session_verify_cert_chain),强制返回true以绕过校验。 -
特点: 是配合代理抓包的关键步骤,无论是否使用reFlutter都可能需要。
-
flutter逆向助手
-
类别: 动态分析/辅助工具
-
主要功能: 一个基于reFlutter思路优化的工具,旨在简化使用流程(如免重打包,通过替换so文件实现)。
-
特点与局限: 同样依赖快照哈希(Snapshot_Hash)识别版本,若哈希被抹除则无法使用。
📦 综合套件
这是一些集成了多种逆向功能(包括Flutter分析)的工具箱。
-
RevEngi App
-
类别: 综合逆向工具箱
-
主要功能: 一个集成了Smali语法参考、DEX修复、Flutter分析(包含Blutter)、JNI分析等多种功能的客户端应用。
-
特点: 提供了图形化界面,方便移动端或桌面端使用,适合需要多方位逆向的场景。
💡 如何选择工具?
你可以根据分析目标,参考以下建议:
- 目标是抓包和快速了解应用结构:
- 首选 reFlutter,它提供了从Dump信息到设置代理的一站式解决方案。
- 遇到证书校验时,配合 Frida脚本 进行Hook。
- 目标是深入分析核心算法或业务逻辑:
- 首选 Blutter,它能提供带符号的反汇编代码,更利于静态分析。
- 使用 IDA Pro 或 Ghidra 加载分析Blutter输出的结果。
- 希望使用图形化工具:
- 可以考虑 JEB(商业)或 RevEngi App(免费),它们提供了更友好的操作界面。
- 一个典型的结合使用流程:
- 用 reFlutter 获取函数偏移并解决抓包问题。
- 用 Blutter 对关键函数进行更深入的静态反汇编分析。
- 使用 Frida 根据两者提供的信息,对关键函数进行动态Hook和调试验证
🛠️ 主要工具与核心方法
目前主流工具是 reFlutter 和 Blutter,它们原理不同,适用场景互补。
1. reFlutter:运行时分析
- 原理与特点:通过重打包APK,在运行时
libapp.so中注入代码,实现函数信息Dump和代理设置。属于动态分析。 - 主要功能:生成函数信息文件 (
dump.dart);注入代理,便于HTTPS抓包。 - 适用场景:适合需要拦截并分析网络请求,或快速获取函数映射关系的场景。
- 局限:需修改并重签名应用,可能触发加固或签名校验。
2. Blutter:静态分析
- 原理与特点:直接静态解析
libapp.so文件,无需运行应用。属于静态分析。 - 主要功能:反编译出带符号的汇编代码;生成用于Hook的Frida脚本;导出Dart对象池信息。
- 适用场景:适合深入分析应用逻辑、算法,或在无法运行应用时使用。
- 局限:输出为汇编代码,分析门槛较高;不直接处理抓包。
简单来说:想抓包或快速探测,选reFlutter;想深入分析代码逻辑,选Blutter。两者也常结合使用。
📡 解决HTTPS抓包难题
Flutter应用默认不走系统代理且有独立证书校验,抓包常用两种方法:
- 使用reFlutter:重打包时已注入代理,安装修改后的APK即可直接抓包。
- Frida Hook证书校验:找到
libflutter.so中BoringSSL的证书验证函数(如ssl_crypto_x509_session_verify_cert_chain),用Frida Hook并强制其返回true。这种方法无需重打包。
🔬 逆向分析通用流程
一个典型的分析流程会结合多种工具:
- 获取代码信息:
- 使用reFlutter生成包含函数偏移地址的
dump.dart文件。 - 或使用Blutter反编译出带符号的汇编代码文件。
- 静态分析定位:用IDA Pro等工具加载libapp.so。结合
dump.dart中的偏移地址或Blutter生成的符号,定位关键函数。 - 动态调试验证:使用 Frida 执行Blutter生成的脚本或自定义脚本,Hook关键函数,监视参数和返回值,验证分析。
- 网络流量分析:按上述方法配置抓包环境,拦截和分析网络请求。
💡 分析与操作建议
- 从简单应用开始:先用开源Flutter应用练习整套流程。
- 注意版本兼容性:工具可能依赖特定的Flutter引擎或Dart版本。
- 结合使用效果更佳:用reFlutter快速抓包和Dump,用Blutter进行深入的静态分析。
- 利用好输出文件:Blutter生成的
pp.txt和objs.txt能帮你定位字符串、匿名函数等对象的具体内容。
Android开发智能调试分析软件V7.5
链接: https://pan.baidu.com/s/1cSibTh8nDMwsEvJ59Oblvg 提取码: rx32
使用方法
先注册、再输入密码cd_admin_001&2025_001,点击登录!
APP逆向分析工具V4.5
APK安全加固平台V5.2
智能分析产品(28款神器)
Python逆向分析工具V2.5
Unity手游无Root注入工具
Android病毒分析工具V3.2
Android智能取证系统V1.1.8
Android智能调试分析工具V7.5
Python字节码反编译工具(逆向分析)
Python字节码反编译逆向分析(高级篇)
Android Apk逆向分析工具(jadx-ai-mcp)
逆向交流群|Android智能调试工具(下载地址)
Smali/AAR/JAR/DEX/APK逆向分析转换工具V2.5
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:哆啦安全 云天实验室 云天实验室《Fultter逆向分析方法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论