Flutter 逆向工程框架

reFlutter

reFlutter是一款功能强大的逆向工程分析工具,该工具主要针对的是Flutter应用程序。该框架使用了已编译且重新封装的Flutter库来帮助广大研究人员对Flutter应用程序进行逆向工程分析。

除此之外,reFlutter框架的代码还修改了快照反序列化进程,以方便研究人员对目标应用程序执行动态分析。

主要特征

  1. socket.cc可执行流量拦截和监控;
  2. dart.cc支持输出类、函数和某些字段;
  3. 方便进行自定义修改或重编译;
  4. 支持使用专门的Dockerfile对项目代码进行手动修改;

支持的引擎

  • Android:ARM64、ARM32;
  • iOS:ARM64;
  • 发布版本:稳定版(Stable)、测试版(Beta);

工具安装

适用于Linux、Windows和macOS:

reFlutter使用

流量拦截

我们需要制定Burp Suite代理服务器的IP地址,且需要跟运行了目标Flutter应用程序的设备处于同一网络总。接下来,我们还需要配置代理(BurpSuite -> Listener Proxy -> Options tab):

  1. 添加端口:8083;
  2. 绑定地址:所有接口;
  3. 请求处理:支持隐形代理 = True
Flutter 逆向工程框架

我们不需要安装任何的证书,在Android设备上我们也不需要root权限。除此之外,reFlutter还允许我们绕过某些Flutter证书绑定实现。

Android端使用

生成的apk必须对齐并签名,这里我们可以使用uber-apk-signer和下列命令:

如果你想使用DartVM来查看哪些代码被加载了,你还需要在设备上运行应用程序,reFlutter会通过logcat和“reflutter”选项来输出结果:

代码输出结果如下:

iOS端使用

执行“reflutter main.ipa”命令之后,我们将拿到IPA文件。如果你想使用DartVM来查看哪些代码被加载了,你还需要在设备上运行应用程序,reFlutter会通过XCode和“reflutter”选项来输出结果:

Flutter 逆向工程框架

更多帮助及说明:https://github.com/ptswarm/reFlutter