[File] [PATCH] Magdir/ole2compounddocs for Easy CD Creator Layout *.cl2 *..cl4

Jörg Jenderek joerg.jen.der.ek at gmx.net
Tue May 21 14:46:53 UTC 2024


Hello,

some days ago i must handle an old CD-ROM. This contains application to
burn CD-ROM or images for them. Some parts of have file name suffix cl2
or cl4. The application is called like Adaptec Easy CD Creator with
version 4.02b.

When running file command version 5.45 on such CD-ROM layouts i get an
output like:
MY_CD3.cl4:    Composite Document File V2 Document
	       , Cannot read section info
MY_CD4.cl4:    Composite Document File V2 Document
	       , Cannot read section info
My-layout.cl2: Composite Document File V2 Document
	       , Cannot read section info

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

MY_CD3.cl4:    OLE 2 Compound Document, v3.62, SecID 0x2
	       , Mini FAT start sector 0x4
	       : UNKNOWN, clsid
	       0x0293c3a90a77d111893f00802964b632
	       {A9C39302-770A-11D1-893F-00802964B632}
	       with names
	       Contents   \377\377\3 \377\377\3 \377\377\3
MY_CD4.cl4:    OLE 2 Compound Document, v3.62, SecID 0x2
	       , Mini FAT start sector 0x4
	       : UNKNOWN, clsid
	       0x0293c3a90a77d111893f00802964b632
	       {A9C39302-770A-11D1-893F-00802964B632}
	       with names
	       Contents   \377\377\3 \377\377\3 \377\377\3
My-layout.cl2: OLE 2 Compound Document, v3.62, SecID 0x2
	       , 9 FAT sectors, 0 Mini FAT sector
	       : UNKNOWN
	       with names
	       Contents   \377\377\3 ! A

With option --extension only 3 byte sequence ??? is shown.
With option -i only generic application/x-ole-storage is shown.

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"  with application/x-ole-storage mime type by docfile.trid.xml.
The examples are described with high priority as "Easy CD Creator
Layout" by cl4.trid.xml with generic application/octet-stream mime type
and 3 possible file name extensions (.CL2/CL3/CL4 See appended
trid-v-cl2.txt.gz).

For comparison reason i also run the file format identification
utility DROID ( See https://sourceforge.net/projects/droid/). This
identifies all layouts only generic as "OLE2 Compound Document"
by PUID fmt/111.

Luckily with information given by the other tools i also found a
page about Easy CD Creator on file formats archive team web site. There
also links for software are listed. That informations are expressed by
comment lines inside Magdir/ole2compounddocs like:
# URL:		http://fileformats.archiveteam.org/wiki/Easy_CD_Creator
# Reference:	http://mark0.net/download/triddefs_xml.7z
#		defs/c/cl4.trid.xml

The layout file 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 cl4 examples have a registered
Root storage object CLSID and this value is nil for cl2 samples. In
first case file command display afterwords this information by a phrase
like clsid 0x0293c3a90a77d111893f00802964b632 or in curly brace notation
as {A9C39302-770A-11D1-893F-00802964B632}.  That means that for cl4
samples in branch handling non null CLSID GUID lines must be added. The
last entry was Autodesk Inventor Part (*.ipt). So i add afterwards lines
for my inspected examples. That looks like:
  >>88 	ubequad		0x893f00802964b632	: Easy
  >>>80 	ubequad		0x0293c3a90a77d111	CD Creator 4 Layout
!:mime	application/x-corel-cl4
!:ext	cl4
Instead of generic application/x-ole-storage mime type i show an user
defined one. In documents also suffix cl3 is mentioned. Unfortunately i
found no such examples. So i do not know if this third suffix is matched
by branch for cl2 or cl4. So i mentioned it only in comment line.

For cl2 suffix that means that in branch handling CLSID GUID 0 code must
be added. The last entry was for PageMaker. So i add afterwards lines
for my inspected cl2 examples. Luckily file command print some directory
entry names. In all examples this is word "Contents" encoded as UTF-16.
This characteristic is also found in global string section inside TrID
definition by line like:
		<String>C'O'N'T'E'N'T'S</String>
So by first additional line i look for second directory entry with
UTF-16 encoded name Contents. That looks like:
  >>>>128 lestring16	Contents	: Easy CD Creator 2 Layout
!:mime	application/x-corel-cl2
!:ext	cl2
Instead of generic application/x-ole-storage mime type i show an user
defined one. TrID definition also checks for 3 strings (SesnDescriptor
CD_PLUS 0090).

After applying the above mentioned modifications by patch
file-ole2compounddocs-cl2.diff, then all my inspected Easy CD Creator
layout examples are now recognized. This now looks with -e cdf option like:

MY_CD3.cl4:    OLE 2 Compound Document, v3.62, SecID 0x2
	       , Mini FAT start sector 0x4
	       : Easy CD Creator 4 Layout
MY_CD4.cl4:    OLE 2 Compound Document, v3.62, SecID 0x2
	       , Mini FAT start sector 0x4
	       : Easy CD Creator 4 Layout
My-layout.cl2: OLE 2 Compound Document, v3.62, SecID 0x2
	       , 9 FAT sectors, 0 Mini FAT sector
	       : Easy CD Creator 2 Layout

With -e cdf and --extension option this now looks like:
MY_CD3.cl4:    cl4
MY_CD4.cl4:    cl4
My-layout.cl2: cl2

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

With best wishes,
Jörg Jenderek
--
Jörg Jenderek
-------------- next part --------------
--- file-5.41/magic/Magdir/ole2compounddocs.old	2021-09-07 09:39:31 +0000
+++ file-5.41/magic/Magdir/ole2compounddocs	2022-01-11 19:53:37 +0000
@@ -260,2 +260,20 @@
 >>>>>>128 	lestring16	Pictures		with pictures
+#
+# URL:		http://fileformats.archiveteam.org/wiki/PageMaker
+# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/p
+#		pagemaker-generic.trid.xml
+#		pagemaker-pm6.trid.xml
+#		pagemaker-pm65.trid.xml
+#		pmd-pm7.trid.xml
+# From:		Joerg Jenderek
+# Note:		since version 6 embedd as stream with PageMaker name the "old" format handled by ./wordprocessors
+#		verified by Michal Mutl Structured Storage Viewer `SSView.exe brochus.pt6`
+# Second directory entry name PageMaker
+>>>>128 	lestring16	PageMaker		:
+# look for magic of "old" PageMaker like in 02TEMPLT.T65
+>>>>>0	search/0xa900/s	\0\0\0\0\0\0\xff\x99
+# GRR: jump to PageMaker stream and inspect it by sub routine PageMaker of ./wordprocessors failed with wrong version!
+#>>>>>>&0	use		PageMaker
+# THIS WORKS PARTLY!
+>>>>>>&0	indirect	x
 #	remaining null clsid
@@ -269,2 +287,5 @@
 !:mime	application/x-ole-storage
+# according to file version 5.41 with -e soft option
+#!:mime	application/CDFV2
+#!:ext	???
 #	look for known clsid GUID
@@ -563,6 +584,12 @@
 # remaining non null clsid
->>88 	default		x			: UNKNOWN
+>>88 	default		x
+# GRR: check again for non null clsid because wrong when called by indirect directive
+>>>88 	ubequad		!0			: UNKNOWN
+# https://reposcope.com/mimetype/application/x-ole-storage
 !:mime	application/x-ole-storage
->>>80 	ubequad		!0			\b, clsid %#16.16llx
->>>88 	ubequad		x			\b%16.16llx
+# according to file version 5.41 with -e soft option
+#!:mime	application/CDFV2
+#!:ext	???
+>>>>80 	ubequad		!0			\b, clsid %#16.16llx
+>>>>88 	ubequad		x			\b%16.16llx
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: file-5.41-ole2compounddocs-pagemaker.diff.sig
Type: application/octet-stream
Size: 1044 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20240521/003666d7/attachment.obj>
-------------- next part --------------
-- 
File mailing list
File at astron.com
https://mailman.astron.com/mailman/listinfo/file

-------------- next part --------------
A non-text attachment was scrubbed...
Name: trid-v-cl2.txt.gz
Type: application/x-gzip
Size: 517 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20240521/003666d7/attachment.bin>
-------------- next part --------------
--- file-master/magic/Magdir/ole2compounddocs.old	2023-09-11 17:43:30.718795400 +0200
+++ file-master/magic/Magdir/ole2compounddocs	2024-05-21 04:33:10.642127500 +0200
@@ -316,12 +316,24 @@
 # look for magic of "old" PageMaker like in 02TEMPLT.T65
 >>>>>0	search/0xa900/s	\0\0\0\0\0\0\xff\x99
 # GRR: jump to PageMaker stream and inspect it by sub routine PageMaker of ./wordprocessors failed with wrong version!
 #>>>>>>&0	use		PageMaker
 # THIS WORKS PARTLY!
 >>>>>>&0	indirect	x
+#
+# URL:		http://fileformats.archiveteam.org/wiki/Easy_CD_Creator
+# From:		Joerg Jenderek
+# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/c/cl4.trid.xml
+# Note:		called "Easy CD Creator Layout" by TrID
+#		"newer" version 4 contain a clsid
+# Second directory entry name Contents
+>>>>128 	lestring16	Contents		: Easy CD Creator 2 Layout
+# contains also 3 strings SesnDescriptor CD_PLUS 0090
+#!:mime	application/x-ole-storage
+!:mime	application/x-corel-cl2
+!:ext	cl2
 #	remaining null clsid
 >>>>128 	default		x
 >>>>>0 	use		ole2-unknown
 # look for CLSID where "second" part is 0
 >>>80 	ubequad		!0x0
 #
@@ -739,12 +751,28 @@
 # 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
+# From:		Joerg Jenderek
+# URL:		http://fileformats.archiveteam.org/wiki/Easy_CD_Creator
+# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/c/cl4.trid.xml
+# Note:		called "Easy CD Creator Layout" by TrID,
+#		"Easy CD Creator 4" by CREATR32.exe and "Easy CD Creator Document" on Windows
+#		verified by Michal Mutl Structured Storage Viewer `SSView.exe MY_CD3.cl4`
+#		verified partly by libolecf-utils `olecfinfo -v MY_CD4.cl4`
+#		created by Adaptec Easy CD Creator 4.02b
+#		"older" version 2 contain no clsid
+>>88 	ubequad		0x893f00802964b632	: Easy
+>>>80 	ubequad		0x0293c3a90a77d111	CD Creator 4 Layout
+#!:mime	application/x-ole-storage
+!:mime	application/x-corel-cl4
+!:ext	cl4
+# maybe also suffix cl3
+#!:ext	cl3/cl4
 # 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: file-ole2compounddocs-cl2.diff.sig
Type: application/octet-stream
Size: 1299 bytes
Desc: not available
URL: <https://mailman.astron.com/pipermail/file/attachments/20240521/003666d7/attachment-0001.obj>


More information about the File mailing list