Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
reFlutter — Flutter 逆向工程框架 | Kitploit
工具/GitHubGitHub/ptswarm/reflutter
Android安全数据包嗅探与分析动态分析 (沙盒)iOS安全逆向工程移动安全二进制分析Archived
GitHubptswarm/reflutter

reFlutter

Flutter 逆向工程框架

查看仓库
1.5k188214年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Twitter

stars workflow

此框架通过使用已编译并准备好进行应用重打包的 Flutter 库的补丁版本,帮助进行 Flutter 应用逆向工程。该库的快照反序列化过程已修改,允许你以方便的方式执行动态分析。

关键特性:

  • socket.cc 已打补丁用于流量监控和拦截;
  • dart.cc 已修改以打印类、函数和一些字段;
  • 包含一些微小更改以成功编译;
  • 如果你想实现自己的补丁,支持通过专门制作的 Dockerfile 手动更改 Flutter 代码。

支持的引擎

  • Android: arm64, arm32;
  • iOS: arm64;
  • Release: Stable, Beta

安装

# Linux, Windows, MacOS
pip3 install reflutter

用法

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

impact@f:~$ reflutter main.ipa

流量拦截

你需要指定与带有 Flutter 应用的设备位于同一网络的 Burp Suite 代理服务器的 IP 地址。接下来,你应在 BurpSuite -> Listener Proxy -> Options 选项卡中配置代理。

  • 添加端口:8083
  • 绑定地址:All interfaces
  • 请求处理:支持不可见代理 = True

你无需安装任何证书。在 Android 设备上,也无需 root 权限。reFlutter 还允许绕过部分 Flutter 证书固定实现。

在 Android 上使用

生成的 apk 必须对齐并签名。我使用 uber-apk-signer java -jar uber-apk-signer.jar --allowResign -a release.RE.apk. 要查看通过 DartVM 加载了哪些代码,你需要在设备上运行应用。注意:你必须使用二分搜索手动查找 _kDartIsolateSnapshotInstructions(例如 0xB000)的值。reFlutter 将转储写入应用的根文件夹,并将文件及文件夹设置为 777 权限。你可以通过 adb 命令拉取文件:

impact@f:~$ adb -d shell "cat /data/data/<PACKAGE_NAME>/dump.dart" > dump.dart
文件内容
Library:'package:anyapp/navigation/DeepLinkImpl.dart' Class: Navigation extends Object {  

String* DeepUrl = anyapp://evil.com/ ;

 Function 'Navigation.': constructor. (dynamic, dynamic, dynamic, dynamic) => NavigationInteractor { 
  
              Code Offset: _kDartIsolateSnapshotInstructions + 0x0000000000009270
  
                   }
    
 Function 'initDeepLinkHandle':. (dynamic) => Future<void>* { 
  
              Code Offset: _kDartIsolateSnapshotInstructions + 0x0000000000412fe8
  
                   }
    
 Function '_navigateDeepLink@547106886':. (dynamic, dynamic, {dynamic navigator}) => void { 
  
              Code Offset: _kDartIsolateSnapshotInstructions + 0x0000000000002638
  
                   }
 
       }
 
Library:'package:anyapp/auth/navigation/AuthAccount.dart' Class: AuthAccount extends Account {

PlainNotificationToken* _instance = sentinel;
 
 Function 'getAuthToken':. (dynamic, dynamic, dynamic, dynamic) => Future<AccessToken*>* { 
  
               Code Offset: _kDartIsolateSnapshotInstructions + 0x00000000003ee548
  
                   }
  
 Function 'checkEmail':. (dynamic, dynamic) => Future<bool*>* { 
  
               Code Offset: _kDartIsolateSnapshotInstructions + 0x0000000000448a08
   
                   }

 Function 'validateRestoreCode':. (dynamic, dynamic, dynamic) => Future<bool*>* { 
  
               Code Offset: _kDartIsolateSnapshotInstructions + 0x0000000000412c34
   
                   }

 Function 'sendSmsRestorePassword':. (dynamic, dynamic) => Future<bool*>* { 
  
               Code Offset: _kDartIsolateSnapshotInstructions + 0x00000000003efb88
  
                   }
       }

在 iOS 上使用

使用执行 reflutter main.ipa 命令后创建的 IPA 文件。要查看通过 DartVM 加载了哪些代码,你需要在设备上运行应用。reFlutter 在 XCode 的控制台日志中以其输出,标签为 reflutter。

待办事项

  • 显示函数的绝对代码偏移量;
  • 提取更多字符串和字段;
  • 添加 socket 补丁;
  • 通过 Fork 和 Github Actions 将引擎支持扩展到 Debug;
  • 改进对 zip 存档内 App.framework 和 libapp.so 的检测

构建引擎

引擎通过 reFlutter 在 Github Actions 中构建,所需版本、提交和快照哈希使用此表格中的内容。 快照的哈希从 storage.googleapis.com/flutter_infra_release/flutter/<hash>/android-arm64-release/linux-x64.zip 中提取。

发布

gif

自定义构建

如果你想实现自己的补丁,支持使用特制的 Docker 手动更改 Flutter 代码。

sudo docker pull ptswarm/reflutter

# 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                         <disables building for x64 archiitechture, use to reduce building time>
    -e arm=0                         <disables building for arm archiitechture, use to reduce building time>
    -e WAIT=300                      <the amount of time in seconds you need to edit source code>
    -e HASH_PATCH=[Snapshot_Hash]    <here you need to specify snapshot hash which matches the engine_commit line of enginehash.csv table best. It is used for proper patch search in reFlutter and for successfull compilation>
    -e COMMIT=[Engine_commit]        <here you specify commit for your engine version, take it from enginehash.csv table or from flutter/engine repo>
下载工具