Skip to content

Dart 检查

域名:dart-inspector

从 Flutter AOT libapp.so 中抽取并分类字符串、还原 Smi 整数常量,并使用开发者提供的混淆映射反查原始符号。

Profile

  • full

典型场景

  • Flutter 应用逆向
  • libapp.so 字符串审计
  • Smi 整数常量恢复
  • 混淆符号反查(obfuscation-map.json)

常见组合

  • dart-inspector + binary-instrument
  • dart-inspector + adb-bridge

工具清单(12)

工具说明
dart_strings_extract从 Dart AOT libapp.so 流式提取 ASCII/UTF-16LE 字符串并分类(URL、路径、类名、package 引用、加密关键词,支持自定义规则),带 ReDoS 防护。
dart_smi_scan从 libapp.so 读取对齐的小端序字读取并剥离堆指针标记位,恢复 Dart 小整数(Smi)常量。
dart_symbolize使用开发者提供的 Flutter --save-obfuscation-map JSON(支持 flat/pairs/object 格式)解析混淆的 Dart 标识符。
flutter_packages_detect检测 Flutter libapp.so 中引用的第三方 Dart package:,已过滤 SDK 标准库并聚合。
dart_snapshot_header_parse只读解析 libapp.so 中的 Dart isolate snapshot 头:魔数、类型、32 字节哈希、特性标志、目标架构。
dart_version_fingerprint通过解析 snapshot 头并结合内置(及可选的用户提供)哈希表,识别 libapp.so 的 Flutter/Dart SDK 版本。
dart_object_pool_dump只读静态转储 libapp.so 中的 Dart isolate ObjectPool:分类每个槽位为 smi/mint/double/string/classRef/functionRef/pool/null/unknown。
dart_load_snapshot从 libapp.so 加载并解析 Dart AOT snapshot,提取元数据和统计信息(Code 对象、ObjectPool 条目、clusters)。
dart_list_functions列出已加载 snapshot 中的所有 Dart Code 对象(编译后的函数),包含入口地址、大小和函数名(如果可用)。
dart_call_function在 ARM64 仿真器中按地址或名称执行 Dart 函数,带简化运行时(模拟 built-ins、标记指针)。
dart_inspect_object_pool转储指定地址的 ObjectPool,显示所有条目的类型和值。
dart_trace_execution逐步跟踪 Dart 函数执行,输出每条指令及寄存器状态(PC、x0-x30、PP、THR)。

Released under AGPL-3.0-only