Tool
Doldrums
Python parser for the Dart AOT snapshots inside libapp.so, the compiled Dart code of an Android Flutter app. It finds the VM and isolate snapshot symbols with pyelftools, deserializes the snapshot clusters and writes a text dump of every class in the isolate snapshot, with fields, method signatures and each method's absolute code offset in libapp.so. It recovers declarations and offsets for further disassembly, not decompiled function bodies.
- Targets
- App · Binary
- Category
- Android tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Reviewed at main commit 7430196 (2022-05-01), the last push; there are no releases, and the README calls the tool beta and still missing some deserialization routines and class information. main.py accepts only the snapshot hashes of Dart 2.10 and Dart 2.12, rejects Dart 2.13 as work in progress and any other SDK as unsupported, so apps built with newer Dart releases are out of scope.
- Input is the libapp.so ELF of an Android Flutter app the user may analyze, with its _kDartVmSnapshot* and _kDartIsolateSnapshot* symbols. The tests directory commits Dart 2.10 libapp.so builds of a small sample counter app (package sandbox_flutter) for arm64-v8a, armv7 and x64, plus text dumps of the arm64 and x64 builds as reference output; there is no test runner.
- Runs as python3 src/main.py [-v] libapp.so output with pyelftools as the only dependency; there is no packaging or declared Python version. The README notes that the verbose option works only for Dart 2.12 snapshots, and that darter is a fully tested parser for the older Dart 2.5.
- The author's blog post documents the snapshot format the parser follows. No license file is present and GitHub detects none, so reuse terms are unstated. This review ran nothing and analyzed no apps.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · rscloura/Doldrums · Revision 7430196
- src/main.py GitHub · rscloura/Doldrums · Revision 7430196
- src/BaseConstants.py GitHub · rscloura/Doldrums · Revision 7430196
- src/v2_12/Snapshot.py GitHub · rscloura/Doldrums · Revision 7430196
- src/v2_12/Resolver.py GitHub · rscloura/Doldrums · Revision 7430196
- tests GitHub · rscloura/Doldrums · Revision 7430196
- https://rloura.wordpress.com/2020/12/04/reversing-flutter-for-android-wip/
More in Apps
- Frida UI · Tool
- darter · Tool
- Appshark · Tool
- Wallbreaker · Tool
- axmlprinter · Tool
- FlowDroid · Tool