v0.1.2
Highlights
- Per-target struct headers —
DartThreadfrom a version × architecture layout table,DartObjectPoolgenerated from the analyzed binary's own object pool - Six new text inventories — strings, libs, classes, functions, arrays, maps — grouped under
text/ - Cleaner CLI — absolute output path, internal diagnostics hidden by default, version string follows the release tag
What's changed
Exports
r2_script/r2_dart_struct.handida_script/ida_dart_struct.hare now generated per target instead of a fixed blutter template:DartThreadcomes from a 24-version × arm64/x64 layout table (profiles/struct/, compiled from the Dart VM);DartObjectPoolis built from the target's own object-pool entries (offset =0x10 + 8·i, matchingpp.txt).
- Dropped the blutter MIT header from generated struct files — they are now first-party output, not a vendored template.
- Added six text dumps:
text/strings.txt,text/libs.txt,text/classes.txt,text/functions.txt,text/arrays.txt,text/maps.txt;pp.txt/objs.txtalso move undertext/.
CLI
- Prints the absolute output directory (not the relative path as typed).
- Hides VM/ISO header stats, string/class/function counts and the instruction-table summary by default — re-enable with
DART_AOT_VERBOSE=1. - Removed the duplicated output path from the final
doneline. --version/ help show a cleanvX.Y.Z(follows the CI release tag, no-N-gHASHdev suffix); help now lists the full output set and the supported range/architecture (Dart 2.7–3.14β; Mach-O/ELF/PE × x64/arm64).
Docs / metadata
- Rewrote README (English/Chinese) in a tighter style and documented the new outputs.
.gitattributesmarksprofiles/sdk/andprofiles/struct/vendored so GitHub reports Rust (was JSON/C header)..gitignoreexcludes the local-only struct field reference tables (profiles/struct/*/*.json).
Install
cargo install dae-rs # crates.io
brew install ejfkdev/tap/dae # macOS (Homebrew tap)Or download the binary for your platform below (Windows/macOS/Linux × x64/arm64; x64 builds are UPX-compressed).