Образ диска Apple

Формат файла, разработанный Apple и используемый macOS
Образ диска Apple
Значок изображает внутренний жесткий диск внутри универсального значка файла.
Расширение имени файла
.dmg, .smi, .img
Тип интернет-СМИ
приложение/x-apple-образ диска
Единый идентификатор типа (UTI)
  • com.apple.disk-image
  • com.apple.disk-image-smi
РазработаноApple Inc.
Тип форматаОбраз диска

Apple [1] Disk Image — это формат образа диска , обычно используемый операционной системой macOS . При открытии Apple Disk Image монтируется как том в Finder .

Образ диска Apple может быть структурирован в соответствии с одним из нескольких фирменных форматов образа диска, включая Universal Disk Image Format (UDIF) из Mac OS X и New Disk Image Format (NDIF) из Mac OS 9. Имя файла образа диска Apple обычно имеет расширение «.dmg». Образ диска — это сжатая копия содержимого диска или папки. Образы дисков имеют расширение .dmg в конце своего имени. Чтобы увидеть содержимое образа диска, необходимо сначала открыть образ диска, чтобы он появился на рабочем столе или в окне Finder.

Функции

Файлы образа диска Apple публикуются с типом MIME application /x-apple-diskimage .

Внутри этих образов дисков могут содержаться различные файловые системы , а также поддерживается создание гибридных образов оптических носителей , содержащих несколько файловых систем. [1] Некоторые из поддерживаемых файловых систем включают иерархическую файловую систему (HFS), HFS Plus (HFS+), таблицу размещения файлов (FAT), ISO9660 и универсальный дисковый формат (UDF). [1] [2]

Образы дисков Apple можно создавать с помощью утилит, входящих в комплект Mac OS X, в частности Disk Copy в Mac OS X v10.2 и более ранних версиях и Disk Utility в Mac OS X v10.3 и более поздних версиях. Эти утилиты также могут использовать файлы образов дисков Apple в качестве образов для записи CD и DVD. Файлами образов дисков также можно управлять через интерфейс командной строки с помощью hdiutilутилиты. [3]

В Mac OS X v10.2 .3 Apple представила Compressed Disk Images [4] и Internet-Enabled Disk Images для использования с утилитой Apple Disk Copy, которая позже была интегрирована в Disk Utility в 10.3. Приложение Disk Copy имело возможность отображать многоязычное лицензионное соглашение перед монтированием образа диска. Образ не будет смонтирован, если пользователь не согласится с лицензией. [5]

Образ диска Apple обеспечивает надежную защиту паролем, а также сжатие файлов , и, следовательно, выполняет функции как безопасности, так и распространения файлов; такой образ диска чаще всего используется для распространения программного обеспечения через Интернет.

История

Apple изначально создала свои форматы образов дисков, поскольку ресурсная вилка , используемая приложениями Mac, не могла легко передаваться по смешанным сетям, таким как те, что составляют Интернет. Даже когда использование ресурсных вилок пошло на спад с выходом Mac OS X, образы дисков оставались стандартным форматом распространения программного обеспечения. Образы дисков позволяют дистрибьютору контролировать представление окна Finder, что обычно используется для указания пользователю скопировать приложение в нужную папку.

Предыдущая версия формата, предназначенная только для образов дискет , обычно называется форматом «Disk Copy 4.2» по названию версии утилиты Disk Copy , которая использовалась для обработки этих образов. [1] Похожий формат, который поддерживал сжатие образов дискет, называется DART. [1] [6]

New Disk Image Format (NDIF) был предыдущим форматом образа диска по умолчанию в Mac OS 9 , [1] и образы дисков с этим форматом обычно имеют расширение .img (не путать с файлами образа диска raw .img ) или .smi . Файлы с расширением .smi на самом деле являются приложениями, которые монтируют встроенный образ диска, таким образом, «самомонтируемый образ», предназначенный только для Mac OS 9 и более ранних версий. [7] [2]

Universal Disk Image Format (UDIF) — это собственный формат образа диска для Mac OS X. Образы дисков в этом формате обычно имеют расширение .dmg . [1]

Формат файла

Apple не выпустила никакой документации по формату, но попытки реверс-инжиниринга частей формата были успешными. Зашифрованный слой был реверс-инжинирингован в реализации под названием VileFault (спунеризм FileVault ) . [8]

Файлы образа диска Apple по сути являются сырыми образами дисков (т. е. содержат данные блоков) с некоторыми добавленными метаданными, опционально с одним или двумя примененными слоями, которые обеспечивают сжатие и шифрование. В , эти слои называются CUDIFEncoding и CEncryptedEncoding. [1]hdiutil

UDIF поддерживает внутреннее сжатие ADC (старый фирменный формат сжатия Apple), zlib , bzip2 (начиная с Mac OS X v10.4 ), LZFSE (начиная с Mac OS X v10.11 ), [9] и lzma (начиная с macOS v10.15 ).

Метаданные

Метаданные UDIF находятся в конце образа диска после данных. Этот трейлер можно описать с помощью следующей структуры C. [10] Все значения имеют big-endian ( порядок байтов PowerPC )

typedef struct { uint8_t Signature [ 4 ]; // magic 'koly' uint32_t Version ; // 4 (по состоянию на 2013 год) uint32_t HeaderSize ; // sizeof(this) = 512 (по состоянию на 2013 год) uint32_t Flags ; uint64_t RunningDataForkOffset ; uint64_t DataForkOffset ; // обычно 0, начало файла uint64_t DataForkLength ; uint64_t RsrcForkOffset ; // смещение и длина ответвления ресурса uint64_t RsrcForkLength ; uint32_t SegmentNumber ; // Обычно 1, может быть 0 uint32_t SegmentCount ; // Обычно 1, может быть 0 uuid_t SegmentID ; uint32_t DataChecksumType ; // Контрольная сумма ветвления данных uint32_t DataChecksumSize ; uint32_t DataChecksum [ 32 ]; uint64_t XMLOffset ; // Положение списка свойств XML в файле uint64_t XMLLength ; uint8_t Reserved1 [ 120 ]; uint32_t ChecksumType ; // Основная контрольная сумма uint32_t ChecksumSize ; uint32_t Checksum [ 32 ]; uint32_t ImageVariant ; // Неизвестно, обычно 1 uint64_t SectorCount ; uint32_t reserved2 ; uint32_t reserved3 ; uint32_t reserved4 ; } __attribute__ (( packed , scalar_storage_order ( "big-endian" ))) UDIFResourceFile ;                                                                                    

XML plist содержит blkxключ (blocks) с информацией о том, как выделяется предыдущая ветка данных. Основные данные хранятся в блоке base64 с использованием таблиц, идентифицированных магическим 'mish'. Эта 'mish'структура содержит таблицу о блоках данных, а также положение и длину каждого «куска» (обычно только один кусок, но сжатие создаст больше). [10] Информация о ветке данных и ресурсов, вероятно, унаследована от NDIF.

Шифрование

Уровень шифрования существует в двух версиях. Версия 1 имеет трейлер в конце файла, а версия 2 (по умолчанию с OS X 10.5) помещает его в начало. Является ли шифрование слоем снаружи или внутри метаданных blkx(UDIF) неясно из документации по обратному проектированию, но, судя по vfcrackдемонстрации, он, вероятно, снаружи. [8]

Коммунальные услуги

Есть несколько вариантов извлечения файлов или монтирования фирменного формата Apple Disk Image. Вот некоторые кроссплатформенные утилиты преобразования:

  • dmg2img изначально был написан на Perl ; однако версия Perl больше не поддерживается, и проект был переписан на C . Он извлекает необработанный образ диска из DMG, не обрабатывая файловую систему внутри. Сжатые изображения UDIF ADC (UDCO) поддерживаются с версии 1.5. [11]
  • DMGEXtractor написан на Java с графическим пользовательским интерфейсом (GUI) и поддерживает более продвинутые функции dmg, включая зашифрованные изображения AES-128, но не изображения UDCO. [12]
  • Sleuth Kit . Поддерживает только несжатый формат DMG, HFS+ и APFS.

Большинство файлов dmg не зашифрованы. Поскольку метаданные dmg находятся в конце, программа, не понимающая файлы dmg, может, тем не менее, прочитать их, как если бы это был обычный образ диска, если внутри есть поддержка файловой системы. Инструменты с такой емкостью включают:

  • Кроссплатформенность: 7-zip (HFS/HFS+), PeaZip (HFS/HFS+).
  • Windows: UltraISO , IsoBuster , MacDrive (HFS/HFS+). [13]
  • Unix-подобные: cdrecord и mount(например ). [14] [15]mount -o loop,ro -t hfsplus imagefile.dmg /mnt/mountpoint

Инструменты со специальной поддержкой DMG включают:

  • Окна:
    • Transmac может обрабатывать как файлы UDIF .dmg, так и sparsebundles, а также HFS/HFS+ и APFS. Неизвестно, обрабатывает ли он шифрование. [16] Его можно использовать для создания загрузочных установщиков macOS под Windows. [17]
    • Существует также бесплатная программа просмотра образов дисков Apple DMG, но неизвестно, насколько она на самом деле поддерживает данные. [18]
  • Unix-подобные:
    • darling-dmg — это модуль FUSE, позволяющий легко монтировать файлы DMG в Linux. Он поддерживает UDIF и HFS/HFS+. [19]

Смотрите также

Ссылки

  1. ^ abcdefgh "hdiutil(1) Mac OS X Manual Page". Архивировано из оригинала 2016-05-14 . Получено 2016-05-14 .
  2. ^ ab "Mac OS X: использование файлов образа диска Disk Copy". Архивировано из оригинала 2013-12-19 . Получено 2013-04-25 .
  3. ^ hdiutil(1)  –  Руководство по основным командам Darwin и macOS
  4. ^ "Re: Некоторые приложения отказываются запускаться в 10.2.8! (OT, но очень важно)". Архивировано из оригинала 2014-01-17.
  5. ^ "Guides". Apple. Архивировано из оригинала 2009-03-06 . Получено 2010-10-27 .
  6. ^ "DART 1.5.3: История изменений версий". Архивировано из оригинала 2013-12-19 . Получено 2013-04-25 .
  7. ^ "Загрузки программного обеспечения: форматы и распространенные сообщения об ошибках". Архивировано из оригинала 2010-12-24 . Получено 2009-05-06 .
  8. ^ ab "VileFault". 29.12.2006. Архивировано из оригинала 09.01.2007 . Получено 27.10.2010 .
  9. ^ Майкл Цай (2015-10-07). "Образы дисков LZFSE в El Capitan". mjtsai.com . Архивировано из оригинала 2017-04-09 . Получено 2017-04-09 .
  10. ^ ab "Demystifying the DMG File Format". Архивировано из оригинала 2013-03-17.
  11. ^ "dmg2img". Архивировано из оригинала 29 ноября 2010 года . Получено 2010-10-27 .
  12. ^ "DMGExtractor". catacombae.org . Архивировано из оригинала 2011-01-02 . Получено 2011-01-03 .
  13. ^ MacDrive Features / Boot Camp / Системные требования /. "Домашняя страница MacDrive". Mediafour. Архивировано из оригинала 4 октября 2010 года . Получено 27 октября 2010 года .
  14. ^ "Как конвертировать DMG в ISO в Windows, Linux и Mac". 21 июня 2008 г. Архивировано из оригинала 2010-03-07.
  15. ^ "Конвертировать DMG в ISO с помощью PowerISO". 29 января 2009 г. Архивировано из оригинала 2009-05-02 . Получено 2009-02-15 .
  16. ^ "О TransMac для Windows". www.acutesystems.com .
  17. ^ "Convert". www.winytips.com . winytips. 24 декабря 2018 г. Получено 5 мая 2020 г.
  18. ^ Оливия Дехавиленд (2015-03-03). "Apple DMG Disk Image Viewer". DataForensics.org. Архивировано из оригинала 2015-04-02 . Получено 2015-03-10 .
  19. ^ "darling-dmg". darling-dmg . Получено 29 марта 2015 г. .
  • Apple Developer Connection. Краткий обзор PackageMaker и Installer
  • O'Reilly Mac DevCenter Совет 16-5. Создание образа диска из каталога в терминале
Взято с "https://en.wikipedia.org/w/index.php?title=Apple_Disk_Image&oldid=1196530547"