@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

VHDディスクの親子関係識別

仕様書(P5)に書いてあるのですが、忘れそうなのでメモ。
それぞれの VHD ディスクには Unique ID が設定されており、これは Hard Disk Footer Format に記載されています。フッタはファイルの先頭にもミラーされているので、ファイルの先頭部分でいくと、オフセット位置68バイト(FO 68)の位置に、16バイト(128bit)分の長さで記載されています。

UUID例:
\xEC\x15\xC8\x1A\x22\x9C\x45\x3D\xAC\x47\x24\x4F\xEF\xF6\xD4\x4F

差分ディスクの場合、Dynamic Disk Header Format のデータに、Parent Unique ID と Parent Time Stamp が記録されています。差分ディスクの Dynamic Disk Header Format で親の VHD ディスクの UUID とタイムスタンプを確認すれば、どれと関連しているのか識別できます。
Dynamic Disk Header は通常ダイナミックまたは差分 VHD ディスクファイルの先頭から 512byte の位置から開始されるみたいですので、ファイルオフセット 552バイト(FO 552)の位置から 16バイト分(UUID)を確認することになります。ここ(FO 576)には Parent Unicode Name も入っているので、親の名前も確認できます。