reFlutter:终极Flutter逆向工程框架,让动态分析变得前所未有的简单
reFlutter作为一款强大的Flutter逆向工程框架,通过提供已编译好的补丁版Flutter库,帮助开发者轻松对Flutter应用进行动态分析,让原本复杂的逆向过程变得简单高效。## 🚀 核心功能亮点reFlutter凭借多项实用功能,成为Flutter逆向领域的得力工具:- **流量监控与拦截**:`socket.cc`经过特殊补丁处理,能够有效监控和拦截应用流量,为分析网络
reFlutter:终极Flutter逆向工程框架,让动态分析变得前所未有的简单
reFlutter作为一款强大的Flutter逆向工程框架,通过提供已编译好的补丁版Flutter库,帮助开发者轻松对Flutter应用进行动态分析,让原本复杂的逆向过程变得简单高效。
🚀 核心功能亮点
reFlutter凭借多项实用功能,成为Flutter逆向领域的得力工具:
- 流量监控与拦截:
socket.cc经过特殊补丁处理,能够有效监控和拦截应用流量,为分析网络通信提供便利。 - 代码信息打印:修改后的
dart.cc可打印类、函数及部分字段信息,助力开发者深入了解应用内部结构。 - 便捷编译支持:包含必要的微小改动,确保框架能成功编译,降低使用门槛。
- 自定义补丁实现:支持通过特制的
Dockerfile手动修改Flutter代码,满足个性化逆向需求。
💻 支持的引擎版本
reFlutter广泛支持多种引擎版本,覆盖主流移动平台:
- Android:arm64、arm32架构
- iOS:arm64架构
- 发布渠道:Stable、Beta版本
🔧 快速安装步骤
无论你使用Linux、Windows还是MacOS系统,只需一行命令即可完成安装:
pip3 install reflutter
📝 简单易用的操作方法
Android应用处理
在终端中输入以下命令,按照提示输入Burp Suite的IP地址,即可生成处理后的APK文件:
impact@f:~$ reflutter main.apk
Please enter your Burp Suite IP: <input_ip>
SnapshotHash: 8ee4ef7a67df9845fba331734198a953
The resulting apk file: ./release.RE.apk
Please sign the apk file
Configure Burp Suite proxy server to listen on *:8083
Proxy Tab -> Options -> Proxy Listeners -> Edit -> Binding Tab
Then enable invisible proxying in Request Handling Tab
Support Invisible Proxying -> true
生成的APK文件需要进行对齐和签名操作,推荐使用uber-apk-signer工具:
java -jar uber-apk-signer.jar --allowResign -a release.RE.apk
要查看通过DartVM加载的代码,需在设备上运行应用。reFlutter会将转储文件写入应用的根文件夹,并设置777权限。可通过以下adb命令获取文件:
impact@f:~$ adb -d shell "cat /data/data/<PACKAGE_NAME>/dump.dart" > dump.dart
iOS应用处理
执行以下命令处理IPA文件:
impact@f:~$ reflutter main.ipa
在iOS设备上运行应用后,reFlutter会在XCode的控制台日志中以reflutter标签输出相关信息。
🌐 流量拦截配置指南
进行流量拦截需指定与安装Flutter应用的设备处于同一网络的Burp Suite代理服务器IP,然后在BurpSuite -> Listener Proxy -> Options标签页进行如下配置:
- 添加端口:
8083 - 绑定地址:
All interfaces - 请求处理:勾选
Support invisible proxying选项
使用reFlutter无需安装任何证书,在Android设备上也无需root权限,还能绕过部分Flutter证书固定实现。
🛠️ 自定义构建选项
若需实现自己的补丁,可使用特制的Docker镜像手动修改Flutter代码:
sudo docker pull ptswarm/reflutter
以构建Android ARM64引擎为例:
# Linux, Windows
EXAMPLE BUILD ANDROID ARM64:
sudo docker run -e WAIT=300 -e x64=0 -e arm=0 -e HASH_PATCH=<Snapshot_Hash> -e COMMIT=<Engine_commit> --rm -iv${PWD}:/t ptswarm/reflutter
其中常用的FLAGS参数说明:
-e x64=0:禁用x64架构构建,减少构建时间-e arm=0:禁用arm架构构建,减少构建时间-e WAIT=300:编辑源代码的时间(秒)-e HASH_PATCH=[Snapshot_Hash]:指定与engine_commit匹配的快照哈希-e COMMIT=[Engine_commit]:指定引擎版本的提交,可从enginehash.csv表或flutter/engine仓库获取
📊 支持的Flutter版本参考
enginehash.csv文件中记录了各Flutter版本对应的Engine_commit和Snapshot_Hash,部分版本如下:
- 2.17.0-182.2.beta:Engine_commit为486f4a749e532b865d5d24990d865f7d902b8fb3,Snapshot_Hash为a0cb0c928b23bc17a26e062b351dc44d
- 2.5.0:Engine_commit为f0826da7ef2d301eb8f4ead91aaf026aa2b52881,Snapshot_Hash为9cf77f4405212c45daf608e1cd646852
- 1.22.6:Engine_commit为2f0af3715217a0c2ada72c717d4ed9178d68f6ed,Snapshot_Hash为8ee4ef7a67df9845fba331734198a953
🔍 获取项目源码
要获取reFlutter项目源码,可通过以下命令克隆仓库:
git clone https://gitcode.com/gh_mirrors/ref/reFlutter
reFlutter框架持续改进,致力于为Flutter逆向工程提供更优质的支持,让动态分析工作变得前所未有的简单。无论你是新手还是有经验的开发者,都能快速上手并高效完成Flutter应用的逆向分析任务。
更多推荐
所有评论(0)