Apple ディスクイメージ

Apple ディスクイメージ
アイコンは、一般的なファイル アイコン内の内部ハード ドライブを表します。
ファイル名拡張子
.dmg、.smi、.img
インターネットメディアの種類
アプリケーション/x-apple-diskimage
統一型識別子(UTI)
  • com.apple.disk-image
  • com.apple.disk-image-smi
開発者アップル社
フォーマットの種類ディスクイメージ

Apple [ 1 ]ディスクイメージは、 macOSオペレーティングシステムで一般的に使用されているディスクイメージ形式です。Appleディスクイメージを開くと、Finder内にボリュームとしてマウントされます。

Appleディスクイメージは、 Mac OS XのUniversal Disk Image Format(UDIF)やMac OS 9のNew Disk Image Format(NDIF)など、複数の独自ディスクイメージ形式のいずれかに基づいて構成されます。Appleディスクイメージファイルの名前には通常、「.dmg」という拡張子が付きます。ディスクイメージは、ディスクまたはフォルダの内容の圧縮コピーです。ディスクイメージの内容を確認するには、まずディスクイメージを開いて、デスクトップまたはFinderウィンドウに表示する必要があります。

特徴

Apple ディスクイメージ ファイルは、MIME タイプapplication /x-apple-diskimageで公開されます。

これらのディスクイメージには異なるファイルシステムを含めることができ、複数のファイルシステムを含むハイブリッド光メディアイメージの作成もサポートされています。[ 1 ]サポートされているファイルシステムには、階層ファイルシステム(HFS)、HFS Plus(HFS+)、ファイルアロケーションテーブル(FAT)、ISO 9660ユニバーサルディスクフォーマット(UDF)などがあります。[ 1 ] [ 2 ]

Appleディスクイメージは、macOSにバンドルされているユーティリティ、具体的にはMac OS X v10.2以前の「ディスクコピー」 、 Mac OS X v10.3以降の「ディスクユーティリティ」を使用して作成できます。これらのユーティリティは、AppleディスクイメージファイルをCDやDVDの書き込みイメージとして使用することもできます。また、ユーティリティを使用してコマンドラインインターフェースからディスクイメージファイルを管理することもできます。[ 3 ]hdiutil

Mac OS X v10.2.3では、Appleは圧縮ディスクイメージ[ 4 ]とインターネット対応ディスクイメージを導入しました。これらはAppleのユーティリティ「ディスクコピー」で使用でき、後に10.3でディスクユーティリティに統合されました。ディスクコピーアプリケーションには、ディスクイメージをマウントする前に、多言語のソフトウェア使用許諾契約書を表示する機能がありました。ユーザーがライセンスに同意しない限り、イメージはマウントされません。[ 5 ]

Apple ディスクイメージは、安全なパスワード保護とファイル圧縮を可能にするため、セキュリティとファイル配布の両方の機能を提供します。このようなディスクイメージは、インターネット経由でソフトウェアを配布するために最もよく使用されます。

歴史

Appleがディスクイメージ形式を開発したのは、 Macアプリケーションで使用されるリソースフォークが、インターネットのような混在ネットワーク上で容易に転送できないことが原因でした。Mac OS Xの登場によりリソースフォークの使用は減少しましたが、ディスクイメージは依然として標準的なソフトウェア配布形式として残っていました。ディスクイメージを使用することで、配布者はFinderのウィンドウ表示を制御でき、これはユーザーにアプリケーションを適切なフォルダにコピーするよう指示する際によく使用されます。

フロッピーディスクイメージのみを扱うことを目的とした以前のバージョンのフォーマットは、これらのイメージを扱うために使用されたディスクコピーユーティリティのバージョンにちなんで、通常「ディスクコピー4.2」フォーマットと呼ばれます。 [ 1 ]フロッピーディスクイメージの圧縮をサポートする同様のフォーマットはDARTと呼ばれます。[ 1 ] [ 6 ]

NDIF(New Disk Image Format)は、 Mac OS 9の以前のデフォルトのディスクイメージフォーマットでした。[ 1 ]このフォーマットのディスクイメージは、一般的に.img ( raw .imgディスクイメージファイルと混同しないでください)または.smiファイル拡張子を持ちます。.smi拡張子のファイルは、実際には埋め込まれたディスクイメージをマウントするアプリケーションであり、「自己マウントイメージ」と呼ばれ、Mac OS 9以前のOSでのみ使用できます[ 7 ] [ 2 ]

ユニバーサルディスクイメージフォーマット(UDIF)は、Mac OS Xネイティブディスクイメージフォーマットです。このフォーマットのディスクイメージは通常、.dmg拡張子を持ちます。[ 1 ]

ファイル形式

Appleはこのフォーマットに関する資料を一切公開していないが、フォーマットの一部をリバースエンジニアリングする試みは成功している。暗号化層は、VileFault(FileVaultスプーナー語)と呼ばれる実装でリバースエンジニアリングされた。[ 8 ]

Appleのディスクイメージファイルは、基本的には生のディスクイメージ(つまりブロックデータ)であり、メタデータがいくつか追加されています。オプションで、圧縮と暗号化を提供する1つまたは2つのレイヤーが適用されます。Appleでは、これらのレイヤーはCUDIFEncodingとCEncryptedEncodingと呼ばれます。[ 1 ]hdiutil

UDIFは内部的にADC(Appleの古い独自圧縮形式)、zlibbzip2 ( Mac OS X v10.4以降)、LZFSE ( Mac OS X v10.11以降)、[ 9 ]およびlzma ( macOS v10.15以降)圧縮をサポートしています。

メタデータ

UDIFメタデータは、ディスクイメージの末尾、データの後に続きます。このトレーラーは、以下のC構造体を使用して記述できます。[ 10 ]すべての値はビッグエンディアンPowerPCバイトオーダー) です。

typedef struct { uint8_t Signature [ 4 ]; // マジック '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__ ((パックスカラーストレージオーダー( "ビッグエンディアン" ))) UDIFResourceFile ;             

XML plist にはblkx(blocks) キーが含まれており、このキーには先行するデータフォークの割り当て方法に関する情報が含まれています。メインデータは、マジックで識別されるテーブルを使用して、Base64 ブロックに格納されます'mish'。この'mish'構造には、データブロックと各「チャンク」(通常は1つのチャンクのみですが、圧縮により複数のチャンクが作成されます)の位置と長さに関するテーブルが含まれています。[ 10 ]データフォークとリソースフォークの情報は、おそらくNDIFから継承されています。

暗号化

暗号化レイヤーには2つのバージョンがあります。バージョン1ではトレーラーがファイルの末尾に配置され、バージョン2(OS X 10.5以降のデフォルト)ではトレーラーがファイルの先頭に配置されます。暗号化がblkxメタデータ(UDIF)の外側のレイヤーなのか内側のレイヤーなのかは、リバースエンジニアリングされたドキュメントからは不明ですが、vfcrackデモから判断すると、おそらく外側にあると思われます。[ 8 ]

ユーティリティ

Apple独自のディスクイメージ形式からファイルを抽出したりマウントしたりする方法はほとんどありません。クロスプラットフォーム対応の変換ユーティリティには以下のようなものがあります。

  • dmg2imgは元々Perlで書かれていましたが、Perl版はメンテナンスされなくなり、プロジェクトはCで書き直されました。DMGから生のディスクイメージを抽出しますが、内部のファイルシステムは扱いません。UDIF ADC圧縮イメージ(UDCO)はバージョン1.5以降でサポートされています。[ 11 ]
  • DMGEXtractorはJavaで書かれており、グラフィカルユーザーインターフェース(GUI)を備えており、AES-128で暗号化された画像を含むdmgのより高度な機能をサポートしていますが、UDCO画像はサポートしていません。[ 12 ]
  • Sleuth Kit。非圧縮の DMG 形式、HFS+、APFS のみを処理します。

ほとんどのdmgファイルは暗号化されていません。dmgメタデータはファイルの最後にあるため、dmgファイルを理解できないプログラムでも、内部のファイルシステムがサポートされている限り、通常のディスクイメージのように読み取ることができます。このような機能を持つツールには、以下のものがあります。

特定の dmg をサポートするツールには次のものがあります:

  • ウィンドウズ:
    • Transmacは、UDIF形式の.dmgファイルとスパースバンドル、そしてHFS/HFS+とAPFSを扱うことができます。暗号化に対応しているかどうかは不明です。[ 16 ] Windows上で起動可能なmacOSインストーラーを作成するのに使用できます。[ 17 ]
    • 無料のApple DMGディスクイメージビューアも存在しますが、実際にどの程度サポートしているかは不明です。[ 18 ]
  • Unixライク:
    • darling-dmgは、 Linux上でDMGファイルを簡単にマウントできるようにするFUSEモジュールです。UDIFとHFS/HFS+をサポートしています。[ 19 ]

参照

参考文献

  1. ^ a b c d e f g h「hdiutil(1) Mac OS X マニュアルページ」。2016年5月14日時点のオリジナルよりアーカイブ。 2016年5月14日閲覧
  2. ^ a b「Mac OS X: Disk Copyディスクイメージファイルの使用」 。 2013年12月19日時点のオリジナルよりアーカイブ2013年4月25日閲覧。
  3. ^hdiutil(1)  –  DarwinmacOSの一般コマンドマニュアル
  4. ^ 「Re: 一部のアプリが10.2.8で起動しません!(OTですが、非常に重要です)」 。2014年1月17日時点のオリジナルよりアーカイブ
  5. ^ 「ガイド」 . Apple. 2009年3月6日時点のオリジナルよりアーカイブ2010年10月27日閲覧。
  6. ^ 「DART 1.5.3: バージョン変更履歴」2013年12月19日時点のオリジナルよりアーカイブ2013年4月25日閲覧。
  7. ^ 「ソフトウェアダウンロード:フォーマットと一般的なエラーメッセージ」2010年12月24日時点のオリジナルよりアーカイブ2009年5月6日閲覧。
  8. ^ a b "VileFault" . 2006年12月29日. 2007年1月9日時点のオリジナルよりアーカイブ2010年10月27日閲覧。
  9. ^ Michael Tsai (2015年10月7日). 「El CapitanのLZFSEディスクイメージ」 . mjtsai.com . 2017年4月9日時点のオリジナルよりアーカイブ。 2017年4月9日閲覧
  10. ^ a b「DMGファイル形式の謎を解明する」 。2013年3月17日時点のオリジナルよりアーカイブ
  11. ^ "dmg2img" . 2010年11月29日時点のオリジナルよりアーカイブ2010年10月27日閲覧。
  12. ^ "DMGExtractor" . catacombae.org . 2011年1月2日時点のオリジナルよりアーカイブ2011年1月3日閲覧。
  13. ^ MacDriveの機能 / Boot Camp / システム要件 / 「MacDriveホームページ」 Mediafour。2010年10月4日時点のオリジナルよりアーカイブ。 2010年10月27日閲覧
  14. ^ David (2008年6月21日). 「Windows、Linux、MacでDMGをISOに変換する方法」 . 2010年3月7日時点のオリジナルよりアーカイブ。
  15. ^ 「PowerISOを使ってDMGをISOに変換する」 2009年1月29日。 2009年5月2日時点のオリジナルよりアーカイブ2009年2月15日閲覧。
  16. ^TransMac for Windowsについてwww.acutesystems.com
  17. ^ 「変換」 . www.winytips.com . winytips. 2018年12月24日. 2020年5月5日閲覧
  18. ^ Olivia Dehaviland (2015年3月3日). 「Apple DMGディスクイメージビューア」 . DataForensics.org. 2015年4月2日時点のオリジナルよりアーカイブ。 2015年3月10日閲覧
  19. ^ "darling-dmg" . darling-dmg . 2015年3月29日閲覧