Articulo de referencia

Imagen de disco de Apple

com.apple.disk-image | com.apple.disk-image-smi }}"},"conforms to":{"wt":""},"magic":{"wt":""},"owner":{"wt":"[[Apple Inc.]]"},"released":{"wt":""},"latest release version":{"wt...

Apple [ 1 ] Disk Image es un formato de imagen de disco comúnmente utilizado por el sistema operativo macOS . Al abrirse, una imagen de disco de Apple se monta como un volumen dentro del Finder .

Una imagen de disco de Apple puede estar estructurada según varios formatos de imagen de disco propietarios, incluidos 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 carpeta. Para ver el contenido de una imagen de disco, primero hay que abrirla 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 application /x-apple-diskimage .

Dentro de estas imágenes de disco se pueden contener diferentes sistemas de archivos , y también se admite la creación de imágenes de medios ópticos híbridos que contienen múltiples sistemas de archivos. [ 1 ] Algunos de los sistemas de archivos compatibles incluyen el Sistema de Archivos Jerárquico (HFS), HFS Plus (HFS+), Tabla de Asignación de Archivos (FAT), ISO 9660 y Formato de Disco Universal (UDF). [ 1 ] [ 2 ]

Las imágenes de disco de Apple se pueden crear utilizando las utilidades incluidas en macOS, específicamente Disk Copy en Mac OS X v10.2 y versiones anteriores, y Disk Utility en Mac OS X v10.3 y versiones posteriores. Estas utilidades también pueden usar 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 con acceso a Internet para su uso con la utilidad Copiar disco de Apple, que posteriormente se integró en la Utilidad de Discos en la versión 10.3. La aplicación Copiar disco permitía mostrar un acuerdo de licencia de software multilingüe antes de montar una imagen de disco. La imagen no se montaba a menos que el usuario indicara su conformidad con la licencia. [ 5 ]

Una imagen de disco de Apple permite la protección segura mediante contraseña, así como la compresión de archivos , por lo que cumple funciones tanto de seguridad como de distribución de archivos; este tipo de imagen de disco se utiliza con mayor frecuencia para distribuir software a través de Internet.

Historia

Apple creó originalmente sus formatos de imagen de disco porque la bifurcación de recursos utilizada por las aplicaciones de Mac no se podía transferir fácilmente a través de redes mixtas como las de Internet. Incluso cuando el uso de bifurcaciones 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 usa comúnmente para indicar al usuario que copie la aplicación a la carpeta correcta.

Una versión anterior del formato, destinada únicamente a imágenes de disquetes , se conoce generalmente como formato "Disk Copy 4.2", en referencia 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 formato NDIF (New Disk Image Format) 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 incrustada, por lo tanto, una "Imagen de automontaje", destinada 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 la 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 mismo han tenido éxito. La capa cifrada se analizó mediante ingeniería inversa en una implementación llamada VileFault (un juego de palabras con FileVault ). [ 8 ]

Los archivos de imagen de disco de Apple son esencialmente imágenes de disco sin procesar (es decir, contienen datos de bloques) con algunos metadatos añadidos, opcionalmente con una o dos capas aplicadas que proporcionan compresión y cifrado. En , estas capas se denominan CUDIFEncoding y CEncryptedEncoding. [ 1 ]hdiutil

UDIF admite internamente la compresión 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 de disco, después de los datos. Este fragmento se puede describir mediante la siguiente estructura C. [ 10 ] Todos los valores están en formato big-endian ( orden de bytes PowerPC ).

typedef struct { uint8_t Signature [ 4 ]; // magic 'koly' uint32_t Version ; // 4 (a partir de 2013) uint32_t HeaderSize ; // sizeof(this) = 512 (a partir de 2013) uint32_t Flags ; uint64_t RunningDataForkOffset ; uint64_t DataForkOffset ; // normalmente 0, inicio del archivo uint64_t DataForkLength ; uint64_t RsrcForkOffset ; // desplazamiento y longitud de bifurcación de recursos uint64_t RsrcForkLength ; uint32_t SegmentNumber ; // Normalmente 1, puede ser 0 uint32_t SegmentCount ; // Normalmente 1, puede ser 0 uuid_t SegmentID ; uint32_t DataChecksumType ; // Suma de verificació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 verificació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 ;             

El archivo XML plist contiene una blkxclave (blocks), con información sobre cómo se asigna la bifurcación de datos precedente. 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 bifurcación de datos y recursos probablemente se hereda de NDIF.

Cifrado

La capa de cifrado viene en dos versiones. La versión 1 tiene un pie de página 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 obtenida mediante ingeniería inversa, si el cifrado es una capa externa o interna a los metadatos (UDIF), pero a juzgar por la vfcrackdemostración, probablemente sea externa. [ 8 ]

Servicios públicos

Existen pocas opciones disponibles para extraer archivos o montar el formato propietario Apple Disk Image. Algunas utilidades de conversión multiplataforma son:

  • dmg2img se escribió originalmente en Perl ; sin embargo, la versión en Perl ya no recibe mantenimiento y el proyecto se reescribió en C. Extrae la imagen de disco sin procesar de un archivo DMG, sin gestionar el sistema de archivos interno. Las imágenes comprimidas con UDIF ADC (UDCO) son compatibles 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 con AES-128, pero no imágenes UDCO. [ 12 ]
  • El kit Sleuth . Solo admite formatos DMG sin comprimir, HFS+ y APFS.

La mayoría de los archivos .dmg no están cifrados. Dado que los metadatos del archivo .dmg se encuentran al final, un programa que no entienda este tipo de archivos puede leerlo como si fuera una imagen de disco normal, siempre que sea compatible con el sistema de archivos interno. Algunas herramientas con esta capacidad son:

Las herramientas con soporte específico para DMG incluyen:

  • Windows:
    • 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 macOS arrancables en Windows. [ 17 ]
    • También existe un visor de imágenes de disco DMG de Apple gratuito, pero se desconoce qué tan compatible es realmente. [ 18 ]
  • Similar a Unix:
    • darling-dmg es un módulo FUSE que permite montar fácilmente archivos DMG en Linux. Es compatible con UDIF y HFS/HFS+. [ 19 ]

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 "hdiutil(1) Página del manual de Mac OS X" . Archivado del original el 14 de mayo de 2016. Recuperado el 14 de mayo de 2016 .
  2. 1 2 "Mac OS X: Uso de archivos de imagen de disco de Disk Copy" . Archivado del original el 19-12-2013 . Recuperado el 25-04-2013 .
  3. Manual de comandos generales de Darwin y macOShdiutil(1)  
  4. "Re: ¡Algunas aplicaciones se niegan a iniciarse en 10.2.8! (Fuera de tema, pero muy importante)" . Archivado del original el 17 de enero de 2014.
  5. "Guías" . Apple. Archivado del original el 6 de marzo de 2009. Consultado el 27 de octubre de 2010 .
  6. "DART 1.5.3: Historial de cambios de versión" . Archivado del original el 19/12/2013 . Consultado el 25/04/2013 .
  7. "Descargas de software: formatos y mensajes de error comunes" . Archivado del original el 24/12/2010 . Consultado el 06/05/2009 .
  8. 1 2 "VileFault" . 29-12-2006. Archivado del original el 09-01-2007 . Recuperado el 27-10-2010 .
  9. Michael Tsai (07/10/2015). "Imágenes de disco LZFSE en El Capitan" . mjtsai.com . Archivado del original el 09/04/2017 . Consultado el 09/04/2017 .
  10. 1 2 "Desmitificando el formato de archivo DMG" . Archivado del original el 17 de marzo de 2013.
  11. "dmg2img" . Archivado del original el 29 de noviembre de 2010. Consultado el 27 de octubre de 2010 .
  12. "DMGExtractor" . catacombae.org . Archivado del original el 2 de enero de 2011. Consultado el 3 de enero de 2011 .
  13. Características de MacDrive / Boot Camp / Requisitos del sistema /. "Página principal de MacDrive" . Mediafour. Archivado del original el 4 de octubre de 2010. Recuperado el 27 de octubre de 2010 .
  14. David (21 de junio de 2008). "Cómo convertir DMG a ISO en Windows, Linux y Mac" . Archivado del original el 7 de marzo de 2010.
  15. "Convertir DMG a ISO usando PowerISO" . 29 de enero de 2009. Archivado del original el 2 de mayo de 2009. Consultado el 15 de febrero de 2009 .
  16. "Acerca de TransMac para Windows" . www.acutesystems.com .
  17. "Convertir" . www.winytips.com . winytips. 24 de diciembre de 2018. Consultado el 5 de mayo de 2020 .
  18. Olivia Dehaviland (03/03/2015). "Visor de imágenes de disco DMG de Apple" . DataForensics.org. Archivado del original el 02/04/2015 . Consultado el 10/03/2015 .
  19. "darling-dmg" . darling-dmg . Consultado el 29 de marzo de 2015 .
  • Conexión con desarrolladores de Apple: Un vistazo rápido a PackageMaker e Installer
  • Consejo 16-5 del Centro de Desarrollo de Mac de O'Reilly . Crear una imagen de disco a partir de un directorio en la Terminal.