win 平台 Flutter 程序逆向分析(flutter)

发布于 1周前 作者 yibo5220 来自 Flutter

想学习 windows 平台下 flutter 程序逆向分析方法,毫无头绪,全网搜遍发现这方面资料寥寥,偶有几页也全是 Android/ios 平台的 app 分析,竟未发现任何关于 windows 平台下逆向参考,特求助见多识广 V 友

已知 windows 平台下 flutter 打包后在 data 目录生成一个 app.so 文件,但用 IDA 加载发现任何函数名都无法识别,任何字符串都没有交叉引用,分析毫无头绪

求这方面的博文/分析资料/书籍等学习


win 平台 Flutter 程序逆向分析(flutter)

更多关于win 平台 Flutter 程序逆向分析(flutter)的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

7 回复

别想了,flutter 就是一个天然 VMP, 至今无解

更多关于win 平台 Flutter 程序逆向分析(flutter)的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


现在很多新应用使用 Flutter 来实现,就是因为它不好逆向

app.so 是给 Linux/Android 平台用的,你虽然在 Windows 上开发,打包命令如果是 flutter build apk ,打包的还是 Android 代码啊……

flutter build windows 的产物是 app.dll ,你先确认下

我这里看 windows 下的还是 libapp.so



具体也搞不太清楚 不过示例程序可参考 https://reqable.com/zh-CN/download
windows 下显示对应的确是 app.so

https://api.reqable.com/download?platform=windows&arch=x86_64&ext=zip&locale=zh

data 下面确实有 app.so ,文件格式确实是 ELF ,但这个不是核心文件

$ file ~/Downloads/reqable-app-windows-x86_64/data/app.so
/Users/wangkun/Downloads/reqable-app-windows-x86_64/data/app.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[md5/uuid]=5f893ee75990483bea0f84e34d3e1f8b, stripped

————

核心文件都是解压根目录的 PE 文件( exe/dll ),主要是是 Reqable.exe 和 flutter_windows.dll

其他都是一些插件编译出来的
- url_launcher_windows_plugin.dll: https://pub.dev/packages/url_launcher_windows
- window_size_plugin.dll: https://github.com/google/flutter-desktop-embedding/tree/main/plugins/window_size

有几个都是 LeanFlutter 的库,比如 auto_updater 、tray_manager

————

PS:reqable 的作者都在 LeanFlutter 的群里,加我微信 wk2311007 ,我拉你吧

针对Win平台Flutter程序的逆向分析,以下是一些专业建议:

Flutter是Google推出的移动应用开发框架,使用Dart语言编写,能够构建高性能、高保真的iOS和Android应用程序。由于Flutter应用的代码经过编译和混淆,直接逆向分析存在一定难度。

首先,确认目标应用是否为Flutter开发。这可以通过解压APK文件(在Windows平台上可能需要借助工具将APK转为ZIP格式),并检查lib目录中是否存在libflutter.so文件来判断。

其次,进行逆向分析时,可以考虑以下方法:

  • 使用专用工具:如Darter、Doldrums等,这些工具可以转储Flutter应用的类名和方法名,有助于理解应用的结构和行为。但需注意,这些工具可能只支持特定版本的Flutter快照。
  • 重新编译Flutter引擎:通过下载并改造目标Flutter引擎版本,用于打印类名、方法等信息。此方法较为复杂,需要一定的C++和Dart编程基础。
  • 借助Reflutter库:Reflutter是一个强大的Flutter反射库,可以在运行时动态分析和修改Flutter应用。基于Reflutter,可以开发简易化的Dart解析工具,如Flutter逆向助手,以辅助逆向分析。

最后,逆向分析应遵守法律法规和道德规范,不得用于非法用途。同时,逆向分析是一项技术挑战,需要不断学习和实践以提高技能水平。

回到顶部