Add Apple Disk Image (DMG) support - #88
Conversation
|
What about |
|
Yes that could also be an option, though most of the implementations in One could argue that DMG (in terms of vendor/basic capabilities) comes close to the Though it's not a clean fit, my choice would still be this repo but I'll let you make the call. |
|
@joost-j thank you for your contribution! As this is your first code contribution, please read the following Contributor License Agreement (CLA). If you agree with the CLA, please reply with the following information:
Contributor License Agreement
Contribution License AgreementThis Contribution License Agreement ("Agreement") governs your Contribution(s) (as defined below) and conveys certain license rights to Fox-IT B.V. ("Fox-IT") for your Contribution(s) to Fox-IT"s open source Dissect project. This Agreement covers any and all Contributions that you ("You" or "Your"), now or in the future, Submit (as defined below) to this project. This Agreement is between Fox-IT B.V. and You and takes effect when you click an “I Accept” button, check box presented with these terms, otherwise accept these terms or, if earlier, when You Submit a Contribution.
|
|
@DissectBot agree |
Add support for
.dmgfiles containing the UDIF file format. Some macOS acquisition tools, for example Fuji, are able to create DMG outputs. This PR enables users to directly interact with those resulting disk images without needing to convert them first. Supports the different sub-formats, as well as encrypted DMG's.I've been thinking about committing this code to the
dissect.discrepo first, but since that is specifically targeting filesystems for optical media, I figured this repository is a better fit. DMG does not have it's own filesystem and is mainly a wrapper around a disk, much like other formats in this repo (e.g.vmdk/vhd). If this code belongs in another dissect project, please let me know.Test data was created manually on a MacBook with the
hdiutiltool and converted to the individual sub-formats. The code was generated with Claude Code and manually reviewed / edited to fit the dissect code base; this greatly contributed to the completeness of the implementation, as well as the time to get it done. So if you were wondering why the docstrings and struct annotations are so detailed; that's why. Any feedback with regards to the use of Claude Code is also appreciated.Requires fox-it/dissect.util#131 for the ADC compression.