v0.3.0 — forensic recovery
Pure-Rust read-only VMware VMDK reader. This release makes it the most capable VMDK library for forensics and recovery.
Highlights
Forensic recovery (unique to this crate) — VMware stores the grain tables twice; qemu-img/libvmdk read only the primary and fail when it is damaged.
enable_rgd_fallback()+dump/hash/map/verify --recover: read past a damaged primary grain directory through the redundant GD — both whole-GT-pointer and individual lost-entry recovery.grain_directory_recovery()triage report +rgd_recovery_count()census.validate_rgd()fixed to compare grain-table contents (not pointers), so healthy two-copy images no longer false-positive.
Forensic metadata qemu-img/libvmdk discard
disk_database()— typedddb.*(adapter, CHS geometry, UUID, HW/tools version, thin flag, encoding).header_provenance()— unclean-shutdown flag, FTP-ASCII-mangling check, redundant-GD/compression/marker flags.change_track_path()(CBT-ctkreference),effective_content_id()(longContentIDsentinel),VMFSRDMraw-device-map extents.
Hardening & robustness
numGTEsPerGTcapped at 512 (closes an allocation-amplification DoS).- Three
cargo fuzztargets (open / read / recover) run in CI and on a schedule; bounds-checked throughout; zerounsafe. - 280+ tests; COWD/seSparse cross-validated byte-for-byte against
qemu-img convert -O raw.
Install
[dependencies]
vmdk = "0.3"cargo install vmdk-cli # the `vmdk` binary