re-flutter
Installation
SKILL.md
Flutter / Dart AOT 逆向(快照解析 / 符号还原 / VM 动态分析)
何时使用 / 何时不用
- 用:Android 包内发现
lib/<abi>/libapp.so(Dart AOT 快照)与libflutter.so(引擎)——业务逻辑在 libapp.so - 用:iOS 的
App.framework/App(AOT 快照嵌入 Mach-O,Flutter.framework为引擎) - 用:debug 构建的
assets/flutter_assets/kernel_blob.bin(Dart kernel 二进制,含类/函数名与 AST) - 用:需要还原 Flutter App 的 Dart 业务逻辑(网络接口、签名/加密算法、协议、MethodChannel 通道)
- 不用:纯原生 Android App(无 libapp.so / kernel_blob,走 [[re-apk]])
- 不用:纯原生 iOS App(无 App.framework,走 [[re-ios]])
- 不用:Flutter Web(产物是 JS/WASM 而非快照,走 [[re-wasm]])
- 不用:引擎层本身(libflutter.so / Flutter.framework 内部逻辑,见步骤 4)
- 注意:动态步骤在受控设备 / 模拟器快照内执行([[re-analyze/platform-tips]] 最高原则);静态优先(大型样本原则)
工具准备
参考 [[re-analyze/platform-tips]]——Flutter 产物大(libapp.so 数十 MB 起),遵循「静态优先(大型样本)」:先静态定位、动态按需补充;动态(运行 / 重打包 App)默认在受控设备 / 模拟器快照内。