# Doldrums Flutter/Dart 快照解析器

> 用 Python 编写的解析器，处理 Android Flutter 应用中存放编译后 Dart 代码的 libapp.so 里的 Dart AOT 快照。它借助 pyelftools 定位 VM 与 isolate 快照符号，反序列化快照中的各个簇（cluster），并把 isolate 快照中的全部类导出为文本，列出字段、方法签名以及每个方法在 libapp.so 中的绝对代码偏移。它恢复的是声明和偏移，供进一步反汇编使用，并不反编译函数体。

- 类型：工具
- 目标：应用 · 二进制
- 类别：Android 工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/rscloura/Doldrums>
- 一手来源：<https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/doldrums/>
- 记录 JSON：<https://awesomerea.org/resources/doldrums/record.json>
- 英文版：[English](https://awesomerea.org/resources/doldrums/index.md)

## 使用条件与局限

- 审阅对象为 main 分支提交 7430196（2022-05-01），也是最后一次推送；仓库没有发行版，README 称该工具仍处于 beta 阶段，尚缺部分反序列化例程和类信息。main.py 只接受 Dart 2.10 和 Dart 2.12 的快照哈希，把 Dart 2.13 视为开发中而拒绝，其他 SDK 一律视为不支持，因此用更新的 Dart 版本构建的应用不在其适用范围内。
- 输入为 Android Flutter 应用的 libapp.so ELF 文件，其中须带有 _kDartVmSnapshot* 与 _kDartIsolateSnapshot* 符号。tests 目录提交了一个小型示例计数器应用（包名 sandbox_flutter）的 Dart 2.10 libapp.so 构建，涵盖 arm64-v8a、armv7 和 x64，并附有 arm64 与 x64 构建的文本导出作为参考输出；仓库没有测试运行脚本。
- 运行方式为 python3 src/main.py [-v] libapp.so output，唯一依赖是 pyelftools；项目没有打包，也未声明 Python 版本。README 说明 verbose 选项只适用于 Dart 2.12 快照，并指出 darter 是针对更早的 Dart 2.5 且经过完整测试的解析器。
- 作者的博客文章记录了该解析器所依据的快照格式。仓库没有许可证文件，GitHub 也未识别出许可证，因此复用条款未予说明。

## 一手来源

1. <https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/README.md>
2. <https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/src/main.py>
3. <https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/src/BaseConstants.py>
4. <https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/src/v2_12/Snapshot.py>
5. <https://github.com/rscloura/Doldrums/blob/7430196818673ca5c5e10d65685e2b4a8de38dbb/src/v2_12/Resolver.py>
6. <https://github.com/rscloura/Doldrums/tree/7430196818673ca5c5e10d65685e2b4a8de38dbb/tests>
7. <https://rloura.wordpress.com/2020/12/04/reversing-flutter-for-android-wip/>

## 同分区更多条目：应用

- [Frida UI 浏览器端 Frida 操作界面](https://awesomerea.org/zh/resources/frida-ui/index.md) · 工具
- [darter Dart 快照解析器](https://awesomerea.org/zh/resources/darter/index.md) · 工具
- [Appshark Android 静态污点分析引擎](https://awesomerea.org/zh/resources/appshark/index.md) · 工具
- [Wallbreaker Java 堆查看工具](https://awesomerea.org/zh/resources/wallbreaker/index.md) · 工具
- [axmlprinter Android 二进制 XML 解析器](https://awesomerea.org/zh/resources/axmlprinter/index.md) · 工具
- [FlowDroid Android 静态污点分析工具](https://awesomerea.org/zh/resources/flowdroid/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
