您当前的位置:首页 > 计算机 > 文件格式与编码

DMG文件格式

时间:05-25来源:作者:点击数:

Mac上的DMG文件从根本上来说,是一个disk image的container。它可以对数据进行了分块、压缩、加密等。

而刻录光盘用的".iso"或".img"文件,则和数据流直接对应。

DMG文件数据结构

DMG文件的末尾0x200个字节是一个简称为kylo的数据结构。这个结构中标明了一个plist文件内容的存储位置。通过这个plist文件的内容,可以知道具体数据块(data block)的位置。

set schema {
  {a4   signature        : "kylo"}
  {I    version}
  {I    hsize            : "header length. 512 bytes"}
  {I    flags}
  {W    runningDataForkOffset}
  {W    dataForkOffset}
  {W    dataForkLength}
  {W    rsrcForkOffset}
  {W    rsrcForkLength}
  {I    iSegment}
  {I    nSegment}
  {a16  idSegment        - "128-bit number like GUID, but seems not a OSF GUID"}
  {a136 dataForkChecksum -}
  {W    xmlForkOffset    : "plist File offset"}
  {W    xmlForkLength}
  {a120 -                - "reserved! Good for store data"}
  {a136 masterChecksum   -}
  {I    imgVariant}
  {I    nSector}
  {I    -                - "reserved"}
  {I    -                - "reserved"}
  {I    -                - "reserved"}
}

set file "mac.dmg"
hexdump::open $file
set values [hexdump::struct $schema -0x200 end]
hexdump::print_struct $schema $values
hexdump::close

网络资源

  • libdmg: Portable libraries and utilities that manipulate HFS+ volumes and Apple's DMG images
  • dmg2iso/dmg2img: 转换DMG文件为".iso"或".img"文件
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门