Home | History | Annotate | Line # | Download | only in magdir
windows revision 1.1.1.9.2.1
      1 
      2 #------------------------------------------------------------------------------
      3 # $File: windows,v 1.26 2019/05/01 17:55:25 christos Exp $
      4 # windows:  file(1) magic for Microsoft Windows
      5 #
      6 # This file is mainly reserved for files where programs
      7 # using them are run almost always on MS Windows 3.x or
      8 # above, or files only used exclusively in Windows OS,
      9 # where there is no better category to allocate for.
     10 # For example, even though WinZIP almost run on Windows
     11 # only, it is better to treat them as "archive" instead.
     12 # For format usable in DOS, such as generic executable
     13 # format, please specify under "msdos" file.
     14 #
     15 
     16 
     17 # Summary: Outlook Express DBX file
     18 # Extension: .dbx
     19 # Created by: Christophe Monniez
     20 0	string	\xCF\xAD\x12\xFE	MS Outlook Express DBX file
     21 >4	byte	=0xC5			\b, message database
     22 >4	byte	=0xC6			\b, folder database
     23 >4	byte	=0xC7			\b, account information
     24 >4	byte	=0x30			\b, offline database
     25 
     26 
     27 # Summary: Windows crash dump
     28 # Extension: .dmp
     29 # Created by: Andreas Schuster (https://computer.forensikblog.de/)
     30 # Reference (1): https://computer.forensikblog.de/en/2008/02/64bit_magic.html
     31 # Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
     32 0	string		PAGE
     33 >4	string		DUMP		MS Windows 32bit crash dump
     34 >>0x05c	byte            0		\b, no PAE
     35 >>0x05c	byte            1		\b, PAE
     36 >>0xf88	lelong		1		\b, full dump
     37 >>0xf88	lelong		2		\b, kernel dump
     38 >>0xf88	lelong		3		\b, small dump
     39 >>0x068	lelong		x		\b, %d pages
     40 >4	string		DU64		MS Windows 64bit crash dump
     41 >>0xf98	lelong		1		\b, full dump
     42 >>0xf98	lelong		2		\b, kernel dump
     43 >>0xf98	lelong		3		\b, small dump
     44 >>0x090	lequad		x		\b, %lld pages
     45 
     46 
     47 # Summary: Vista Event Log
     48 # Extension: .evtx
     49 # Created by: Andreas Schuster (https://computer.forensikblog.de/)
     50 # Reference (1): https://computer.forensikblog.de/en/2007/05/some_magic.html
     51 0	string		ElfFile\0	MS Windows Vista Event Log
     52 >0x2a	leshort		x		\b, %d chunks
     53 >>0x10	lelong		x		\b (no. %d in use)
     54 >0x18	lelong		>1		\b, next record no. %d
     55 >0x18	lelong		=1		\b, empty
     56 >0x78	lelong		&1		\b, DIRTY
     57 >0x78	lelong		&2		\b, FULL
     58 
     59 # Summary: Windows System Deployment Image
     60 # Created by: Joerg Jenderek
     61 # URL: http://en.wikipedia.org/wiki/System_Deployment_Image
     62 # Reference: http://skolk.livejournal.com/1320.html
     63 0	string			$SDI
     64 >4	string			0001		System Deployment Image
     65 !:mime	application/x-ms-sdi
     66 #!:mime	application/octet-stream
     67 # \Boot\boot.sdi
     68 !:ext	sdi
     69 # MDBtype: 0~Unspecified 1~RAM 2~ROM
     70 >>8	ulequad			!0		\b, MDBtype 0x%llx
     71 # BootCodeOffset
     72 >>16	ulequad			!0		\b, BootCodeOffset 0x%llx
     73 # BootCodeSize
     74 >>24	ulequad			!0		\b, BootCodeSize 0x%llx
     75 # VendorID
     76 >>32	ulequad			!0		\b, VendorID 0x%llx
     77 # DeviceID
     78 >>40	ulequad			!0		\b, DeviceID 0x%llx
     79 # DeviceModel
     80 >>48	ulequad			!0		\b, DeviceModel 0x%llx
     81 >>>56	ulequad			!0		\b%llx
     82 # DeviceRole
     83 >>64	ulequad			!0		\b, DeviceRole 0x%llx
     84 # Reserved1; reserved fields and gaps between BLOBs are padded with \0
     85 #>>72	ulequad			!0		\b, Reserved1 0x%llx
     86 # RuntimeGUID
     87 >>80	ulequad			!0		\b, RuntimeGUID 0x%llx
     88 >>>88	ulequad			!0		\b%llx
     89 # RuntimeOEMrev
     90 >>96	ulequad			!0		\b, RuntimeOEMrev 0x%llx
     91 # Reserved2
     92 #>>104	ulequad			!0		\b, Reserved2 0x%llx
     93 # BLOB alignment value in pages, as specified in sdimgr /pack: 1~4K 2~8k
     94 >>112	ulequad			!0		\b, PageAlignment %llu
     95 # Reserved3[48]
     96 #>>120	ulequad			!0		\b, Reserved3 0x%llx
     97 # SDI checksum 39h
     98 >>0x1f8	ulequad			x		\b, checksum 0x%llx
     99 # BLOBtype[8] \0-padded: PART, WIM , BOOT, LOAD, DISK
    100 >>0x400	string			>\0		\b, type %-3.8s
    101 # 0~non-filesystem 7~NTFS 6~BIGFAT
    102 >>>0x420	ulequad		!0		(0x%llx)
    103 # ATTRibutes
    104 >>>0x408	ulequad		!0		0x%llx attributes
    105 # Offset
    106 >>>0x410	ulequad		x		at 0x%llx
    107 # print 1 space after size and then handles NTFS boot sector by ./filesystems
    108 >>>0x418	ulequad		>0		%llu bytes 
    109 >>>>(0x410.l)	indirect	x
    110 # 2nd BLOB: WIM
    111 >>0x440		string		>\0		\b, type %-3.8s
    112 >>>0x428	ulequad		!0		(0x%llx)
    113 # ATTRibutes
    114 >>>0x448	ulequad		!0		0x%llx attributes
    115 # Offset
    116 >>>0x450	ulequad		x		at 0x%llx
    117 >>>0x458	ulequad		>0		%llu bytes 
    118 >>>>(0x450.l)	indirect	x
    119 # 3rd BLOB
    120 >>0x480		string		>\0		\b, type %-3.8s
    121 
    122 # Summary:	Windows Error Report text files
    123 # URL:		https://en.wikipedia.org/wiki/Windows_Error_Reporting
    124 # Reference:	https://www.nirsoft.net/utils/app_crash_view.html
    125 # Created by:	Joerg Jenderek
    126 # Note:		in directories	%ProgramData%\Microsoft\Windows\WER\{ReportArchive,ReportQueue}
    127 #				%LOCALAPPDATA%\Microsoft\Windows\WER\{ReportArchive,ReportQueue}
    128 0	lestring16	Version=	
    129 >22	lestring16	EventType	Windows Error Report
    130 !:mime	text/plain
    131 # Report.wer
    132 !:ext	wer
    133 
    134 # Summary: Windows 3.1 group files
    135 # Extension: .grp
    136 # Created by: unknown
    137 0	string		\120\115\103\103	MS Windows 3.1 group files
    138 
    139 
    140 # Summary: Old format help files
    141 # URL: https://en.wikipedia.org/wiki/WinHelp
    142 # Reference: https://www.oocities.org/mwinterhoff/helpfile.htm
    143 # Update: Joerg Jenderek
    144 # Created by: Dirk Jagdmann <doj (a] cubic.org>
    145 #
    146 # check and then display version and date inside MS Windows HeLP file fragment
    147 0	name				help-ver-date
    148 # look for Magic of SYSTEMHEADER
    149 >0	leshort		0x036C
    150 # version Major		1 for right file fragment
    151 >>4	leshort		1		Windows
    152 # print non empty string above to avoid error message
    153 # Warning: Current entry does not yet have a description for adding a MIME type
    154 !:mime	application/winhelp
    155 !:ext	hlp
    156 # version Minor of help file format is hint for windows version
    157 >>>2	leshort		0x0F		3.x
    158 >>>2	leshort		0x15		3.0
    159 >>>2	leshort		0x21		3.1
    160 >>>2	leshort		0x27		x.y
    161 >>>2	leshort		0x33		95
    162 >>>2	default		x		y.z
    163 >>>>2	leshort		x		0x%x
    164 # to complete message string like "MS Windows 3.x help file"
    165 >>>2	leshort		x		help
    166 # GenDate often older than file creation date
    167 >>>6	ldate		x		\b, %s
    168 #
    169 # Magic for HeLP files
    170 0	lelong		0x00035f3f
    171 # ./windows (version 5.25) labeled the entry as "MS Windows 3.x help file"
    172 # file header magic 0x293B at DirectoryStart+9
    173 >(4.l+9)	uleshort	0x293B		MS
    174 # look for @VERSION	bmf.. like IBMAVW.ANN
    175 >>0xD4		string	=\x62\x6D\x66\x01\x00	Windows help annotation
    176 !:mime	application/x-winhelp
    177 !:ext	ann
    178 >>0xD4		string	!\x62\x6D\x66\x01\x00
    179 # "GID Help index" by TrID
    180 >>>(4.l+0x65)	string	=|Pete			Windows help Global Index
    181 !:mime	application/x-winhelp
    182 !:ext	gid
    183 # HeLP Bookmark or
    184 # "Windows HELP File" by TrID
    185 >>>(4.l+0x65)		string		!|Pete
    186 # maybe there exist a cleaner way to detect HeLP fragments
    187 # brute search for Magic 0x036C with matching Major maximal 7 iterations
    188 # discapp.hlp
    189 >>>>16			search/0x49AF/s	\x6c\x03
    190 >>>>>&0			use 		help-ver-date
    191 >>>>>&4			leshort		!1
    192 # putty.hlp
    193 >>>>>>&0		search/0x69AF/s	\x6c\x03
    194 >>>>>>>&0		use 		help-ver-date
    195 >>>>>>>&4		leshort		!1
    196 >>>>>>>>&0		search/0x49AF/s	\x6c\x03
    197 >>>>>>>>>&0		use 		help-ver-date
    198 >>>>>>>>>&4		leshort		!1
    199 >>>>>>>>>>&0		search/0x49AF/s	\x6c\x03
    200 >>>>>>>>>>>&0		use 		help-ver-date
    201 >>>>>>>>>>>&4		leshort		!1
    202 >>>>>>>>>>>>&0		search/0x49AF/s	\x6c\x03
    203 >>>>>>>>>>>>>&0		use 		help-ver-date
    204 >>>>>>>>>>>>>&4		leshort		!1
    205 >>>>>>>>>>>>>>&0	search/0x49AF/s	\x6c\x03
    206 >>>>>>>>>>>>>>>&0	use 		help-ver-date
    207 >>>>>>>>>>>>>>>&4	leshort		!1
    208 >>>>>>>>>>>>>>>>&0	search/0x49AF/s	\x6c\x03
    209 # GCC.HLP is detected after 7 iterations
    210 >>>>>>>>>>>>>>>>>&0	use 		help-ver-date
    211 # this only happens if bigger hlp file is detected after used search iterations
    212 >>>>>>>>>>>>>>>>>&4	leshort		!1		Windows y.z help
    213 !:mime	application/winhelp
    214 !:ext	hlp
    215 # repeat search again or following default line does not work
    216 >>>>16			search/0x49AF/s	\x6c\x03
    217 # remaining files should be HeLP Bookmark WinHlp32.BMK (XP 32-bit) or WinHlp32 (Windows 8.1 64-bit)
    218 >>>>16	default				x	Windows help Bookmark
    219 !:mime	application/x-winhelp
    220 !:ext	bmk
    221 ## FirstFreeBlock normally FFFFFFFFh 10h for *ANN
    222 ##>>8	lelong			x		\b, FirstFreeBlock 0x%8.8x
    223 # EntireFileSize
    224 >>12	lelong			x		\b, %d bytes
    225 ## ReservedSpace normally 042Fh AFh for *.ANN
    226 #>>(4.l)	lelong		x		\b, ReservedSpace 0x%8.8x
    227 ## UsedSpace normally 0426h A6h for *.ANN
    228 #>>(4.l+4)	lelong		x		\b, UsedSpace 0x%8.8x
    229 ## FileFlags normally 04...
    230 #>>(4.l+5)	lelong		x		\b, FileFlags 0x%8.8x
    231 ## file header magic 0x293B
    232 #>>(4.l+9)	uleshort	x		\b, file header magic 0x%4.4x
    233 ## file header Flags		0x0402
    234 #>>(4.l+11)	uleshort	x		\b, file header Flags 0x%4.4x
    235 ## file header PageSize	0400h 80h for *.ANN
    236 #>>(4.l+13)	uleshort	x		\b, PageSize 0x%4.4x
    237 ## Structure[16]		z4
    238 #>>(4.l+15)	string		>\0		\b, Structure_"%-.16s"
    239 ## MustBeZero			0
    240 #>>(4.l+31)	uleshort	x		\b, MustBeZero 0x%4.4x
    241 ## PageSplits
    242 #>>(4.l+33)	uleshort	x		\b, PageSplits 0x%4.4x
    243 ## RootPage
    244 #>>(4.l+35)	uleshort	x		\b, RootPage 0x%4.4x
    245 ## MustBeNegOne			0xffff
    246 #>>(4.l+37)	uleshort	x		\b, MustBeNegOne 0x%4.4x
    247 ## TotalPages			1
    248 #>>(4.l+39)	uleshort	x		\b, TotalPages 0x%4.4x
    249 ## NLevels			0x0001
    250 #>>(4.l+41)	uleshort	x		\b, NLevels 0x%4.4x
    251 ## TotalBtreeEntries
    252 #>>(4.l+43)	ulelong		x		\b, TotalBtreeEntries 0x%8.8x
    253 ## pages of the B+ tree
    254 #>>(4.l+47)	ubequad		x		\b, PageStart 0x%16.16llx
    255 
    256 # start with colon or semicolon for comment line like Back2Life.cnt
    257 0		regex		\^(:|;)
    258 # look for first keyword Base
    259 >0		search/45	:Base
    260 >>&0				use 		cnt-name
    261 # only solution to search again from beginning , because relative offsets changes when use is called
    262 >0		search/45	:Base
    263 >0		default		x
    264 # look for other keyword Title like in putty.cnt
    265 >>0		search/45	:Title
    266 >>>&0				use 		cnt-name
    267 #
    268 # display mime type and name of Windows help Content source
    269 0	name				cnt-name
    270 # skip space at beginning
    271 >0     string		\040
    272 # name without extension and greater character or name with hlp extension
    273 >>1	regex/c		\^([^\xd>]*|.*\.hlp)	MS Windows help file Content, based "%s"
    274 !:mime	text/plain
    275 !:apple	????TEXT
    276 !:ext	cnt
    277 #
    278 # Windows creates an full text search from hlp file, if the user clicks the "Find" tab and enables keyword indexing
    279 0	string		tfMR			MS Windows help Full Text Search index
    280 !:mime application/x-winhelp-fts
    281 !:ext	fts
    282 >16	string		>\0			for "%s"
    283 
    284 # Summary: Hyper terminal
    285 # Extension: .ht
    286 # Created by: unknown
    287 0	string		HyperTerminal\040
    288 >15	string		1.0\ --\ HyperTerminal\ data\ file	MS Windows HyperTerminal profile
    289 
    290 # https://ithreats.files.wordpress.com/2009/05/\040
    291 # lnk_the_windows_shortcut_file_format.pdf
    292 # Summary: Windows shortcut
    293 # Extension: .lnk
    294 # Created by: unknown
    295 # 'L' + GUUID
    296 0	string		\114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106	MS Windows shortcut
    297 >20	lelong&1	1	\b, Item id list present
    298 >20	lelong&2	2	\b, Points to a file or directory
    299 >20	lelong&4	4	\b, Has Description string
    300 >20	lelong&8	8	\b, Has Relative path
    301 >20	lelong&16	16	\b, Has Working directory
    302 >20	lelong&32	32	\b, Has command line arguments
    303 >20	lelong&64	64	\b, Icon
    304 >>56	lelong		x	\b number=%d
    305 >24	lelong&1	1	\b, Read-Only
    306 >24	lelong&2	2	\b, Hidden
    307 >24	lelong&4	4	\b, System
    308 >24	lelong&8	8	\b, Volume Label
    309 >24	lelong&16	16	\b, Directory
    310 >24	lelong&32	32	\b, Archive
    311 >24	lelong&64	64	\b, Encrypted
    312 >24	lelong&128	128	\b, Normal
    313 >24	lelong&256	256	\b, Temporary
    314 >24	lelong&512	512	\b, Sparse
    315 >24	lelong&1024	1024	\b, Reparse point
    316 >24	lelong&2048	2048	\b, Compressed
    317 >24	lelong&4096	4096	\b, Offline
    318 >28	leqwdate	x	\b, ctime=%s
    319 >36	leqwdate	x	\b, mtime=%s
    320 >44	leqwdate	x	\b, atime=%s
    321 >52	lelong		x	\b, length=%u, window=
    322 >60	lelong&1	1	\bhide
    323 >60	lelong&2	2	\bnormal
    324 >60	lelong&4	4	\bshowminimized
    325 >60	lelong&8	8	\bshowmaximized
    326 >60	lelong&16	16	\bshownoactivate
    327 >60	lelong&32	32	\bminimize
    328 >60	lelong&64	64	\bshowminnoactive
    329 >60	lelong&128	128	\bshowna
    330 >60	lelong&256	256	\brestore
    331 >60	lelong&512	512	\bshowdefault
    332 #>20	lelong&1	0
    333 #>>20	lelong&2	2
    334 #>>>(72.l-64)	pstring/h	x	\b [%s]
    335 #>20	lelong&1	1
    336 #>>20	lelong&2	2
    337 #>>>(72.s)	leshort	x
    338 #>>>&75	pstring/h	x	\b [%s]
    339 
    340 # Summary: Outlook Personal Folders
    341 # Created by: unknown
    342 0	lelong		0x4E444221	Microsoft Outlook email folder
    343 >10	leshort		0x0e		(<=2002)
    344 >10	leshort		0x17		(>=2003)
    345 
    346 
    347 # Summary: Windows help cache
    348 # Created by: unknown
    349 0	string		\164\146\115\122\012\000\000\000\001\000\000\000	MS Windows help cache
    350 
    351 
    352 # Summary: IE cache file
    353 # Created by: Christophe Monniez
    354 0	string	Client\ UrlCache\ MMF 	Internet Explorer cache file
    355 >20	string	>\0			version %s
    356 
    357 
    358 # Summary: Registry files
    359 # Created by: unknown
    360 # Modified by (1): Joerg Jenderek
    361 0	string		regf		MS Windows registry file, NT/2000 or above
    362 0	string		CREG		MS Windows 95/98/ME registry file
    363 0	string		SHCC3		MS Windows 3.1 registry file
    364 
    365 
    366 # Summary: Windows Registry text
    367 # URL: https://en.wikipedia.org/wiki/Windows_Registry#.REG_files
    368 # Reference: http://fileformats.archiveteam.org/wiki/Windows_Registry
    369 # Submitted by: Abel Cheung <abelcheung (a] gmail.com>
    370 # Update: Joerg Jenderek
    371 #		Windows 3-9X variant
    372 0	string		REGEDIT
    373 # skip ASCII text like "REGEDITor.txt" but match
    374 # L1WMAP.REG with only 1 CRNL or org.gnome.gnumeric.reg with 2 NL
    375 >7	search/3	\n			Windows Registry text
    376 !:mime	text/x-ms-regedit
    377 !:ext	reg
    378 #		Windows 9X variant
    379 >>0	string		REGEDIT4		(Win95 or above)
    380 #		Windows 2K ANSI variant
    381 0	string		Windows\ Registry\ Editor\ 
    382 >&0	string		Version\ 5.00\r\n\r\n	Windows Registry text (Win2K or above)
    383 !:mime	text/x-ms-regedit
    384 !:ext	reg
    385 #		Windows 2K UTF-16 variant
    386 2	lestring16	Windows\ Registry\ Editor\ 
    387 >0x32	lestring16	Version\ 5.00\r\n\r\n	Windows Registry little-endian text (Win2K or above)
    388 # relative offset not working
    389 #>&0	lestring16	Version\ 5.00\r\n\r\n	Windows Registry little-endian text (Win2K or above)
    390 !:mime	text/x-ms-regedit
    391 !:ext	reg
    392 #		WINE variant
    393 # URL: https://en.wikipedia.org/wiki/Wine_(software)
    394 # Reference: https://www.winehq.org/pipermail/wine-cvs/2005-October/018763.html
    395 # Note:	WINE use text based registry (system.reg,user.reg,userdef.reg)
    396 #	instead binary hiv structure like Windows
    397 0	string	WINE\ REGISTRY\ Version\ 	WINE registry text
    398 # version 2
    399 >&0	string	x				\b, version %s
    400 !:mime	text/x-wine-extension-reg
    401 !:ext	reg
    402 
    403 # Windows *.INF *.INI files updated by Joerg Jenderek at Apr 2013, Feb 2018
    404 # empty ,comment , section
    405 # PR/383: remove unicode BOM because it is not portable across regex impls
    406 #0	regex/s		\\`(\\r\\n|;|[[])
    407 # empty line CRLF
    408 0	ubeshort	0x0D0A
    409 >0	use		ini-file
    410 # comment line
    411 0	string		;
    412 >0	use		ini-file
    413 # section line
    414 0	string		[
    415 >0	use		ini-file
    416 # check and then display Windows INItialization configuration
    417 0	name		ini-file
    418 # look for left bracket in section line
    419 >0	search/8192	[
    420 # https://en.wikipedia.org/wiki/Autorun.inf
    421 # https://msdn.microsoft.com/en-us/library/windows/desktop/cc144200.aspx
    422 # space after right bracket
    423 # or AutoRun.Amd64 for 64 bit systems
    424 # or only NL separator
    425 >>&0	regex/c		\^(autorun)
    426 # but sometimes total commander directory tree file "treeinfo.wc" with lines like
    427 # [AUTORUN]
    428 # [boot]
    429 >>>&0	string		=]\r\n[					Total commander directory treeinfo.wc
    430 !:mime text/plain
    431 !:ext	wc
    432 # From: Pal Tamas <folti (a] balabit.hu>
    433 # Autorun File
    434 >>>&0	string		!]\r\n[					Microsoft Windows Autorun file
    435 !:mime application/x-setupscript
    436 !:ext	inf
    437 # https://msdn.microsoft.com/en-us/library/windows/hardware/ff549520(v=vs.85).aspx
    438 # version strings ASCII coded case-independent for Windows setup information script file
    439 >>&0	regex/c		\^(version|strings)]				Windows setup INFormation
    440 !:mime	application/x-setupscript
    441 #!:mime application/x-wine-extension-inf
    442 !:ext	inf
    443 # NETCRC.INF OEMCPL.INF
    444 >>&0	regex/c		\^(WinsockCRCList|OEMCPL)]			Windows setup INFormation
    445 !:mime	application/x-setupscript
    446 !:ext	inf
    447 # http://www.winfaq.de/faq_html/Content/tip2500/onlinefaq.php?h=tip2653.htm
    448 # https://msdn.microsoft.com/en-us/library/windows/desktop/cc144102.aspx
    449 # .ShellClassInfo DeleteOnCopy LocalizedFileNames ASCII coded case-independent
    450 >>&0	regex/c	\^(\.ShellClassInfo|DeleteOnCopy|LocalizedFileNames)]	Windows desktop.ini
    451 !:mime application/x-wine-extension-ini
    452 #!:mime text/plain
    453 # https://support.microsoft.com/kb/84709/
    454 >>&0	regex/c		\^(don't\ load)]				Windows CONTROL.INI
    455 !:mime application/x-wine-extension-ini
    456 !:ext	ini
    457 >>&0	regex/c		\^(ndishlp\\$|protman\\$|NETBEUI\\$)]		Windows PROTOCOL.INI
    458 !:mime application/x-wine-extension-ini
    459 !:ext	ini
    460 # https://technet.microsoft.com/en-us/library/cc722567.aspx
    461 # http://www.winfaq.de/faq_html/Content/tip0000/onlinefaq.php?h=tip0137.htm
    462 >>&0	regex/c		\^(windows|Compatibility|embedding)]		Windows WIN.INI
    463 !:mime application/x-wine-extension-ini
    464 !:ext	ini
    465 # https://en.wikipedia.org/wiki/SYSTEM.INI
    466 >>&0	regex/c		\^(boot|386enh|drivers)]			Windows SYSTEM.INI
    467 !:mime application/x-wine-extension-ini
    468 !:ext	ini
    469 # http://www.mdgx.com/newtip6.htm
    470 >>&0	regex/c		\^(SafeList)]					Windows IOS.INI
    471 !:mime application/x-wine-extension-ini
    472 !:ext	ini
    473 # https://en.wikipedia.org/wiki/NTLDR	Windows Boot Loader information
    474 >>&0	regex/c		\^(boot\x20loader)]				Windows boot.ini
    475 !:mime application/x-wine-extension-ini
    476 !:ext	ini
    477 # https://en.wikipedia.org/wiki/CONFIG.SYS
    478 >>&0	regex/c		\^(menu)]					MS-DOS CONFIG.SYS
    479 # @CONFIG.UI configuration file of previous DOS version saved by Caldera OPENDOS INSTALL.EXE
    480 # CONFIG.PSS saved version of file CONFIG.SYS created by %WINDIR%\SYTEM\MSCONFIG.EXE
    481 # CONFIG.TSH renamed file CONFIG.SYS.BAT by %WINDIR%\SYTEM\MSCONFIG.EXE
    482 # dos and w40 used in dual booting scene
    483 !:ext	sys/dos/w40
    484 # https://support.microsoft.com/kb/118579/
    485 >>&0	regex/c		\^(Paths)]\r\n					MS-DOS MSDOS.SYS
    486 !:ext	sys/dos
    487 # http://chmspec.nongnu.org/latest/INI.html#HHP
    488 >>&0	regex/c		\^(options)]\r\n				Microsoft HTML Help Project
    489 !:mime text/plain
    490 !:ext	hhp
    491 # unknown keyword after opening bracket
    492 >>&0	default				x
    493 #>>>&0	string/c			x	UNKNOWN [%s
    494 # look for left bracket of second section
    495 >>>&0	search/8192			[
    496 # version Strings FileIdentification
    497 >>>>&0	string/c			version				Windows setup INFormation
    498 !:mime application/x-setupscript
    499 !:ext	inf
    500 # https://en.wikipedia.org/wiki/Initialization_file	Windows Initialization File or other
    501 >>>>&0	default				x
    502 >>>>>&0	ubyte				x
    503 # characters, digits, underscore and white space followed by right bracket
    504 # terminated by CR implies section line to skip BOOTLOG.TXT DETLOG.TXT
    505 >>>>>>&-1	regex			\^([A-Za-z0-9_\(\)\ ]+)\]\r	Generic INItialization configuration [%-.40s
    506 # NETDEF.INF multiarc.ini 
    507 #!:mime	application/x-setupscript
    508 !:mime	application/x-wine-extension-ini
    509 #!:mime	text/plain
    510 !:ext	ini/inf
    511 # UTF-16 BOM followed by CR~0D00 , comment~semicolon~3B00 , section~bracket~5B00
    512 0	ubelong&0xFFff89FF	=0xFFFE0900
    513 # look for left bracket in section line
    514 >2	search/8192		[
    515 # keyword without 1st letter which is maybe up-/down-case
    516 >>&3	lestring16		ersion]			Windows setup INFormation
    517 !:mime	application/x-setupscript
    518 !:ext	inf
    519 >>&3	lestring16		trings]			Windows setup INFormation
    520 !:mime	application/x-setupscript
    521 !:ext	inf
    522 >>&3	lestring16		ourceDisksNames]	Windows setup INFormation
    523 !:mime	application/x-setupscript
    524 !:ext	inf
    525 # netnwcli.inf start with ;---[ NetNWCli.INX ]
    526 >>&3	default			x
    527 # look for NL followed by left bracket
    528 >>>&0	search/8192		\x0A\x00\x5b
    529 >>>>&3	lestring16		ersion]			Windows setup INFormation
    530 !:mime	application/x-setupscript
    531 !:ext	inf
    532 
    533 # Windows Precompiled INF files *.PNF added by Joerg Jenderek at Mar 2013 of _PNF_HEADER inf.h
    534 # http://read.pudn.com/downloads3/sourcecode/windows/248345/win2k/private/windows/setup/setupapi/inf.h__.htm
    535 # GRR: line below too general as it catches also PDP-11 UNIX/RT ldp
    536 0		leshort&0xFeFe	0x0000
    537 !:strength -5
    538 # test for unused null bits in PNF_FLAGs
    539 >4	ulelong&0xFCffFe00	0x00000000
    540 # only found 58h for Offset of WinDirPath immediately after _PNF_HEADER structure
    541 >>68		ulelong		>0x57
    542 # test for zero high byte of InfValueBlockSize, followed by WinDirPath like
    543 # C:\WINDOWS (ASCII 0x433a5c.. , unicode 0x43003a005c..) or X:\MININT
    544 >>>(68.l-1)	ubelong&0xffE0C519	=0x00400018	Windows Precompiled iNF
    545 !:mime	application/x-pnf
    546 # currently only found Major Version=1 and Minor Version=1
    547 #>>>>0		uleshort	=0x0101
    548 #>>>>>1		ubyte		x		\b, version %u
    549 #>>>>>0		ubyte		x		\b.%u
    550 >>>>0		uleshort	!0x0101
    551 >>>>>1		ubyte		x		\b, version %u
    552 >>>>>0		ubyte		x		\b.%u
    553 # 1 ,2 (windows 98 SE)
    554 #>>>>2		uleshort	=2		\b, InfStyle %u
    555 >>>>2		uleshort	!2		\b, InfStyle %u
    556 #	PNF_FLAG_IS_UNICODE		0x00000001
    557 #	PNF_FLAG_HAS_STRINGS		0x00000002
    558 #	PNF_FLAG_SRCPATH_IS_URL		0x00000004
    559 #	PNF_FLAG_HAS_VOLATILE_DIRIDS	0x00000008
    560 #	PNF_FLAG_INF_VERIFIED		0x00000010
    561 #	PNF_FLAG_INF_DIGITALLY_SIGNED	0x00000020
    562 #	??				0x00000100
    563 #	??				0x01000000
    564 #	??				0x02000000
    565 >>>>4	ulelong&0x00000001	0x00000001	\b, unicoded
    566 >>>>4	ulelong&0x00000020	0x00000020	\b, digitally signed
    567 #>>>>8		ulelong		x		\b, InfSubstValueListOffset 0x%x
    568 # many 0, 1 lmouusb.PNF, 2 linkfx10.PNF , f webfdr16.PNF
    569 #>>>>12		uleshort	x		\b, InfSubstValueCount 0x%x
    570 # only < 9 found
    571 #>>>>14		uleshort	x		\b, InfVersionDatumCount 0x%x
    572 # only found values lower 0x0000ffff
    573 #>>>>16		ulelong		x		\b, InfVersionDataSize 0x%x
    574 # only found positive values lower 0x00ffFFff for InfVersionDataOffset
    575 >>>>20		ulelong		x		\b, at 0x%x
    576 >>>>4	ulelong&0x00000001	=0x00000001
    577 # case independent: CatalogFile Class DriverVer layoutfile LayoutFile SetupClass signature Signature
    578 >>>>>(20.l)	lestring16	x		"%s"
    579 >>>>4	ulelong&0x00000001	!0x00000001
    580 >>>>>(20.l)	string		x		"%s"
    581 # FILETIME is number of 100-nanosecond intervals since 1 January 1601
    582 #>>>>24		ulequad		x		\b, InfVersionLastWriteTime %16.16llx
    583 # only found values lower 0x00ffFFff
    584 #>>>>32		ulelong		x		\b, StringTableBlockOffset 0x%x
    585 #>>>>36		ulelong		x		\b, StringTableBlockSize 0x%x
    586 #>>>>40		ulelong		x		\b, InfSectionCount 0x%x
    587 #>>>>44		ulelong		x		\b, InfSectionBlockOffset 0x%x
    588 #>>>>48		ulelong		x		\b, InfSectionBlockSize 0x%x
    589 #>>>>52		ulelong		x		\b, InfLineBlockOffset 0x%x
    590 #>>>>56		ulelong		x		\b, InfLineBlockSize 0x%x
    591 #>>>>60		ulelong		x		\b, InfValueBlockOffset 0x%x
    592 #>>>>64		ulelong		x		\b, InfValueBlockSize 0x%x
    593 # WinDirPathOffset
    594 #>>>>68		ulelong		x		\b, at 0x%x
    595 >>>>68		ulelong		>0x57
    596 >>>>>4	ulelong&0x00000001	=0x00000001
    597 >>>>>>(68.l)	ubequad		=0x43003a005c005700
    598 # normally unicoded C:\Windows
    599 #>>>>>>>(68.l)	lestring16	x		\b, WinDirPath "%s"
    600 >>>>>>(68.l)	ubequad		!0x43003a005c005700
    601 >>>>>>>(68.l)	lestring16	x		\b, WinDirPath "%s"
    602 >>>>>4	ulelong&0x00000001	!0x00000001
    603 # normally ASCII C:\WINDOWS
    604 #>>>>>>(68.l)	string		=C:\\WINDOWS	\b, WinDirPath "%s"
    605 >>>>>>(68.l)	string		!C:\\WINDOWS	\b, WinDirPath "%s"
    606 # found OsLoaderPathOffset values often 0 , once 70h corelist.PNF, once 68h ASCII machine.PNF
    607 #>>>>72		ulelong		>0		\b, at 0x%x
    608 >>>>72		ulelong		>0		\b,
    609 >>>>>4	ulelong&0x00000001	=0x00000001
    610 >>>>>>(72.l)	lestring16	x		OsLoaderPath "%s"
    611 >>>>>4	ulelong&0x00000001	!0x00000001
    612 # seldom C:\ instead empty
    613 >>>>>>(72.l)	string		x		OsLoaderPath "%s"
    614 # 1fdh
    615 #>>>>76		uleshort	x		\b, StringTableHashBucketCount 0x%x
    616 >>>>78		uleshort	!0x407		\b, LanguageId %x
    617 # only 407h found
    618 #>>>>78		uleshort	=0x407		\b, LanguageId %x
    619 # InfSourcePathOffset often 0
    620 #>>>>80		ulelong		>0		\b, at 0x%x
    621 >>>>80		ulelong		>0		\b,
    622 >>>>>4	ulelong&0x00000001	=0x00000001
    623 >>>>>>(80.l)	lestring16	x		SourcePath "%s"
    624 >>>>>4	ulelong&0x00000001	!0x00000001
    625 >>>>>>(80.l)	string		>\0		SourcePath "%s"
    626 # OriginalInfNameOffset often 0
    627 #>>>>84		ulelong		>0		\b, at 0x%x
    628 >>>>84		ulelong		>0		\b,
    629 >>>>>4	ulelong&0x00000001	=0x00000001
    630 >>>>>>(84.l)	lestring16	x		InfName "%s"
    631 >>>>>4	ulelong&0x00000001	!0x00000001
    632 >>>>>>(84.l)	string		>\0		InfName "%s"
    633 
    634 # Summary: backup file created with utility like NTBACKUP.EXE shipped with Windows NT/2K/XP/2003
    635 # Extension: .bkf
    636 # Created by: Joerg Jenderek
    637 # URL: https://en.wikipedia.org/wiki/NTBackup
    638 # Reference: http://laytongraphics.com/mtf/MTF_100a.PDF
    639 # Descriptor BloCK name of Microsoft Tape Format
    640 0	string			TAPE
    641 # Format Logical Address is zero
    642 >20	ulequad			0
    643 # Reserved for MBC is zero
    644 >>28	uleshort		0
    645 # Control Block ID is zero
    646 >>>36	ulelong			0
    647 # BIT4-BIT15, BIT18-BIT31 of block attributes are unused
    648 >>>>4	ulelong&0xFFfcFFe0	0		Windows NTbackup archive
    649 #!:mime application/x-ntbackup
    650 !:ext bkf
    651 # OS ID
    652 >>>>>10	ubyte			1		\b NetWare
    653 >>>>>10	ubyte			13		\b NetWare SMS
    654 >>>>>10	ubyte			14		\b NT
    655 >>>>>10	ubyte			24		\b 3
    656 >>>>>10	ubyte			25		\b OS/2
    657 >>>>>10	ubyte			26		\b 95
    658 >>>>>10	ubyte			27		\b Macintosh
    659 >>>>>10	ubyte			28		\b UNIX
    660 # OS Version (2)
    661 #>>>>>11	ubyte			x		OS V=%x
    662 # MTF_CONTINUATION	Media Sequence Number > 1
    663 #>>>>>4	ulelong&0x00000001	!0		\b, continued
    664 # MTF_COMPRESSION
    665 >>>>>4	ulelong&0x00000004	!0		\b, compressed
    666 # MTF_EOS_AT_EOM	End Of Medium was hit during end of set processing
    667 >>>>>4	ulelong&0x00000008	!0		\b, End Of Medium hit
    668 >>>>>4	ulelong&0x00020000	0
    669 # MTF_SET_MAP_EXISTS	A Media Based Catalog Set Map may exist on tape
    670 >>>>>>4	ulelong&0x00010000	!0		\b, with catalog
    671 # MTF_FDD_ALLOWED	However File/Directory Detail can only exist if a Set Map is also present
    672 >>>>>4	ulelong&0x00020000	!0		\b, with file catalog
    673 # Offset To First Event 238h,240h,28Ch
    674 #>>>>>8	uleshort		x		\b, event offset %4.4x
    675 # Displayable Size (20e0230h 20e024ch 20e0224h)
    676 #>>>>>8	ulequad			x		dis. size %16.16llx
    677 # Media Family ID (455288C4h 4570BD1Ah 45708F2Fh 4570BBF5h)
    678 #>>>>>52	ulelong			x		family ID %8.8x
    679 # TAPE Attributes (3)
    680 #>>>>>56	ulelong			x		TAPE %8.8x
    681 # Media Sequence Number
    682 >>>>>60	uleshort		>1		\b, sequence %u
    683 # Password Encryption Algorithm (3)
    684 >>>>>62	uleshort		>0		\b, 0x%x encrypted
    685 # Soft Filemark Block Size * 512 (2)
    686 #>>>>>64	uleshort		=2		\b, soft size %u*512
    687 >>>>>64	uleshort		!2		\b, soft size %u*512
    688 # Media Based Catalog Type (1,2)
    689 #>>>>>66	uleshort		x		\b, catalog type %4.4x
    690 # size of Media Name (66,68,6Eh)
    691 >>>>>68	uleshort		>0
    692 # offset of Media Name (5Eh)
    693 >>>>>>70	uleshort	>0
    694 # 0~, 1~ANSI, 2~UNICODE
    695 >>>>>>>48	ubyte		1
    696 # size terminated ansi coded string normally followed by "MTF Media Label"
    697 >>>>>>>>(70.s)	string		>\0		\b, name: %s
    698 >>>>>>>48	ubyte		2
    699 # Not null, but size terminated unicoded string
    700 >>>>>>>>(70.s)	lestring16	x		\b, name: %s
    701 # size of Media Label (104h)
    702 >>>>>72	uleshort		>0
    703 # offset of Media Label (C4h,C6h,CCh)
    704 >>>>>74		uleshort	>0
    705 >>>>>>48	ubyte		1
    706 #Tag|Version|Vendor|Vendor ID|Creation Time Stamp|Cartridge Label|Side|Media ID|Media Domain ID|Vendor Specific fields
    707 >>>>>>>(74.s)	string		>\0		\b, label: %s
    708 >>>>>>48	ubyte		2
    709 >>>>>>>(74.s)	lestring16	x		\b, label: %s
    710 # size of password name (0,1Ch)
    711 #>>>>>76	uleshort		>0		\b, password size %4.4x
    712 # Software Vendor ID (CBEh)
    713 >>>>>86	uleshort		x		\b, software (0x%x)
    714 # size of Software Name (6Eh)
    715 >>>>>80	uleshort		>0
    716 # offset of Software Name (1C8h,1CAh,1D0h)
    717 >>>>>>82	uleshort	>0
    718 # 1~ANSI, 2~UNICODE
    719 >>>>>>>48	ubyte		1
    720 >>>>>>>>(82.s)	string		>\0		\b: %s
    721 >>>>>>>48	ubyte		2
    722 # size terminated unicoded coded string normally followed by "SPAD"
    723 >>>>>>>>(82.s)	lestring16	x		\b: %s
    724 # Format Logical Block Size (512,1024)
    725 #>>>>>84	uleshort		=1024		\b, block size %u
    726 >>>>>84	uleshort		!1024		\b, block size %u
    727 # Media Date of MTF_DATE_TIME type with 5 bytes
    728 #>>>>>>88	ubequad			x		DATE %16.16llx
    729 # MTF Major Version (1)
    730 #>>>>>>93	ubyte		x		\b, MFT version %x
    731 #
    732 
    733 # URL: https://en.wikipedia.org/wiki/PaintShop_Pro
    734 # Reference: https://www.cryer.co.uk/file-types/p/pal.htm
    735 # Created by: Joerg Jenderek
    736 # Note: there exist other color palette formats also with .pal extension
    737 0	string	JASC-PAL\r\n	PaintShop Pro color palette
    738 #!:mime	text/plain
    739 # PspPalette extension is used by newer (probably 8) PaintShopPro versions
    740 !:ext	pal/PspPalette
    741 # 2nd line contains palette file version. For example "0100"
    742 >10	string	!0100		\b, version %.4s
    743 # third line contains the number of colours: 16 256 ...
    744 >16	string	x		\b, %.3s colors
    745 
    746 # URL: https://en.wikipedia.org/wiki/Innosetup
    747 # Reference: https://github.com/jrsoftware/issrc/blob/master/Projects/Undo.pas
    748 # Created by: Joerg Jenderek
    749 # Note:	created by like "InnoSetup self-extracting archive" inside ./msdos
    750 # TrID labeles the entry as "Inno Setup Uninstall Log"
    751 #	TUninstallLogID
    752 0	string	Inno\ Setup\ Uninstall\ Log\ (b)	InnoSetup Log
    753 !:mime	application/x-innosetup
    754 # unins000.dat, unins001.dat, ...
    755 !:ext	dat
    756 # " 64-bit" variant
    757 >0x1c	string		>\0				\b%.7s
    758 # AppName[0x80] like "Minimal SYStem", ClamWin Free Antivirus , ...
    759 >0xc0	string		x				%s
    760 # AppId[0x80] is simliar to AppName or
    761 # GUID like {4BB0DCDC-BC24-49EC-8937-72956C33A470} start with left brace
    762 >0x40	ubyte		0x7b
    763 >>0x40	string		x				%-.38s
    764 # do not know how this log version correlates to program version
    765 >0x140	ulelong		x				\b, version 0x%x
    766 # NumRecs
    767 #>0x144	ulelong		x				\b, 0x%4.4x records
    768 # EndOffset means files size
    769 >0x148	ulelong		x				\b, %u bytes
    770 # Flags 5 25h 35h
    771 #>0x14c	ulelong		x				\b, flags %8.8x
    772 # Reserved: array[0..26] of Longint
    773 # the non Unicode HighestSupportedVersion may never become greater than or equal to 1000
    774 >0x140	ulelong		<1000
    775 # hostname
    776 >>0x1d6	pstring		x				\b, %s
    777 # user name
    778 >>>&0	pstring		x				\b\%s
    779 # directory like C:\Program Files (x86)\GnuWin32
    780 >>>>&0	pstring		x				\b, "%s"
    781 # version 1000 or higher implies unicode
    782 >0x140	ulelong		>999
    783 # hostname
    784 >>0x1db	lestring16	x				\b, %-.9s
    785 # utf string variant with prepending fe??ffFFff
    786 >>0x1db	search/43	\xFF\xFF\xFF			
    787 # user name
    788 >>>&0	lestring16	x				\b\%-.9s
    789 >>>&0	search/43	\xFF\xFF\xFF			
    790 # directory like C:\Program Files\GIMP 2
    791 >>>>&0	lestring16	x				\b, %-.42s
    792 
    793 # Windows Imaging (WIM) Image
    794 # Update: Joerg Jenderek at Mar 2019
    795 # URL: https://en.wikipedia.org/wiki/Windows_Imaging_Format
    796 # Reference: https://download.microsoft.com/download/f/e/f/
    797 # fefdc36e-392d-4678-9e4e-771ffa2692ab/Windows%20Imaging%20File%20Format.rtf
    798 # Note: verified by like `7z t boot.wim` `wiminfo install.esd --header`
    799 0	string		MSWIM\000\000\000
    800 >0	use		wim-archive
    801 # https://wimlib.net/man1/wimoptimize.html
    802 0	string		WLPWM\000\000\000
    803 >0	use		wim-archive
    804 0	name		wim-archive
    805 # _WIMHEADER_V1_PACKED ImageTag[8]
    806 >0	string		x			Windows imaging
    807 !:mime	application/x-ms-wim
    808 # TO avoid in file version 5.36 error like
    809 # Magdir/windows, 760: Warning: Current entry does not yet have a description
    810 # file: could not find any valid magic files! (No error)
    811 # splitted WIM
    812 >16	ulelong		&0x00000008		(SWM
    813 !:ext	swm
    814 # usPartNumber; 1, unless the file was split into multiple parts
    815 >>40	uleshort	x			\b %u
    816 # usTotalParts; The total number of WIM file parts in a spanned set
    817 >>42	uleshort	x			\b of %u) image
    818 # non splitted WIM
    819 >16	ulelong		^0x00000008
    820 # https://wimlib.net/man1/wimmount.html
    821 # solid WIMs; version 3584; usually contain LZMS-compressed and the .esd extension
    822 >>12	ulelong		3584			(ESD) image
    823 !:ext	esd
    824 >>12	ulelong		!3584			(WIM) image
    825 !:ext	wim
    826 >0	string/b	WLPWM\000\000\000	\b, wimlib pipable format
    827 # cbSize size of the WIM header in bytes like 208
    828 #>8	ulelong		x			\b, headersize %u
    829 # dwVersion version of the WIM file 00010d00h~1.13 00000e00h~0.14
    830 >14	uleshort	x			v%u
    831 >13	ubyte		x			\b.%u
    832 # dwImageCount; The number of images contained in the WIM file
    833 >44	ulelong		>1			\b, %u images
    834 # dwBootIndex
    835 # 1-based index of the bootable image of the WIM, or 0 if no image is bootable
    836 >0x78	ulelong		>0			\b, bootable no. %u
    837 # dwFlags
    838 #>16	ulelong		x			\b, flags 0x%8.8x
    839 #define FLAG_HEADER_COMPRESSION		0x00000002
    840 #define FLAG_HEADER_READONLY            0x00000004
    841 #define FLAG_HEADER_SPANNED		0x00000008
    842 #define FLAG_HEADER_RESOURCE_ONLY       0x00000010
    843 #define FLAG_HEADER_METADATA_ONLY       0x00000020
    844 #define FLAG_HEADER_WRITE_IN_PROGRESS   0x00000040
    845 #define FLAG_HEADER_RP_FIX		0x00000080 reparse point fixup
    846 #define FLAG_HEADER_COMPRESS_RESERVED   0x00010000
    847 #define FLAG_HEADER_COMPRESS_XPRESS     0x00020000
    848 #define FLAG_HEADER_COMPRESS_LZX	0x00040000
    849 #define FLAG_HEADER_COMPRESS_LZMS	0x00080000
    850 #define FLAG_HEADER_COMPRESS_XPRESS2    0x00100000 wimlib-1.13.0\include\wimlib\header.h 
    851 # XPRESS, with small chunk size
    852 >16	ulelong		&0x00100000		\b, XPRESS2
    853 >16	ulelong		&0x00080000		\b, LZMS
    854 >16	ulelong		&0x00040000		\b, LZX
    855 >16	ulelong		&0x00020000		\b, XPRESS
    856 >16	ulelong		&0x00000002		compressed
    857 >16	ulelong		&0x00000004		\b, read only
    858 >16	ulelong		&0x00000010		\b, resource only
    859 >16	ulelong		&0x00000020		\b, metadata only
    860 >16	ulelong		&0x00000080		\b, reparse point fixup
    861 #>16	ulelong		&0x00010000		\b, RESERVED
    862 # dwCompressionSize; Uncompressed chunk size for resources or 0 if uncompressed
    863 #>20	ulelong		>0			\b, chunk size %u bytes
    864 # gWIMGuid
    865 #>24	ubequad		x			\b, GUID 0x%16.16llx
    866 #>>32	ubequad		x			\b%16.16llx
    867 # rhOffsetTable; the location of the resource lookup table
    868 # wim_reshdr_disk[24]= u8 size_in_wim[7] + u8 flags + le64 offset_in_wim + le64 uncompressed_size
    869 #>48	ubequad		x			\b, rhOffsetTable 0x%16.16llx
    870 # rhXmlData; the location of the XML data
    871 #>0x50	ulelong		x			\b, at 0x%8.8x
    872 # NOT WORKING \xff\xfe<\0W\0I\0M\0
    873 #>(0x50.l)	ubequad	x			\b, xml=%16.16llx
    874 # rhBootMetadata; the location of the metadata resource
    875 #>0x60	ubequad		x			\b, rhBootMetadata 0x%16.16llx
    876 # rhIntegrity; the location of integrity table used to verify files
    877 #>0x7c	ubequad		x			\b, rhIntegrity 0x%16.16llx
    878 # Unused[60]
    879 #>148	ubequad		!0			\b,unused 0x%16.16llx
    880 #
    881 
    882