Apple 磁盘镜像 (.dmg)

Apple 标准

Apple 磁盘镜像 (DMG) 是 macOS 的原生虚拟磁盘格式,被广泛认可为 Mac 应用程序的标准数字软件分发容器,并配有交互式拖放安装程序。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 DMG 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 DMG 文件:

十六进制签名 (偏移量 -512):

6B 6F 6C 79

ASCII 表示形式: koly

标准化: Apple Universal Disk Image Format (UDIF)

技术规格

容器架构通用磁盘映像格式(UDIF),包含 XML 属性列表尾部和位于文件末尾的 512 字节“koly”块
压缩方式ADC(Apple 数据压缩)、zlib(UDZO)、bzip2(UDBZ)或 LZMA(ULMO)
字节序尾部整数采用大端序
色彩空间不适用(文件系统磁盘容器)
通道与结构完整的 HFS+、HFSX 或 APFS 文件系统,包含卷图标和自定义 Finder 背景图
最大尺寸实际上不设上限(支持多 TB 虚拟磁盘)
透明度无
流式传输与渐进式加载块级分段支持通过 HTTP 挂载,无需下载整个文件

技术对比矩阵:DMG 对比同类产品

技术属性DMG (当前)ISOVHDPKG
目标操作系统macOS 独占原生挂载支持情况取决于操作系统。Windows 原生虚拟磁盘macOS 安装程序包
内部文件系统Apple HFS+ 或 APFSISO 9660 / UDFNTFS / FAT32归档负载 (cpio/xar)
签名位置文件结束处的尾部 ('koly')第 16 扇区标头 ('CD001')尾部 ('conectix')标头签名
压缩内置 (zlib, bzip2, LZMA)未压缩的原始扇区仅动态分配Gzip / XZ 负载压缩

常见损坏模式与十六进制恢复指南

macOS 错误:"无法打开以下磁盘镜像:无法识别的镜像"。

根本原因: 在写入最后的 512 字节"koly"尾部之前下载被中断。

恢复方法: 使用 7-Zip 提取部分内容,或使用 File2File.app DMG 工具重建尾部。

安全分析与解析器攻击向量

用户挂载的 DMG 文件可能包含未签名的恶意软件,或利用具有欺骗性的拖放式安装程序手法诱导用户。

已知攻击向量

  • 通过携带恶意应用程序包的未签名 DMG 镜像绕过 Gatekeeper。
  • 损坏的 UDIF 数据块在解压时,可能导致 macOS DiskImages 框架发生缓冲区溢出。
  • 伪造的 Finder 背景图像诱骗用户安装木马。

防御性最佳实践: 在挂载 DMG 文件之前,始终验证 Apple 开发者 ID 代码签名和公证票据。

历史渊源与里程碑

2017Apple 在现代 DMG 镜像内部引入了 APFS(Apple 文件系统)文件系统支持。
2007Mac OS X Leopard 为 DMG 容器引入了开发者代码签名验证。
2001Apple 随着 Mac OS X 10.0 Cheetah 的发布,推出了通用磁盘镜像格式 (UDIF)。

核心优势与特点

  • 领先的 macOS 应用分发标准:双击即可在 Mac 桌面上轻松挂载磁盘。
  • 自定义视觉呈现:开发者可以设计带有品牌背景的自定义 Finder 安装程序窗口。
  • 内置经过密码学验证的校验和 (SHA-256) 以及可选的 AES-128 / AES-256 加密。

技术局限与劣势

  • Mac 专有格式:若无 7-Zip 或 dmg2img 等第三方工具,无法在 Windows 或 Linux 上原生挂载。
  • 尾部结构:关键的 512 字节“koly”索引块位于文件末尾,因此下载中断后无法打开文件。
  • 在 iOS 或 iPadOS 上不受支持。

趣味技术冷知识

  • 每个有效现代 DMG 文件末尾的 512 字节尾部总是以 ASCII 码的标识字符串"koly"开头。
  • 将应用程序拖入"应用程序"文件夹的拖放式安装程序窗口,实际上是保存在 DMG 内部的自定义 Finder 视图。
  • 可以创建受密码保护的 DMG 文件,从而在 Mac 上建立加密的安全虚拟保险库。

常见技术问题

我可以在 Windows 上打开 DMG 文件吗?

Windows 无法将 DMG 文件挂载为虚拟驱动器,但您可以使用 7-Zip 提取其内容,或者直接在网页浏览器中使用 File2File.app 将其转换为 ISO。

Mac 上的 DMG 文件是什么?

DMG 文件是 Mac 计算机上用于分发软件的虚拟磁盘映像。双击它会在桌面上打开一个包含应用安装程序的虚拟驱动器。

如何将 DMG 转换为 ISO?

是的,File2File.app 可在浏览器中将 DMG 转换为 ISO。 支持情况取决于操作系统。