[File] [PATCH] Magdir/ole2compounddocs Autodesk Inventor Part *.IPT described only generic

Jörg Jenderek joerg.jen.der.ek at gmx.net
Sun Jul 30 16:55:21 UTC 2023


Hello,

some days ago i handles some 3D models with file name extension IPT.

When running file command version 5.45 with -e cdf option on such
examples i get an output like:

bottom.ipt: OLE 2 Compound Document, v3.62, SecID 0x1,
	    3 FAT sectors, Mini FAT start sector 0x3, 3 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V6 RSeDb
side1.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V5 RSeDb
side2.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V4 RSeDb
side3.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    3 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V5 RSeDb
side4.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V5 RSeDb
top.ipt:    OLE 2 Compound Document, v3.62, SecID 0x1,
	    4 FAT sectors, Mini FAT start sector 0x3, 3 Mini FAT sectors
	    : UNKNOWN, clsid 0x90b4294db249d01193c37e0706000000
	    {4D29B490-49B2-11D0-93C3-7E0706000000} with names
	    RSeStorage RSeEmbeddings Templates RefdFiles V7 RSeDb

Furthermore only generic mime type application/x-ole-storage is
shown with -i and -e cdf option. With option --extension only 3 byte
sequence ??? is shown.

When running file command with -e soft or no extra option for all
examples i get a output like:

bottom.ipt: Composite Document File V2 Document
	    , Cannot read section info
side1.ipt:  Composite Document File V2 Document
	    , Cannot read section info
side2.ipt:  Composite Document File V2 Document
	    , Cannot read section info
side3.ipt:  Composite Document File V2 Document
	    , Cannot read section info
side4.ipt:  Composite Document File V2 Document
	    , Cannot read section info
top.ipt:    Composite Document File V2 Document
	    , Cannot read section info

For comparison reason i also run the file format identification
utility DROID ( See https://sourceforge.net/projects/droid/). The
examples are only described generic as "OLE2 Compound Document Format"
by fmt/111 Signature.

For comparison reason i run the file format identification utility
TrID ( See https://mark0.net/soft-trid-e.html). This identifies also
all examples with low priority as "Generic OLE2 / Multistream
Compound" by docfile.trid.xml. All examples are described as "Autodesk
Inventor Part" with IPT file name extension by ipt.trid.xml (See
appended trid-v-ipt.txt.gz).

Luckily with information given by the other tools i also found a
page about Autodesk Inventor on Wikipedia and page about IPT on file
formats archive team web site.
There it is mow written that is is based on Microsoft Compound File
format. Following that internal link jumps to that page. There are
also displayed CLSID is mentioned.
That informations are now expressed by additional comment lines inside
Magdir/ole2compounddocs like:
# URL:		http://fileformats.archiveteam.org/wiki/IPT
#		https://en.wikipedia.org/wiki/Autodesk_Inventor
# Reference:	http://mark0.net/download/triddefs_xml.7z
#		defs/i/ipt.trid.xml

The IPT examples are recognized as "OLE 2 Compound Document"
by starting bytes (\320\317\021\340\241\261\032\341) at the beginning
inside Magdir/ole2compounddocs. Obviously there exist no code
fragment to do sub class identification. So the examples are
described as "UNKNOWN". Furthermore the examples have a registered
Root storage object CLSID. That value is shown as
0x90b4294db249d01193c37e0706000000 or expressed in standard curly
braces expression by {4D29B490-49B2-11D0-93C3-7E0706000000}.
That means that in branch handling non null CLSID GUID lines must be
added. The last entry was Autodesk 3ds Max (*.max). So i add afterwards
lines for my inspected examples. That looks like:
  >>88 	ubequad		0x93c37e0706000000	: Autodesk
  >>>80 	ubequad		0x90b4294db249d011	Inventor Part
!:mime	model/x-autodesk-ipt
!:ext	ipt
I found no official or often used mime type. So i display an user
defined one.

After applying the above mentioned modifications by patch
file-5.45-ole2compounddocs-ipt.diff then all my inspected Autodesk
Inventor Part examples are now described with more details. This now
looks with -e cdf option like:
bottom.ipt: OLE 2 Compound Document, v3.62, SecID 0x1,
	    3 FAT sectors, Mini FAT start sector 0x3, 3 Mini FAT sectors
	    : Autodesk Inventor Part
side1.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : Autodesk Inventor Part
side2.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : Autodesk Inventor Part
side3.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    3 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : Autodesk Inventor Part
side4.ipt:  OLE 2 Compound Document, v3.62, SecID 0x1,
	    2 FAT sectors, Mini FAT start sector 0x3, 4 Mini FAT sectors
	    : Autodesk Inventor Part
top.ipt:    OLE 2 Compound Document, v3.62, SecID 0x1,
	    4 FAT sectors, Mini FAT start sector 0x3, 3 Mini FAT sectors
	    : Autodesk Inventor Part

I hope my diff file can be applied in future version of file
utility.

Unfortunately the IPT file name suffix is also used for other file formats.

With best wishes,
Jörg Jenderek
--
Jörg Jenderek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: trid-v-ipt.txt.gz
Type: application/x-gzip
Size: 540 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20230730/9459fd32/attachment.bin>
-------------- next part --------------
--- file-5.45/magic/Magdir/ole2compounddocs.old	2023-05-21 18:04:05.000000000 +0200
+++ file-5.45/magic/Magdir/ole2compounddocs	2023-07-30 03:48:46.128876400 +0200
@@ -726,16 +726,27 @@
 >>88 	ubequad		0x9fed04143144cc1e	: Autodesk
 >>>80 	ubequad		0x7b8cdd1cc081a045	3ds Max
 #!:mime	application/x-ole-storage
 !:mime	model/x-autodesk-max
 # like: https://static.free3d.com/models/dropbox/dropbox/sq/A380.7z/A380.max 
 !:ext	max
 # also chr for character file according to DROID https://www.nationalarchives.gov.uk/PRONOM/fmt/978
 #!:ext	max/chr
+# From:		Joerg Jenderek
+# URL:		http://fileformats.archiveteam.org/wiki/IPT
+#		https://en.wikipedia.org/wiki/Autodesk_Inventor
+# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/i/ipt.trid.xml
+# Note:		called "Autodesk Inventor Part" by TrID
+# second, third, fifth and seventh directory entry name like RSeStorage RSeEmbeddings RefdFiles RSeDb
+>>88 	ubequad		0x93c37e0706000000	: Autodesk
+>>>80 	ubequad		0x90b4294db249d011	Inventor Part
+#!:mime	application/x-ole-storage
+!:mime	model/x-autodesk-ipt
+!:ext	ipt
 # remaining non null clsid
 >>88 	default		x
 >>>0 	use		ole2-unknown
 # display information about directory for not detected CDF files
 0	name			ole2-unknown
 >80 	ubequad		x			: UNKNOWN
 # https://reposcope.com/mimetype/application/x-ole-storage
 !:mime	application/x-ole-storage
-------------- next part --------------
A non-text attachment was scrubbed...
Name: file-5.45-ole2compounddocs-ipt.diff.sig
Type: application/octet-stream
Size: 916 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20230730/9459fd32/attachment.obj>


More information about the File mailing list