417a11
diff --git a/magic/Magdir/msdos b/magic/Magdir/msdos
417a11
index 8f3e532..21f055d 100644
417a11
--- a/magic/Magdir/msdos
417a11
+++ b/magic/Magdir/msdos
417a11
@@ -820,6 +820,21 @@
417a11
 >>24	bequad	x	\b, %lld bytes
417a11
 >>32	belong	1	\b, AES-encrypted
417a11
 
417a11
+>4	belong	3	(v3)
417a11
+# Using the existence of the Backing File Offset to determine whether
417a11
+# to read Backing File Information
417a11
+>>8	bequad  >0	 \b, has backing file
417a11
+# Note that this isn't a null-terminated string; the length is actually
417a11
+# (16.L). Assuming a null-terminated string happens to work usually, but it
417a11
+# may spew junk until it reaches a \0 in some cases. Also, since there's no
417a11
+# .Q modifier, we just use the bottom four bytes as an offset. Note that if
417a11
+# the file is over 4G, and the backing file path is stored after the first 4G,
417a11
+# the wrong filename will be printed. (This should be (8.Q), when that syntax
417a11
+# is introduced.)
417a11
+>>>(12.L)	 string >\0	(path %s)
417a11
+>>24	bequad	x	\b, %lld bytes
417a11
+>>32	belong	1	\b, AES-encrypted
417a11
+
417a11
 >4	default x	(unknown version)
417a11
 
417a11
 0	string/b	QEVM		QEMU suspend to disk image