Apple [1] Disk Image es un formato de imagen de disco que se utiliza habitualmente en el sistema operativo macOS . Cuando se abre, una imagen de disco de Apple se monta como un volumen dentro del Finder .
Una imagen de disco de Apple se puede estructurar según uno de varios formatos de imagen de disco propietarios, incluido el formato de imagen de disco universal (UDIF) de Mac OS X y el nuevo formato de imagen de disco (NDIF) de Mac OS 9. El nombre de un archivo de imagen de disco de Apple suele tener la extensión ".dmg". Una imagen de disco es una copia comprimida del contenido de un disco o una carpeta. Para ver el contenido de una imagen de disco, primero debe abrir la imagen de disco para que aparezca en el escritorio o en una ventana del Finder.
Características
Los archivos de imagen de disco de Apple se publican con un tipo MIME de application/x-apple-diskimage .
Estas imágenes de disco pueden contener distintos sistemas de archivos y también existe soporte para crear imágenes de medios ópticos híbridos que contienen múltiples sistemas de archivos. [1] Algunos de los sistemas de archivos admitidos incluyen el Sistema de archivos jerárquico (HFS), HFS Plus (HFS+), la Tabla de asignación de archivos (FAT), ISO 9660 y el Formato de disco universal (UDF). [1] [2]
Las imágenes de disco de Apple se pueden crear utilizando utilidades incluidas con macOS, específicamente Disk Copy en Mac OS X v10.2 y anteriores y Disk Utility en Mac OS X v10.3 y posteriores. Estas utilidades también pueden utilizar archivos de imagen de disco de Apple como imágenes para grabar CD y DVD. Los archivos de imagen de disco también se pueden administrar a través de la interfaz de línea de comandos utilizando la hdiutilutilidad. [3]
En Mac OS X v10.2.3 , Apple introdujo las imágenes de disco comprimidas [4] y las imágenes de disco habilitadas para Internet para su uso con la utilidad Disk Copy de Apple, que luego se integró en Disk Utility en 10.3. La aplicación Disk Copy tenía la capacidad de mostrar un acuerdo de licencia de software multilingüe antes de montar una imagen de disco. La imagen no se montará a menos que el usuario indique que está de acuerdo con la licencia. [5]
Una imagen de disco de Apple permite la protección segura con contraseña, así como la compresión de archivos y, por lo tanto, cumple funciones tanto de seguridad como de distribución de archivos; este tipo de imagen de disco se utiliza más comúnmente para distribuir software a través de Internet.
Historia
Apple creó originalmente sus formatos de imagen de disco porque el recurso utilizado por las aplicaciones de Mac no podía transferirse fácilmente a través de redes mixtas como las que forman Internet. Incluso cuando el uso de recursos disminuyó con Mac OS X, las imágenes de disco siguieron siendo el formato estándar de distribución de software. Las imágenes de disco permiten al distribuidor controlar la presentación de la ventana del Finder, que se utiliza comúnmente para indicar al usuario que copie la aplicación a la carpeta correcta.
Una versión anterior del formato, pensada únicamente para imágenes de disquetes , se conoce habitualmente como formato "Disk Copy 4.2", en honor a la versión de la utilidad Disk Copy que se utilizaba para gestionar estas imágenes. [1] Un formato similar que admitía la compresión de imágenes de disquetes se denomina DART. [1] [6]
El nuevo formato de imagen de disco (NDIF) era el formato de imagen de disco predeterminado anterior en Mac OS 9 , [1] y las imágenes de disco con este formato generalmente tienen una extensión de archivo .img (que no debe confundirse con los archivos de imagen de disco .img sin procesar ) o .smi . Los archivos con la extensión .smi son en realidad aplicaciones que montan una imagen de disco incorporada, por lo tanto una "imagen automontable", pensada solo para Mac OS 9 y versiones anteriores. [7] [2]
El formato de imagen de disco universal (UDIF) es el formato de imagen de disco nativo para Mac OS X. Las imágenes de disco en este formato suelen tener una extensión .dmg . [1]
Formato de archivo
Apple no ha publicado ninguna documentación sobre el formato, pero los intentos de aplicar ingeniería inversa a partes del formato han tenido éxito. La capa cifrada se sometió a ingeniería inversa en una implementación llamada VileFault (un término de FileVault ). [8]
Los archivos de imagen de disco de Apple son esencialmente imágenes de disco sin procesar (es decir, que contienen datos de bloques) con algunos metadatos agregados, opcionalmente con una o dos capas aplicadas que brindan compresión y cifrado. En , estas capas se denominan CUDIFEncoding y CEncryptedEncoding. [1]hdiutil
UDIF admite la compresión interna de ADC (un antiguo formato de compresión propietario de Apple), zlib , bzip2 (a partir de Mac OS X v10.4 ), LZFSE (a partir de Mac OS X v10.11 ), [9] y lzma (a partir de macOS v10.15 ).
Metadatos
Los metadatos UDIF se encuentran al final de la imagen del disco, después de los datos. Este tráiler se puede describir utilizando la siguiente estructura en C. [10] Todos los valores son big-endian ( ordenamiento de bytes de PowerPC )
typedef struct { uint8_t Firma [ 4 ]; // magic 'koly' uint32_t Versión ; // 4 (a partir de 2013) uint32_t Tamaño del encabezado ; // tamaño de (este) = 512 (a partir de 2013) uint32_t Indicadores ; uint64_t RunningDataForkOffset ; uint64_t DataForkOffset ; // generalmente 0, comienzo del archivo uint64_t DataForkLength ; uint64_t RsrcForkOffset ; // desplazamiento y longitud de la bifurcación del recurso uint64_t RsrcForkLength ; uint32_t SegmentNumber ; // generalmente 1, puede ser 0 uint32_t SegmentCount ; // generalmente 1, puede ser 0 uuid_t SegmentID ; uint32_t DataChecksumType ; // Suma de comprobación de bifurcación de datos uint32_t DataChecksumSize ; uint32_t DataChecksum [ 32 ]; uint64_t XMLOffset ; // Posición de la lista de propiedades XML en el archivo uint64_t XMLLength ; uint8_t Reserved1 [ 120 ]; uint32_t ChecksumType ; // Suma de comprobación maestra uint32_t ChecksumSize ; uint32_t Checksum [ 32 ]; uint32_t ImageVariant ; // Desconocido, comúnmente 1 uint64_t SectorCount ; uint32_t reserved2 ; uint32_t reserved3 ; uint32_t reserved4 ; } __attribute__ (( packed , scalar_storage_order ( "big-endian" ))) UDIFResourceFile ;
La lista XML contiene una blkxclave (bloques), con información sobre cómo se asigna la bifurcación de datos anterior. Los datos principales se almacenan en un bloque base64, utilizando tablas identificadas por el magic 'mish'. Esta 'mish'estructura contiene una tabla sobre bloques de datos y la posición y longitudes de cada "fragmento" (normalmente solo un fragmento, pero la compresión creará más). [10] La información de la bifurcación de datos y recursos probablemente se hereda de NDIF.
Encriptación
La capa de cifrado se presenta en dos versiones. La versión 1 tiene un avance al final del archivo, mientras que la versión 2 (predeterminada desde OS X 10.5) lo coloca al principio. blkxNo está claro a partir de la documentación de ingeniería inversa si el cifrado es una capa fuera o dentro de los metadatos (UDIF), pero a juzgar por la vfcrackdemostración, probablemente sea fuera. [8]
Utilidades
Hay algunas opciones disponibles para extraer archivos o montar el formato propietario de imagen de disco de Apple. Algunas utilidades de conversión multiplataforma son:
- dmg2img se escribió originalmente en Perl ; sin embargo, la versión de Perl ya no se mantiene y el proyecto se reescribió en C. Extrae la imagen de disco sin procesar de un DMG, sin manipular el sistema de archivos interno. Las imágenes comprimidas con ADC UDIF (UDCO) se admiten desde la versión 1.5. [11]
- DMGEXtractor está escrito en Java con una interfaz gráfica de usuario (GUI) y admite funciones más avanzadas de dmg, incluidas imágenes cifradas AES-128 pero no imágenes UDCO. [12]
- El kit de detectives . Solo admite formatos DMG sin comprimir, HFS+ y APFS.
La mayoría de los archivos dmg no están cifrados. Como los metadatos dmg se encuentran al final, un programa que no comprenda los archivos dmg puede leerlos como si fueran una imagen de disco normal, siempre que exista compatibilidad con el sistema de archivos interno. Las herramientas con este tipo de capacidad incluyen:
- Multiplataforma: 7-zip (HFS/HFS+), PeaZip (HFS/HFS+).
- Windows: UltraISO , IsoBuster , MacDrive (HFS/HFS+). [13]
- Similar a Unix: cdrecord y
mount(por ejemplo ). [14] [15]mount -o loop,ro -t hfsplus imagefile.dmg /mnt/mountpoint
Las herramientas con soporte específico para dmg incluyen:
- Ventanas:
- Transmac puede manejar archivos UDIF .dmg y sparsebundles, así como HFS/HFS+ y APFS. Se desconoce si maneja cifrado. [16] Se puede usar para crear instaladores de arranque de macOS en Windows. [17]
- También existe un visor de imágenes de disco DMG de Apple gratuito, pero no se sabe cuánto soporta realmente. [18]
- Similar a Unix:
- darling-dmg es un módulo FUSE que permite montar archivos DMG fácilmente en Linux. Admite UDIF y HFS/HFS+. [19]
Véase también
Referencias
- ^ abcdefgh «Página del manual de Mac OS X de hdiutil(1)». Archivado desde el original el 14 de mayo de 2016. Consultado el 14 de mayo de 2016 .
- ^ ab "Mac OS X: Uso de archivos de imagen de disco de Disk Copy". Archivado desde el original el 19 de diciembre de 2013. Consultado el 25 de abril de 2013 .
- ^ – Manual de comandos generales de Darwin y macOS
- ^ "Re: ¡Algunas aplicaciones no se inician en 10.2.8! (OT, pero muy importante)". Archivado desde el original el 17 de enero de 2014.
- ^ "Guías". Apple. Archivado desde el original el 6 de marzo de 2009. Consultado el 27 de octubre de 2010 .
- ^ "DART 1.5.3: Historial de cambios de versión". Archivado desde el original el 19 de diciembre de 2013. Consultado el 25 de abril de 2013 .
- ^ "Descargas de software: formatos y mensajes de error comunes". Archivado desde el original el 24 de diciembre de 2010. Consultado el 6 de mayo de 2009 .
- ^ ab "VileFault". 29 de diciembre de 2006. Archivado desde el original el 9 de enero de 2007. Consultado el 27 de octubre de 2010 .
- ^ Michael Tsai (7 de octubre de 2015). "Imágenes de disco LZFSE en El Capitan". mjtsai.com . Archivado desde el original el 9 de abril de 2017. Consultado el 9 de abril de 2017 .
- ^ ab "Desmitificando el formato de archivo DMG". Archivado desde el original el 17 de marzo de 2013.
- ^ "dmg2img". Archivado desde el original el 29 de noviembre de 2010. Consultado el 27 de octubre de 2010 .
- ^ "DMGExtractor". catacombae.org . Archivado desde el original el 2011-01-02 . Consultado el 2011-01-03 .
- ^ Características de MacDrive / Boot Camp / Requisitos del sistema /. "Página de inicio de MacDrive". Mediafour. Archivado desde el original el 4 de octubre de 2010. Consultado el 27 de octubre de 2010 .
- ^ "Cómo convertir DMG a ISO en Windows, Linux y Mac". 21 de junio de 2008. Archivado desde el original el 7 de marzo de 2010.
- ^ "Convertir DMG a ISO usando PowerISO". 29 de enero de 2009. Archivado desde el original el 2009-05-02 . Consultado el 15 de febrero de 2009 .
- ^ "Acerca de TransMac para Windows". www.acutesystems.com .
- ^ "Convertir". www.winytips.com . winytips. 24 de diciembre de 2018 . Consultado el 5 de mayo de 2020 .
- ^ Olivia Dehaviland (3 de marzo de 2015). "Apple DMG Disk Image Viewer". DataForensics.org. Archivado desde el original el 2 de abril de 2015. Consultado el 10 de marzo de 2015 .
- ^ "darling-dmg". darling-dmg . Consultado el 29 de marzo de 2015 .
Enlaces externos
- Conexión para desarrolladores de Apple Una mirada rápida a PackageMaker e Installer
- Consejo 16-5 de O'Reilly Mac DevCenter: crear una imagen de disco desde un directorio en la terminal