告别证书锁定:使用reFlutter轻松实现Flutter应用流量拦截与动态分析

admin 2026-03-03 04:18:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: reFlutter是一个用于Flutter应用逆向分析的框架,核心功能包括流量拦截、代码信息提取及绕过SSL证书锁定。文档详述了工具安装、APK与IPA处理流程、BurpSuite代理配置及Dump文件提取方法。重点提及Flutter3.24.0及以上版本需手动配置设备代理,并介绍了应用签名与自定义引擎构建步骤。内容实战性强,为移动安全测试提供了有效指导,同时强调了法律合规性与版本兼容性注意事项。 综合评分: 90 文章分类: 逆向分析,移动安全,安全工具,渗透测试


cover_image

告别证书锁定:使用reFlutter轻松实现Flutter应用流量拦截与动态分析

柠檬赏金猎人

2026年2月27日 10:00 广东

概述

reFlutter 是一个功能强大的Flutter应用逆向工程框架。它通过使用预先编译并修改过的Flutter库,帮助安全研究人员和开发者对Flutter应用进行逆向分析。该框架的核心是修改了Flutter库的快照反序列化过程,并集成了流量监控、类与方法信息打印等功能,为动态分析提供了极大的便利。

技术/功能

reFlutter 框架具备以下关键特性:

  • 流量拦截与监控:通过修改socket.cc文件,实现对应用网络流量的监控和拦截,便于分析API调用。
  • 代码信息提取:修改dart.cc文件,能够在应用运行时打印出Dart类、函数以及部分字段的信息,并显示函数的绝对代码偏移量。
  • 绕过证书锁定:能够帮助绕过某些Flutter应用的SSL证书锁定实现,方便进行中间人攻击测试。
  • 快照哈希支持:支持通过快照哈希匹配对应的Flutter引擎版本,确保补丁兼容性。
  • 多平台与引擎支持
  • 平台:Android (arm64, arm32), iOS (arm64)
  • 发布渠道:Stable, Beta
  • 自定义构建:提供Dockerfile,支持用户手动修改Flutter源码并构建自定义的补丁引擎。

使用示例

1. 安装

reFlutter可以通过pip直接安装:

pip3 install reflutter==0.8.6

2. 基本使用

对APK或IPA文件进行处理:

# 处理Android APK
impact@f:~$ reflutter main.apk
Please enter your Burp Suite IP: 192.168.1.100
SnapshotHash: 8ee4ef7a67df9845fba331734198a953
The resulting apk file: ./release.RE.apk
Please sign the apk file

# 处理iOS IPA
impact@f:~$ reflutter main.ipa

3. 流量拦截配置(以Burp Suite为例)

  1. 在Burp Suite中配置代理监听器:
  • 端口:8083
  • 绑定地址:所有接口
  • 请求处理:支持不可见代理 = True
  1. 对于Flutter 3.24.0及以上版本:由于硬编码代理IP已被移除,需要在设备上直接配置代理。
  • Android:使用ADB命令 adb -s <device> shell "settings put global http_proxy <proxy_ip:port>"
  • iOS:需要在设备上使用如Potatso等工具配置代理。

4. 应用签名与安装(Android)

处理后的APK需要签名和对齐。推荐使用uber-apk-signer

java&nbsp;-jar&nbsp;uber-apk-signer.jar&nbsp;--allowResign&nbsp;-a&nbsp;release.RE.apk

然后安装并运行签名后的APK。

5. 提取Dump信息

应用运行后,逆向出的Dart代码信息会被写入一个dump文件。

  • Android:文件位于 /data/data/<应用包名>/dump.dart。使用ADB拉取:
  adb&nbsp;-d&nbsp;shell&nbsp;"cat&nbsp;/data/data/com.example.app/dump.dart"&nbsp;>&nbsp;dump.dart
  • iOS:文件路径会打印在Xcode控制台日志中,格式类似 /private/var/mobile/Containers/Data/Application/<UUID>/dump.dart,需要从设备中提取。

dump文件内容示例:

Library:'package:anyapp/navigation/DeepLinkImpl.dart'
Class:&nbsp;Navigation&nbsp;extends&nbsp;Object&nbsp;{
&nbsp;&nbsp;String*&nbsp;DeepUrl&nbsp;=&nbsp;anyapp://evil.com/&nbsp;;
&nbsp;&nbsp;...
}

6. 自定义引擎构建

如果需要修改Flutter源码或构建特定引擎,可以使用Docker进行自定义构建:

git&nbsp;clone&nbsp;https://github.com/Impact-I/reFlutter&nbsp;&&&nbsp;cd&nbsp;reFlutter
docker&nbsp;build&nbsp;-t&nbsp;reflutter&nbsp;-f&nbsp;Dockerfile&nbsp;.

运行构建容器(示例为构建Android arm64):

docker&nbsp;run&nbsp;-it&nbsp;-v&nbsp;"$(pwd):/t"&nbsp;-e&nbsp;HASH_PATCH=aa64af18e7d086041ac127cc4bc50c5e&nbsp;-e&nbsp;COMMIT=d44b5a94c976fbb65815374f61ab5392a220b084&nbsp;reflutter

可以通过环境变量控制构建目标:

  • -e x64=0: 禁用x64构建
  • -e arm64=0: 禁用arm64构建
  • -e arm=0: 禁用arm32构建
  • -e WAIT=300: 设置构建前等待修改源码的时间(秒)

注意事项

  1. 法律与道德:仅将reFlutter用于授权范围内的安全测试、个人学习或研究。未经授权对他人应用进行逆向分析可能违法。
  2. Flutter 3.24.0+ 代理配置:对于较新的Flutter版本,框架不再硬编码代理设置,必须在测试设备上手动配置系统或应用级代理。
  3. 应用签名:处理后的APK文件必须重新签名才能在Android设备上安装运行。
  4. 引擎兼容性:确保使用的补丁引擎快照哈希(SnapshotHash)与目标应用使用的Flutter引擎版本匹配,否则可能导致应用无法运行。
  5. Root/越狱:Android上进行流量拦截通常不需要Root权限,但文件提取可能需要。iOS操作通常需要越狱设备。
  6. 依赖环境:自定义构建需要完整的Docker环境以及对Flutter引擎编译有一定了解。

参考链接

  • https://github.com/Impact-I/reFlutter
  • https://swarm.ptsecurity.com/fork-bomb-for-flutter/
  • https://github.com/patrickfav/uber-apk-signer

仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:柠檬赏金猎人 《告别证书锁定:使用reFlutter轻松实现Flutter应用流量拦截与动态分析》

评论:0   参与:  0