"Fossies" - the Fresh Open Source Software Archive

Member "file-5.35/magic/Magdir/database" (23 Jun 2018, 22094 Bytes) of package /linux/misc/file-5.35.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "database": 5.33_vs_5.34.

    1 
    2 #------------------------------------------------------------------------------
    3 # $File: database,v 1.54 2018/06/23 16:37:21 christos Exp $
    4 # database:  file(1) magic for various databases
    5 #
    6 # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
    7 #
    8 #
    9 # GDBM magic numbers
   10 #  Will be maintained as part of the GDBM distribution in the future.
   11 #  <downsj@teeny.org>
   12 0	belong	0x13579acd	GNU dbm 1.x or ndbm database, big endian, 32-bit
   13 !:mime	application/x-gdbm
   14 0	belong	0x13579ace	GNU dbm 1.x or ndbm database, big endian, old
   15 !:mime	application/x-gdbm
   16 0	belong	0x13579acf	GNU dbm 1.x or ndbm database, big endian, 64-bit
   17 !:mime	application/x-gdbm
   18 0	lelong	0x13579acd	GNU dbm 1.x or ndbm database, little endian, 32-bit
   19 !:mime	application/x-gdbm
   20 0	lelong	0x13579ace	GNU dbm 1.x or ndbm database, little endian, old
   21 !:mime	application/x-gdbm
   22 0	lelong	0x13579acf	GNU dbm 1.x or ndbm database, little endian, 64-bit
   23 !:mime	application/x-gdbm
   24 0	string	GDBM		GNU dbm 2.x database
   25 !:mime	application/x-gdbm
   26 #
   27 # Berkeley DB
   28 #
   29 # Ian Darwin's file /etc/magic files: big/little-endian version.
   30 #
   31 # Hash 1.85/1.86 databases store metadata in network byte order.
   32 # Btree 1.85/1.86 databases store the metadata in host byte order.
   33 # Hash and Btree 2.X and later databases store the metadata in host byte order.
   34 
   35 0	long	0x00061561	Berkeley DB
   36 !:mime	application/x-dbm
   37 >8	belong	4321
   38 >>4	belong	>2		1.86
   39 >>4	belong	<3		1.85
   40 >>4	belong	>0		(Hash, version %d, native byte-order)
   41 >8	belong	1234
   42 >>4	belong	>2		1.86
   43 >>4	belong	<3		1.85
   44 >>4	belong	>0		(Hash, version %d, little-endian)
   45 
   46 0	belong	0x00061561	Berkeley DB
   47 >8	belong	4321
   48 >>4	belong	>2		1.86
   49 >>4	belong	<3		1.85
   50 >>4	belong	>0		(Hash, version %d, big-endian)
   51 >8	belong	1234
   52 >>4	belong	>2		1.86
   53 >>4	belong	<3		1.85
   54 >>4	belong	>0		(Hash, version %d, native byte-order)
   55 
   56 0	long	0x00053162	Berkeley DB 1.85/1.86
   57 >4	long	>0		(Btree, version %d, native byte-order)
   58 0	belong	0x00053162	Berkeley DB 1.85/1.86
   59 >4	belong	>0		(Btree, version %d, big-endian)
   60 0	lelong	0x00053162	Berkeley DB 1.85/1.86
   61 >4	lelong	>0		(Btree, version %d, little-endian)
   62 
   63 12	long	0x00061561	Berkeley DB
   64 >16	long	>0		(Hash, version %d, native byte-order)
   65 12	belong	0x00061561	Berkeley DB
   66 >16	belong	>0		(Hash, version %d, big-endian)
   67 12	lelong	0x00061561	Berkeley DB
   68 >16	lelong	>0		(Hash, version %d, little-endian)
   69 
   70 12	long	0x00053162	Berkeley DB
   71 >16	long	>0		(Btree, version %d, native byte-order)
   72 12	belong	0x00053162	Berkeley DB
   73 >16	belong	>0		(Btree, version %d, big-endian)
   74 12	lelong	0x00053162	Berkeley DB
   75 >16	lelong	>0		(Btree, version %d, little-endian)
   76 
   77 12	long	0x00042253	Berkeley DB
   78 >16	long	>0		(Queue, version %d, native byte-order)
   79 12	belong	0x00042253	Berkeley DB
   80 >16	belong	>0		(Queue, version %d, big-endian)
   81 12	lelong	0x00042253	Berkeley DB
   82 >16	lelong	>0		(Queue, version %d, little-endian)
   83 
   84 # From Max Bowsher.
   85 12	long	0x00040988	Berkeley DB
   86 >16	long	>0		(Log, version %d, native byte-order)
   87 12	belong	0x00040988	Berkeley DB
   88 >16	belong	>0		(Log, version %d, big-endian)
   89 12	lelong	0x00040988	Berkeley DB
   90 >16	lelong	>0		(Log, version %d, little-endian)
   91 
   92 #
   93 #
   94 # Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
   95 0	string/b	RRD\0		RRDTool DB
   96 >4	string/b	x		version %s
   97 
   98 >>10	short		!0		16bit aligned
   99 >>>10	bedouble	8.642135e+130	big-endian
  100 >>>>18	short		x		32bit long (m68k)
  101 
  102 >>10	short		0
  103 >>>12	long		!0		32bit aligned
  104 >>>>12	bedouble	8.642135e+130	big-endian
  105 >>>>>20 long		0		64bit long
  106 >>>>>20 long		!0		32bit long
  107 >>>>12	ledouble	8.642135e+130	little-endian
  108 >>>>>24 long		0		64bit long
  109 >>>>>24 long		!0		32bit long (i386)
  110 >>>>12	string		\x43\x2b\x1f\x5b\x2f\x25\xc0\xc7	middle-endian
  111 >>>>>24 short		!0		32bit long (arm)
  112 
  113 >>8	quad		0		64bit aligned
  114 >>>16	bedouble	8.642135e+130	big-endian
  115 >>>>24	long		0		64bit long (s390x)
  116 >>>>24	long		!0		32bit long (hppa/mips/ppc/s390/SPARC)
  117 >>>16	ledouble	8.642135e+130	little-endian
  118 >>>>28	long		0		64bit long (alpha/amd64/ia64)
  119 >>>>28	long		!0		32bit long (armel/mipsel)
  120 
  121 #----------------------------------------------------------------------
  122 # ROOT: file(1) magic for ROOT databases
  123 #
  124 0       string  root\0  ROOT file
  125 >4      belong  x       Version %d
  126 >33     belong  x       (Compression: %d)
  127 
  128 # XXX: Weak magic.
  129 # Alex Ott <ott@jet.msk.su>
  130 ## Paradox file formats
  131 #2	  leshort	0x0800	Paradox
  132 #>0x39	  byte		3	v. 3.0
  133 #>0x39	  byte		4	v. 3.5
  134 #>0x39	  byte		9	v. 4.x
  135 #>0x39	  byte		10	v. 5.x
  136 #>0x39	  byte		11	v. 5.x
  137 #>0x39	  byte		12	v. 7.x
  138 #>>0x04	  byte		0	indexed .DB data file
  139 #>>0x04	  byte		1	primary index .PX file
  140 #>>0x04	  byte		2	non-indexed .DB data file
  141 #>>0x04	  byte		3	non-incrementing secondary index .Xnn file
  142 #>>0x04	  byte		4	secondary index .Ynn file
  143 #>>0x04	  byte		5	incrementing secondary index .Xnn file
  144 #>>0x04	  byte		6	non-incrementing secondary index .XGn file
  145 #>>0x04	  byte		7	secondary index .YGn file
  146 #>>>0x04	  byte		8	incrementing secondary index .XGn file
  147 
  148 ## XBase database files
  149 # updated by Joerg Jenderek at Feb 2013
  150 # http://www.dbase.com/Knowledgebase/INT/db7_file_fmt.htm
  151 # http://www.clicketyclick.dk/databases/xbase/format/dbf.html
  152 # http://home.f1.htw-berlin.de/scheibl/db/intern/dBase.htm
  153 # inspect VVYYMMDD , where 1<= MM <= 12 and 1<= DD <= 31
  154 0	ubelong&0x0000FFFF		<0x00000C20
  155 # skip Infocom game Z-machine
  156 >2		ubyte			>0
  157 # skip Androids *.xml
  158 >>3		ubyte			>0
  159 >>>3		ubyte			<32
  160 # 1 < version VV
  161 >>>>0		ubyte			>1
  162 # skip HELP.CA3 by test for reserved byte ( NULL )
  163 >>>>>27		ubyte			0
  164 # reserved bytes not always 0 ; also found 0x3901 (T4.DBF) ,0x7101 (T5.DBF,T6.DBF)
  165 #>>>>>30		ubeshort     		x		30NULL?%x
  166 # possible production flag,tag numbers(<=0x30),tag length(<=0x20), reserved (NULL)
  167 >>>>>>24	ubelong&0xffFFFFff	>0x01302000
  168 # .DBF or .MDX
  169 >>>>>>24	ubelong&0xffFFFFff	<0x01302001
  170 # for Xbase Database file (*.DBF) reserved (NULL) for multi-user
  171 >>>>>>>24	ubelong&0xffFFFFff	=0
  172 # test for 2 reserved NULL bytes,transaction and encryption byte flag
  173 >>>>>>>>12	ubelong&0xFFFFfEfE	0
  174 # test for MDX flag
  175 >>>>>>>>>28	ubyte			x
  176 >>>>>>>>>28	ubyte&0xf8		0
  177 # header size >= 32
  178 >>>>>>>>>>8	uleshort		>31
  179 # skip PIC15736.PCX by test for language driver name or field name
  180 >>>>>>>>>>>32	ubyte			>0
  181 #!:mime	application/x-dbf; charset=unknown-8bit ??
  182 #!:mime	application/x-dbase
  183 >>>>>>>>>>>>0	use			xbase-type
  184 # database file
  185 >>>>>>>>>>>>0	ubyte			x		\b DBF
  186 >>>>>>>>>>>>4	lelong			0		\b, no records
  187 >>>>>>>>>>>>4	lelong			>0		\b, %d record
  188 # plural s appended
  189 >>>>>>>>>>>>>4	lelong			>1		\bs
  190 # http://www.clicketyclick.dk/databases/xbase/format/dbf_check.html#CHECK_DBF
  191 # 1 <= record size <= 4000 (dBase 3,4) or 32 * KB (=0x8000)
  192 >>>>>>>>>>>>10	uleshort		x		* %d
  193 # file size = records * record size + header size
  194 >>>>>>>>>>>>1	ubyte			x		\b, update-date
  195 >>>>>>>>>>>>1	use			xbase-date
  196 # http://msdn.microsoft.com/de-de/library/cc483186(v=vs.71).aspx
  197 #>>>>>>>>>>>>29	ubyte			=0		\b, codepage ID=0x%x
  198 # 2~cp850 , 3~cp1252 , 0x1b~?? ; what code page is 0x1b ?
  199 >>>>>>>>>>>>29	ubyte			>0		\b, codepage ID=0x%x
  200 #>>>>>>>>>>>>28	ubyte&0x01		0		\b, no index file
  201 >>>>>>>>>>>>28	ubyte&0x01		1		\b, with index file .MDX
  202 >>>>>>>>>>>>28	ubyte&0x02		2		\b, with memo .FPT
  203 >>>>>>>>>>>>28	ubyte&0x04		4		\b, DataBaseContainer
  204 # 1st record offset + 1 = header size
  205 >>>>>>>>>>>>8	uleshort		>0
  206 >>>>>>>>>>>>(8.s+1)	ubyte		>0
  207 >>>>>>>>>>>>>8		uleshort	>0		\b, at offset %d
  208 >>>>>>>>>>>>>(8.s+1)	ubyte		>0
  209 >>>>>>>>>>>>>>&-1	string		>\0		1st record "%s"
  210 # for multiple index files (*.MDX) Production flag,tag numbers(<=0x30),tag length(<=0x20), reserved (NULL)
  211 >>>>>>>24	ubelong&0x0133f7ff	>0
  212 # test for reserved NULL byte
  213 >>>>>>>>47	ubyte			0
  214 # test for valid TAG key format (0x10 or 0)
  215 >>>>>>>>>559	ubyte&0xeF		0
  216 # test MM <= 12
  217 >>>>>>>>>>45	ubeshort		<0x0C20
  218 >>>>>>>>>>>45	ubyte			>0
  219 >>>>>>>>>>>>46	ubyte			<32
  220 >>>>>>>>>>>>>46	ubyte			>0
  221 #!:mime	application/x-mdx
  222 >>>>>>>>>>>>>>0		use		xbase-type
  223 >>>>>>>>>>>>>>0		ubyte		x		\b MDX
  224 >>>>>>>>>>>>>>1		ubyte		x		\b, creation-date
  225 >>>>>>>>>>>>>>1		use		xbase-date
  226 >>>>>>>>>>>>>>44	ubyte		x		\b, update-date
  227 >>>>>>>>>>>>>>44	use		xbase-date
  228 # No.of tags in use (1,2,5,12)
  229 >>>>>>>>>>>>>>28	uleshort	x		\b, %d
  230 # No. of entries in tag (0x30)
  231 >>>>>>>>>>>>>>25	ubyte		x		\b/%d tags
  232 #  Length of tag
  233 >>>>>>>>>>>>>>26	ubyte		x		* %d
  234 # 1st tag name_
  235 >>>>>>>>>>>>>548	string		x		\b, 1st tag "%.11s"
  236 # 2nd tag name
  237 #>>>>>>>>>>>>(26.b+548)	string		x		\b, 2nd tag "%.11s"
  238 #
  239 #		Print the xBase names of different version variants
  240 0	name				xbase-type
  241 >0	ubyte		<2
  242 # 1 < version
  243 >0	ubyte		>1
  244 >>0	ubyte		0x02		FoxBase
  245 # FoxBase+/dBaseIII+, no memo
  246 >>0	ubyte		0x03		FoxBase+/dBase III
  247 !:mime	application/x-dbf
  248 # dBASE IV no memo file
  249 >>0	ubyte		0x04		dBase IV
  250 !:mime	application/x-dbf
  251 # dBASE V no memo file
  252 >>0	ubyte		0x05		dBase V
  253 !:mime	application/x-dbf
  254 >>0	ubyte		0x30		Visual FoxPro
  255 !:mime	application/x-dbf
  256 >>0	ubyte		0x31		Visual FoxPro, autoincrement
  257 !:mime	application/x-dbf
  258 # Visual FoxPro, with field type Varchar or Varbinary
  259 >>0	ubyte		0x32		Visual FoxPro, with field type Varchar
  260 !:mime	application/x-dbf
  261 # dBASE IV SQL, no memo;dbv memo var size (Flagship)
  262 >>0	ubyte		0x43		dBase IV, with SQL table
  263 !:mime	application/x-dbf
  264 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  265 #>>0	ubyte		0x62		dBase IV, with SQL table
  266 #!:mime	application/x-dbf
  267 # dBASE IV, with memo!!
  268 >>0	ubyte		0x7b		dBase IV, with memo
  269 !:mime	application/x-dbf
  270 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  271 #>>0	ubyte		0x82		dBase IV, with SQL system
  272 #!:mime	application/x-dbf
  273 # FoxBase+/dBaseIII+ with memo .DBT!
  274 >>0	ubyte		0x83		FoxBase+/dBase III, with memo .DBT
  275 !:mime	application/x-dbf
  276 # VISUAL OBJECTS (first 1.0 versions) for the Dbase III files (NTX clipper driver); memo file
  277 >>0	ubyte		0x87		VISUAL OBJECTS, with memo file
  278 !:mime	application/x-dbf
  279 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  280 #>>0	ubyte		0x8A		FoxBase+/dBase III, with memo .DBT
  281 #!:mime	application/x-dbf
  282 # dBASE IV with memo!
  283 >>0	ubyte		0x8B		dBase IV, with memo .DBT
  284 !:mime	application/x-dbf
  285 # dBase IV with SQL Table,no memo?
  286 >>0	ubyte		0x8E		dBase IV, with SQL table
  287 !:mime	application/x-dbf
  288 # .dbv and .dbt memo (Flagship)?
  289 >>0	ubyte		0xB3		Flagship
  290 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  291 #>>0	ubyte		0xCA		dBase IV with memo .DBT
  292 #!:mime	application/x-dbf
  293 # dBASE IV with SQL table, with memo .DBT
  294 >>0	ubyte		0xCB		dBase IV with SQL table, with memo .DBT
  295 !:mime	application/x-dbf
  296 # HiPer-Six format;Clipper SIX, with SMT memo file
  297 >>0	ubyte		0xE5		Clipper SIX with memo
  298 !:mime	application/x-dbf
  299 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  300 #>>0	ubyte		0xF4		dBase IV, with SQL table, with memo
  301 #!:mime	application/x-dbf
  302 >>0	ubyte		0xF5		FoxPro with memo
  303 !:mime	application/x-dbf
  304 # http://msdn.microsoft.com/en-US/library/st4a0s68(v=vs.80).aspx
  305 #>>0	ubyte		0xFA		FoxPro 2.x, with memo
  306 #!:mime	application/x-dbf
  307 # unknown version (should not happen)
  308 >>0	default		x		xBase
  309 !:mime	application/x-dbf
  310 >>>0	ubyte		x		(0x%x)
  311 # flags in version byte
  312 # DBT flag (with dBASE III memo .DBT)!!
  313 # >>0	ubyte&0x80	>0		DBT_FLAG=%x
  314 # memo flag ??
  315 # >>0	ubyte&0x08	>0		MEMO_FLAG=%x
  316 # SQL flag ??
  317 # >>0	ubyte&0x70	>0		SQL_FLAG=%x
  318 #		test and print the date of xBase .DBF .MDX
  319 0	name				xbase-date
  320 # inspect YYMMDD , where 1<= MM <= 12 and 1<= DD <= 31
  321 >0	ubelong		x
  322 >1	ubyte		<13
  323 >>1	ubyte		>0
  324 >>>2	ubyte		>0
  325 >>>>2	ubyte		<32
  326 >>>>>0	ubyte		x
  327 # YY is interpreted as 20YY or 19YY
  328 >>>>>>0	ubyte		<100		\b %.2d
  329 # YY is interpreted 1900+YY; TODO: display yy or 20yy instead 1YY
  330 >>>>>>0	ubyte		>99		\b %d
  331 >>>>>1	ubyte		x		\b-%d
  332 >>>>>2	ubyte		x		\b-%d
  333 
  334 #	dBase memo files .DBT or .FPT
  335 # http://msdn.microsoft.com/en-us/library/8599s21w(v=vs.80).aspx
  336 16		ubyte		<4
  337 >16		ubyte		!2
  338 >>16		ubyte		!1
  339 # next free block index is positive
  340 >>>0		ulelong		>0
  341 # skip many JPG. ZIP, BZ2 by test for reserved bytes NULL , 0|2 , 0|1 , low byte of block size
  342 >>>>17		ubelong&0xFFfdFE00	0x00000000
  343 # skip many RAR by test for low byte 0 ,high byte 0|2|even of block size, 0|a|e|d7 , 0|64h
  344 >>>>>20		ubelong&0xFF01209B	0x00000000
  345 # dBASE III
  346 >>>>>>16	ubyte		3
  347 # dBASE III DBT
  348 >>>>>>>0	use		dbase3-memo-print
  349 # dBASE III DBT without version, dBASE IV DBT , FoxPro FPT , or many ZIP , DBF garbage
  350 >>>>>>16	ubyte		0
  351 # unusual dBASE III DBT like angest.dbt, dBASE IV DBT with block size 0 , FoxPro FPT ,  or garbage PCX DBF
  352 >>>>>>>20	uleshort	0
  353 # FoxPro FPT , unusual dBASE III DBT like biblio.dbt or garbage
  354 >>>>>>>>8	ulong		=0
  355 >>>>>>>>>6	ubeshort	>0
  356 # skip emacs.PIF
  357 >>>>>>>>>>4	ushort		0
  358 >>>>>>>>>>>0	use		foxpro-memo-print
  359 # dBASE III DBT , garbage
  360 >>>>>>>>>6	ubeshort	0
  361 # skip MM*DD*.bin by test for for reserved NULL byte
  362 >>>>>>>>>>510	ubeshort	0
  363 # skip TK-DOS11.img image by looking for memo text
  364 >>>>>>>>>>>512	ubelong		<0xfeffff03
  365 # skip EFI executables by looking for memo text
  366 >>>>>>>>>>>>512	ubelong		>0x1F202020
  367 >>>>>>>>>>>>>513 ubyte		>0
  368 # unusual dBASE III DBT like adressen.dbt
  369 >>>>>>>>>>>>>>0	use		dbase3-memo-print
  370 # dBASE III DBT like angest.dbt, or garbage PCX DBF
  371 >>>>>>>>8	ubelong		!0
  372 # skip PCX and some DBF by test for for reserved NULL bytes
  373 >>>>>>>>>510	ubeshort	0
  374 # skip some DBF by test of invalid version
  375 >>>>>>>>>>0	ubyte		>5
  376 >>>>>>>>>>>0	ubyte		<48
  377 >>>>>>>>>>>>0	use		dbase3-memo-print
  378 # dBASE IV DBT with positive block size
  379 >>>>>>>20	uleshort	>0
  380 # dBASE IV DBT with valid block length like 512, 1024
  381 # multiple of 2 in between 16 and 16 K ,implies upper and lower bits are zero
  382 >>>>>>>>20	uleshort&0x800f	0
  383 >>>>>>>>>0	use		dbase4-memo-print
  384 
  385 #		Print the information of dBase III DBT memo file
  386 0	name				dbase3-memo-print
  387 >0	ubyte			x		dBase III DBT
  388 # instead 3 as version number 0 for unusual examples like biblio.dbt
  389 >16	ubyte			!3		\b, version number %u
  390 # Number of next available block for appending data
  391 #>0	lelong			=0		\b, next free block index %u
  392 >0	lelong			!0		\b, next free block index %u
  393 # no positiv block length
  394 #>20	uleshort		=0		\b, block length %u
  395 >20	uleshort		!0		\b, block length %u
  396 # dBase III memo field terminated by \032\032
  397 >512	string			>\0		\b, 1st item "%s"
  398 #		Print the information of dBase IV DBT memo file
  399 0	name				dbase4-memo-print
  400 >0		lelong		x		dBase IV DBT
  401 !:mime	application/x-dbt
  402 !:ext dbt
  403 # 8 character shorted main name of coresponding dBASE IV DBF file
  404 >8		ubelong		>0x20000000
  405 # skip unusual like for angest.dbt
  406 >>20		uleshort	>0
  407 >>>8		string		>\0		\b of %-.8s.DBF
  408 # value 0 implies 512 as size
  409 #>4		ulelong		=0		\b, blocks size %u
  410 # size of blocks not reliable like 0x2020204C in angest.dbt
  411 >4		ulelong		!0
  412 >>4		ulelong&0x0000003f	0	\b, blocks size %u
  413 # dBase IV DBT with positive block length (found 512 , 1024)
  414 >20		uleshort	>0		\b, block length %u
  415 # next available block
  416 #>0		lelong		=0		\b, next free block index %u
  417 >0		lelong		!0		\b, next free block index %u
  418 >20		uleshort	>0
  419 >>(20.s)	ubelong		x
  420 >>>&-4		use		dbase4-memofield-print
  421 # unusual dBase IV DBT without block length (implies 512 as length)
  422 >20		uleshort	=0
  423 >>512		ubelong		x
  424 >>>&-4		use				dbase4-memofield-print
  425 #		Print the information of dBase IV memo field
  426 0	name			dbase4-memofield-print
  427 # free dBase IV memo field
  428 >0		ubelong		!0xFFFF0800
  429 >>0		lelong		x		\b, next free block %u
  430 >>4		lelong		x		\b, next used block %u
  431 # used dBase IV memo field
  432 >0		ubelong		=0xFFFF0800
  433 # length of memo field
  434 >>4		lelong		x		\b, field length %d
  435 >>>8		string		>\0		\b, 1st used item "%s"
  436 #		Print the information of FoxPro FPT memo file
  437 0	name				foxpro-memo-print
  438 >0		belong		x		FoxPro FPT
  439 # Size of blocks for FoxPro ( 64,256 )
  440 >6		ubeshort	x		\b, blocks size %u
  441 # next available block
  442 #>0		belong		=0		\b, next free block index %u
  443 >0		belong		!0		\b, next free block index %u
  444 # field type ( 0~picture, 1~memo, 2~object )
  445 >512		ubelong		<3		\b, field type %u
  446 # length of memo field
  447 >512		ubelong		1
  448 >>516		belong		>0		\b, field length %d
  449 >>>520		string		>\0		\b, 1st item "%s"
  450 
  451 # TODO:
  452 # DBASE index file *.NDX
  453 # DBASE Compound Index file *.CDX
  454 # dBASE IV Printer Driver *.PRF
  455 ## End of XBase database stuff
  456 
  457 # MS Access database
  458 4	string	Standard\ Jet\ DB	Microsoft Access Database
  459 !:mime	application/x-msaccess
  460 4	string	Standard\ ACE\ DB	Microsoft Access Database
  461 !:mime	application/x-msaccess
  462 
  463 # From: Joerg Jenderek
  464 # URL: http://fileformats.archiveteam.org/wiki/Extensible_Storage_Engine
  465 # Reference: https://github.com/libyal/libesedb/archive/master.zip
  466 #	libesedb-master/documentation/
  467 #	Extensible Storage Engine (ESE) Database File (EDB) format.asciidoc
  468 # Note: also known as "JET Blue". Used by numerous Windows components such as
  469 # Windows Search, Mail, Exchange and Active Directory.
  470 4	ubelong		0xefcdab89
  471 # unknown1
  472 >132	ubelong		0		Extensible storage engine
  473 !:mime	application/x-ms-ese
  474 # file_type 0~database 1~stream
  475 >>12	ulelong		0		DataBase
  476 # Security DataBase (sdb)
  477 !:ext	edb/sdb
  478 >>12	ulelong		1		STreaMing
  479 !:ext	stm
  480 # format_version 620h
  481 >>8	uleshort	x		\b, version 0x%x
  482 >>10	uleshort	>0		revision 0x%4.4x
  483 >>0	ubelong		x	 	\b, checksum 0x%8.8x
  484 # Page size 4096 8192 32768
  485 >>236	ulequad		x		\b, page size %lld
  486 # database_state
  487 >>52	ulelong		1		\b, JustCreated
  488 >>52	ulelong		2		\b, DirtyShutdown
  489 #>>52	ulelong		3		\b, CleanShutdown
  490 >>52	ulelong		4		\b, BeingConverted
  491 >>52	ulelong		5		\b, ForceDetach
  492 # Windows NT major version when the databases indexes were updated.
  493 >>216	ulelong		x		\b, Windows version %d
  494 # Windows NT minor version
  495 >>220	ulelong		x		\b.%d
  496 
  497 # From: Joerg Jenderek
  498 # URL: http://forensicswiki.org/wiki/Windows_Application_Compatibility
  499 # Note: files contain application compatibility fixes, application compatibility modes and application help messages.
  500 8	string		sdbf
  501 >7	ubyte		0
  502 # TAG_TYPE_LIST+TAG_INDEXES
  503 >>12	uleshort	0x7802		Windows application compatibility Shim DataBase
  504 # version? 2 3
  505 #>>>0	ulelong		x		\b, version %d
  506 !:mime	application/x-ms-sdb
  507 !:ext	sdb
  508 
  509 # TDB database from Samba et al - Martin Pool <mbp@samba.org>
  510 0	string	TDB\ file		TDB database
  511 >32	lelong	0x2601196D		version 6, little-endian
  512 >>36	lelong	x			hash size %d bytes
  513 
  514 # SE Linux policy database
  515 0       lelong  0xf97cff8c      SE Linux policy
  516 >16     lelong  x               v%d
  517 >20     lelong  1      MLS
  518 >24     lelong  x       %d symbols
  519 >28     lelong  x       %d ocons
  520 
  521 # ICE authority file data (Wolfram Kleff)
  522 2	string		ICE		ICE authority data
  523 
  524 # X11 Xauthority file (Wolfram Kleff)
  525 10	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  526 11	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  527 12	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  528 13	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  529 14	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  530 15	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  531 16	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  532 17	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  533 18	string		MIT-MAGIC-COOKIE-1	X11 Xauthority data
  534 
  535 # From: Maxime Henrion <mux@FreeBSD.org>
  536 # PostgreSQL's custom dump format, Maxime Henrion <mux@FreeBSD.org>
  537 0	string		PGDMP		PostgreSQL custom database dump
  538 >5	byte		x		- v%d
  539 >6	byte		x		\b.%d
  540 >5	beshort		<0x101		\b-0
  541 >5	beshort		>0x100
  542 >>7	byte		x		\b-%d
  543 
  544 # Type: Advanced Data Format (ADF) database
  545 # URL:  http://www.grc.nasa.gov/WWW/cgns/adf/
  546 # From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
  547 0	string	@(#)ADF\ Database	CGNS Advanced Data Format
  548 
  549 # Tokyo Cabinet magic data
  550 # http://tokyocabinet.sourceforge.net/index.html
  551 0	string		ToKyO\ CaBiNeT\n	Tokyo Cabinet
  552 >14	string		x			\b (%s)
  553 >32	byte		0			\b, Hash
  554 !:mime	application/x-tokyocabinet-hash
  555 >32	byte		1			\b, B+ tree
  556 !:mime	application/x-tokyocabinet-btree
  557 >32	byte		2			\b, Fixed-length
  558 !:mime	application/x-tokyocabinet-fixed
  559 >32	byte		3			\b, Table
  560 !:mime	application/x-tokyocabinet-table
  561 >33	byte		&1			\b, [open]
  562 >33	byte		&2			\b, [fatal]
  563 >34	byte		x			\b, apow=%d
  564 >35	byte		x			\b, fpow=%d
  565 >36	byte		&0x01			\b, [large]
  566 >36	byte		&0x02			\b, [deflate]
  567 >36	byte		&0x04			\b, [bzip]
  568 >36	byte		&0x08			\b, [tcbs]
  569 >36	byte		&0x10			\b, [excodec]
  570 >40	lequad		x			\b, bnum=%lld
  571 >48	lequad		x			\b, rnum=%lld
  572 >56	lequad		x			\b, fsiz=%lld
  573 
  574 # Type:	QDBM Quick Database Manager
  575 # From:	Benoit Sibaud <bsibaud@april.org>
  576 0	string		\\[depot\\]\n\f		Quick Database Manager, little endian
  577 0	string		\\[DEPOT\\]\n\f		Quick Database Manager, big endian
  578 
  579 # Type:	TokyoCabinet database
  580 # URL:	http://tokyocabinet.sourceforge.net/
  581 # From:	Benoit Sibaud <bsibaud@april.org>
  582 0	string		ToKyO\ CaBiNeT\n	TokyoCabinet database
  583 >14	string		x			(version %s)
  584 
  585 # From:  Stephane Blondon http://www.yaal.fr
  586 # Database file for Zope (done by FileStorage)
  587 0	string	FS21	Zope Object Database File Storage v3 (data)
  588 0	string	FS30	Zope Object Database File Storage v4 (data)
  589 
  590 # Cache file for the database of Zope (done by ClientStorage)
  591 0	string		ZEC3	Zope Object Database Client Cache File (data)
  592 
  593 # IDA (Interactive Disassembler) database
  594 0	string		IDA1	IDA (Interactive Disassembler) database
  595 
  596 # Hopper (reverse engineering tool) http://www.hopperapp.com/
  597 0	string		hopperdb	Hopper database
  598 
  599 # URL: https://en.wikipedia.org/wiki/Panorama_(database_engine)
  600 # Reference: http://www.provue.com/Panorama/
  601 # From: Joerg Jenderek
  602 # NOTE: test only versions 4 and 6.0 with Windows
  603 # length of Panorama database name
  604 5	ubyte				>0
  605 # look after database name for "some" null bits
  606 >(5.B+7)	ubelong&0xF3ffF000	0
  607 # look for first keyword
  608 >>&1		search/2		DESIGN		Panorama database
  609 #!:mime	application/x-panorama-database
  610 !:apple	KASXZEPD
  611 !:ext	pan
  612 # database name
  613 >>>5	pstring				x		\b, "%s"
  614 
  615 #
  616 #
  617 # askSam Database by Stefan A. Haubenthal <polluks@web.de>
  618 0	string	askw40\0	askSam DB
  619 
  620 #
  621 #
  622 # MUIbase Database Tool by Stefan A. Haubenthal <polluks@web.de>
  623 0	string	MBSTV\040	MUIbase DB
  624 >6	string	x		version %s
  625 
  626 #
  627 # CDB database
  628 0	string	NBCDB\012	NetBSD Constant Database
  629 >7	byte	x		\b, version %d
  630 >8	string	x		\b, for '%s'
  631 >24	lelong	x		\b, datasize %d
  632 >28	lelong	x		\b, entries %d
  633 >32	lelong	x		\b, index %d
  634 >36	lelong	x		\b, seed %#x
  635 
  636 #
  637 # Redis RDB - https://redis.io/topics/persistence
  638 0	string	REDIS			Redis RDB file,
  639 >5	regex	[0-9][0-9][0-9][0-9]	version %s
  640 
  641 # Mork database.
  642 # Used by older versions of Mozilla Suite and Firefox,
  643 # and current versions of Thunderbird.
  644 # From: David Korth <gerbilsoft@gerbilsoft.com>
  645 0	string	//\ <!--\ <mdb:mork:z\ v="	Mozilla Mork database
  646 >23	string	x		\b, version %.3s