xref: /freebsd/contrib/file/magic/Magdir/windows (revision 9ce06829f29232e312130530c304d287b39b0059)
1b6cee71dSXin LI
2b6cee71dSXin LI#------------------------------------------------------------------------------
3*9ce06829SXin LI# $File: windows,v 1.12 2015/08/29 07:10:35 christos Exp $
4b6cee71dSXin LI# windows:  file(1) magic for Microsoft Windows
5b6cee71dSXin LI#
6b6cee71dSXin LI# This file is mainly reserved for files where programs
7b6cee71dSXin LI# using them are run almost always on MS Windows 3.x or
8b6cee71dSXin LI# above, or files only used exclusively in Windows OS,
9b6cee71dSXin LI# where there is no better category to allocate for.
10b6cee71dSXin LI# For example, even though WinZIP almost run on Windows
11b6cee71dSXin LI# only, it is better to treat them as "archive" instead.
12b6cee71dSXin LI# For format usable in DOS, such as generic executable
13b6cee71dSXin LI# format, please specify under "msdos" file.
14b6cee71dSXin LI#
15b6cee71dSXin LI
16b6cee71dSXin LI
17b6cee71dSXin LI# Summary: Outlook Express DBX file
18b6cee71dSXin LI# Extension: .dbx
19b6cee71dSXin LI# Created by: Christophe Monniez
20b6cee71dSXin LI0	string	\xCF\xAD\x12\xFE	MS Outlook Express DBX file
21b6cee71dSXin LI>4	byte	=0xC5			\b, message database
22b6cee71dSXin LI>4	byte	=0xC6			\b, folder database
23b6cee71dSXin LI>4	byte	=0xC7			\b, account information
24b6cee71dSXin LI>4	byte	=0x30			\b, offline database
25b6cee71dSXin LI
26b6cee71dSXin LI
27b6cee71dSXin LI# Summary: Windows crash dump
28b6cee71dSXin LI# Extension: .dmp
29b6cee71dSXin LI# Created by: Andreas Schuster (http://computer.forensikblog.de/)
30b6cee71dSXin LI# Reference (1): http://computer.forensikblog.de/en/2008/02/64bit_magic.html
31b6cee71dSXin LI# Modified by (1): Abel Cheung (Avoid match with first 4 bytes only)
32b6cee71dSXin LI0	string		PAGE
33b6cee71dSXin LI>4	string		DUMP		MS Windows 32bit crash dump
34b6cee71dSXin LI>>0x05c	byte            0		\b, no PAE
35b6cee71dSXin LI>>0x05c	byte            1		\b, PAE
36b6cee71dSXin LI>>0xf88	lelong		1		\b, full dump
37b6cee71dSXin LI>>0xf88	lelong		2		\b, kernel dump
38b6cee71dSXin LI>>0xf88	lelong		3		\b, small dump
39b6cee71dSXin LI>>0x068	lelong		x		\b, %d pages
40b6cee71dSXin LI>4	string		DU64		MS Windows 64bit crash dump
41b6cee71dSXin LI>>0xf98	lelong		1		\b, full dump
42b6cee71dSXin LI>>0xf98	lelong		2		\b, kernel dump
43b6cee71dSXin LI>>0xf98	lelong		3		\b, small dump
44b6cee71dSXin LI>>0x090	lequad		x		\b, %lld pages
45b6cee71dSXin LI
46b6cee71dSXin LI
47b6cee71dSXin LI# Summary: Vista Event Log
48b6cee71dSXin LI# Extension: .evtx
49b6cee71dSXin LI# Created by: Andreas Schuster (http://computer.forensikblog.de/)
50b6cee71dSXin LI# Reference (1): http://computer.forensikblog.de/en/2007/05/some_magic.html
51b6cee71dSXin LI0	string		ElfFile\0	MS Windows Vista Event Log
52b6cee71dSXin LI>0x2a	leshort		x		\b, %d chunks
53b6cee71dSXin LI>>0x10	lelong		x		\b (no. %d in use)
54b6cee71dSXin LI>0x18	lelong		>1		\b, next record no. %d
55b6cee71dSXin LI>0x18	lelong		=1		\b, empty
56b6cee71dSXin LI>0x78	lelong		&1		\b, DIRTY
57b6cee71dSXin LI>0x78	lelong		&2		\b, FULL
58b6cee71dSXin LI
59b6cee71dSXin LI
60b6cee71dSXin LI# Summary: Windows 3.1 group files
61b6cee71dSXin LI# Extension: .grp
62b6cee71dSXin LI# Created by: unknown
63b6cee71dSXin LI0	string		\120\115\103\103	MS Windows 3.1 group files
64b6cee71dSXin LI
65b6cee71dSXin LI
66b6cee71dSXin LI# Summary: Old format help files
67b6cee71dSXin LI# Extension: .hlp
68b6cee71dSXin LI# Created by: Dirk Jagdmann <doj@cubic.org>
69b6cee71dSXin LI0	lelong		0x00035f3f		MS Windows 3.x help file
70b6cee71dSXin LI
71b6cee71dSXin LI
72b6cee71dSXin LI# Summary: Hyper terminal
73b6cee71dSXin LI# Extension: .ht
74b6cee71dSXin LI# Created by: unknown
75b6cee71dSXin LI0	string		HyperTerminal\
76b6cee71dSXin LI>15	string		1.0\ --\ HyperTerminal\ data\ file	MS Windows HyperTerminal profile
77b6cee71dSXin LI
78b6cee71dSXin LI# http://ithreats.files.wordpress.com/2009/05/\
79b6cee71dSXin LI# lnk_the_windows_shortcut_file_format.pdf
80b6cee71dSXin LI# Summary: Windows shortcut
81b6cee71dSXin LI# Extension: .lnk
82b6cee71dSXin LI# Created by: unknown
83b6cee71dSXin LI# 'L' + GUUID
84b6cee71dSXin LI0	string		\114\0\0\0\001\024\002\0\0\0\0\0\300\0\0\0\0\0\0\106	MS Windows shortcut
85b6cee71dSXin LI>20	lelong&1	1	\b, Item id list present
86b6cee71dSXin LI>20	lelong&2	2	\b, Points to a file or directory
87b6cee71dSXin LI>20	lelong&4	4	\b, Has Description string
88b6cee71dSXin LI>20	lelong&8	8	\b, Has Relative path
89b6cee71dSXin LI>20	lelong&16	16	\b, Has Working directory
90b6cee71dSXin LI>20	lelong&32	32	\b, Has command line arguments
91b6cee71dSXin LI>20	lelong&64	64	\b, Icon
92*9ce06829SXin LI>>56	lelong		x	\b number=%d
93b6cee71dSXin LI>24	lelong&1	1	\b, Read-Only
94b6cee71dSXin LI>24	lelong&2	2	\b, Hidden
95b6cee71dSXin LI>24	lelong&4	4	\b, System
96b6cee71dSXin LI>24	lelong&8	8	\b, Volume Label
97b6cee71dSXin LI>24	lelong&16	16	\b, Directory
98b6cee71dSXin LI>24	lelong&32	32	\b, Archive
99b6cee71dSXin LI>24	lelong&64	64	\b, Encrypted
100b6cee71dSXin LI>24	lelong&128	128	\b, Normal
101b6cee71dSXin LI>24	lelong&256	256	\b, Temporary
102b6cee71dSXin LI>24	lelong&512	512	\b, Sparse
103b6cee71dSXin LI>24	lelong&1024	1024	\b, Reparse point
104b6cee71dSXin LI>24	lelong&2048	2048	\b, Compressed
105b6cee71dSXin LI>24	lelong&4096	4096	\b, Offline
106b6cee71dSXin LI>28	leqwdate	x	\b, ctime=%s
107b6cee71dSXin LI>36	leqwdate	x	\b, mtime=%s
108b6cee71dSXin LI>44	leqwdate	x	\b, atime=%s
109b6cee71dSXin LI>52	lelong		x	\b, length=%u, window=
110b6cee71dSXin LI>60	lelong&1	1	\bhide
111b6cee71dSXin LI>60	lelong&2	2	\bnormal
112b6cee71dSXin LI>60	lelong&4	4	\bshowminimized
113b6cee71dSXin LI>60	lelong&8	8	\bshowmaximized
114b6cee71dSXin LI>60	lelong&16	16	\bshownoactivate
115b6cee71dSXin LI>60	lelong&32	32	\bminimize
116b6cee71dSXin LI>60	lelong&64	64	\bshowminnoactive
117b6cee71dSXin LI>60	lelong&128	128	\bshowna
118b6cee71dSXin LI>60	lelong&256	256	\brestore
119b6cee71dSXin LI>60	lelong&512	512	\bshowdefault
120b6cee71dSXin LI#>20	lelong&1	0
121b6cee71dSXin LI#>>20	lelong&2	2
122b6cee71dSXin LI#>>>(72.l-64)	pstring/h	x	\b [%s]
123b6cee71dSXin LI#>20	lelong&1	1
124b6cee71dSXin LI#>>20	lelong&2	2
125b6cee71dSXin LI#>>>(72.s)	leshort	x
126b6cee71dSXin LI#>>>&75	pstring/h	x	\b [%s]
127b6cee71dSXin LI
128b6cee71dSXin LI# Summary: Outlook Personal Folders
129b6cee71dSXin LI# Created by: unknown
130b6cee71dSXin LI0	lelong		0x4E444221	Microsoft Outlook email folder
131b6cee71dSXin LI>10	leshort		0x0e		(<=2002)
132b6cee71dSXin LI>10	leshort		0x17		(>=2003)
133b6cee71dSXin LI
134b6cee71dSXin LI
135b6cee71dSXin LI# Summary: Windows help cache
136b6cee71dSXin LI# Created by: unknown
137b6cee71dSXin LI0	string		\164\146\115\122\012\000\000\000\001\000\000\000	MS Windows help cache
138b6cee71dSXin LI
139b6cee71dSXin LI
140b6cee71dSXin LI# Summary: IE cache file
141b6cee71dSXin LI# Created by: Christophe Monniez
142b6cee71dSXin LI0	string	Client\ UrlCache\ MMF 	Internet Explorer cache file
143b6cee71dSXin LI>20	string	>\0			version %s
144b6cee71dSXin LI
145b6cee71dSXin LI
146b6cee71dSXin LI# Summary: Registry files
147b6cee71dSXin LI# Created by: unknown
148b6cee71dSXin LI# Modified by (1): Joerg Jenderek
149b6cee71dSXin LI0	string		regf		MS Windows registry file, NT/2000 or above
150b6cee71dSXin LI0	string		CREG		MS Windows 95/98/ME registry file
151b6cee71dSXin LI0	string		SHCC3		MS Windows 3.1 registry file
152b6cee71dSXin LI
153b6cee71dSXin LI
154b6cee71dSXin LI# Summary: Windows Registry text
155b6cee71dSXin LI# Extension: .reg
156b6cee71dSXin LI# Submitted by: Abel Cheung <abelcheung@gmail.com>
157b6cee71dSXin LI0	string		REGEDIT4\r\n\r\n	Windows Registry text (Win95 or above)
158b6cee71dSXin LI0	string		Windows\ Registry\ Editor\
159b6cee71dSXin LI>&0	string		Version\ 5.00\r\n\r\n	Windows Registry text (Win2K or above)
160b6cee71dSXin LI
161b6cee71dSXin LI# Windows *.INF *.INI files updated by Joerg Jenderek at Apr 2013
162c2931133SXin LI# empty ,comment , section
163c2931133SXin LI# PR/383: remove unicode BOM because it is not portable across regex impls
164c2931133SXin LI0	regex/s		\\`(\\r\\n|;|[[])
165b6cee71dSXin LI# left bracket in section line
166b6cee71dSXin LI>&0	search/8192	[
167b6cee71dSXin LI# http://en.wikipedia.org/wiki/Autorun.inf
168b6cee71dSXin LI# http://msdn.microsoft.com/en-us/library/windows/desktop/cc144200.aspx
169b6cee71dSXin LI>>&0	regex/c		\^(autorun)]\r\n
170b6cee71dSXin LI>>>&0	ubyte		=0x5b						INItialization configuration
171b6cee71dSXin LI!:mime application/x-wine-extension-ini
172b6cee71dSXin LI# From: Pal Tamas <folti@balabit.hu>
173b6cee71dSXin LI# Autorun File
174b6cee71dSXin LI>>>&0	ubyte		!0x5b						Microsoft Windows Autorun file
175b6cee71dSXin LI!:mime application/x-setupscript
176b6cee71dSXin LI# http://msdn.microsoft.com/en-us/library/windows/hardware/ff549520(v=vs.85).aspx
177b6cee71dSXin LI# version strings ASCII coded case-independent for Windows setup information script file
178b6cee71dSXin LI>>&0	regex/c		\^(version|strings)]				Windows setup INFormation
179b6cee71dSXin LI!:mime	application/x-setupscript
180b6cee71dSXin LI#!:mime application/inf
181b6cee71dSXin LI#!:mime application/x-wine-extension-inf
182b6cee71dSXin LI>>&0	regex/c		\^(WinsockCRCList|OEMCPL)]			Windows setup INFormation
183b6cee71dSXin LI!:mime	text/inf
184b6cee71dSXin LI# http://www.winfaq.de/faq_html/Content/tip2500/onlinefaq.php?h=tip2653.htm
185b6cee71dSXin LI# http://msdn.microsoft.com/en-us/library/windows/desktop/cc144102.aspx
186b6cee71dSXin LI# .ShellClassInfo DeleteOnCopy LocalizedFileNames ASCII coded case-independent
187b6cee71dSXin LI>>&0	regex/c	\^(\.ShellClassInfo|DeleteOnCopy|LocalizedFileNames)]	Windows desktop.ini
188b6cee71dSXin LI!:mime application/x-wine-extension-ini
189b6cee71dSXin LI#!:mime text/plain
190b6cee71dSXin LI# http://support.microsoft.com/kb/84709/
191b6cee71dSXin LI>>&0	regex/c		\^(don't\ load)]				Windows CONTROL.INI
192b6cee71dSXin LI!:mime application/x-wine-extension-ini
193b6cee71dSXin LI>>&0	regex/c		\^(ndishlp\\$|protman\\$|NETBEUI\\$)]		Windows PROTOCOL.INI
194b6cee71dSXin LI!:mime application/x-wine-extension-ini
195b6cee71dSXin LI# http://technet.microsoft.com/en-us/library/cc722567.aspx
196b6cee71dSXin LI# http://www.winfaq.de/faq_html/Content/tip0000/onlinefaq.php?h=tip0137.htm
197b6cee71dSXin LI>>&0	regex/c		\^(windows|Compatibility|embedding)]		Windows WIN.INI
198b6cee71dSXin LI!:mime application/x-wine-extension-ini
199b6cee71dSXin LI# http://en.wikipedia.org/wiki/SYSTEM.INI
200b6cee71dSXin LI>>&0	regex/c		\^(boot|386enh|drivers)]			Windows SYSTEM.INI
201b6cee71dSXin LI!:mime application/x-wine-extension-ini
202b6cee71dSXin LI# http://www.mdgx.com/newtip6.htm
203b6cee71dSXin LI>>&0	regex/c		\^(SafeList)]					Windows IOS.INI
204b6cee71dSXin LI!:mime application/x-wine-extension-ini
205b6cee71dSXin LI# http://en.wikipedia.org/wiki/NTLDR	Windows Boot Loader information
206b6cee71dSXin LI>>&0	regex/c		\^(boot\x20loader)]				Windows boot.ini
207b6cee71dSXin LI!:mime application/x-wine-extension-ini
208b6cee71dSXin LI>>>&0	ubyte		x
209b6cee71dSXin LI# http://en.wikipedia.org/wiki/CONFIG.SYS
210b6cee71dSXin LI>>&0	regex/c		\^(menu)]\r\n					MS-DOS CONFIG.SYS
211b6cee71dSXin LI# http://support.microsoft.com/kb/118579/
212b6cee71dSXin LI>>&0	regex/c		\^(Paths)]\r\n					MS-DOS MSDOS.SYS
213b6cee71dSXin LI# VERS string unicoded case-independent
214b6cee71dSXin LI>>&0	ubequad&0xFFdfFFdfFFdfFFdf	0x0056004500520053
215b6cee71dSXin LI# ION] string unicoded case-independent
216b6cee71dSXin LI>>>&0	ubequad&0xFFdfFFdfFFdfFFff	0x0049004f004e005d		Windows setup INFormation
217b6cee71dSXin LI!:mime application/x-setupscript
218b6cee71dSXin LI# STRI string unicoded case-independent
219b6cee71dSXin LI>>&0	ubequad&0xFFdfFFdfFFdfFFdf	0x0053005400520049
220b6cee71dSXin LI# NGS] string unicoded case-independent
221b6cee71dSXin LI>>>&0	ubequad&0xFFdfFFdfFFdfFFff	0x004e00470053005D		Windows setup INFormation
222b6cee71dSXin LI!:mime application/x-setupscript
223b6cee71dSXin LI# unknown keyword after opening bracket
224b6cee71dSXin LI>>&0	default				x
225b6cee71dSXin LI>>>&0	search/8192			[
226b6cee71dSXin LI# version Strings FileIdentification
227b6cee71dSXin LI>>>>&0	string/c			version				Windows setup INFormation
228b6cee71dSXin LI!:mime application/x-setupscript
229b6cee71dSXin LI# VERS string unicoded case-independent
230b6cee71dSXin LI>>>>&0	ubequad&0xFFdfFFdfFFdfFFdf	0x0056004500520053
231b6cee71dSXin LI# ION] string unicoded case-independent
232b6cee71dSXin LI>>>>>&0	ubequad&0xFFdfFFdfFFdfFFff	0x0049004f004e005d		Windows setup INFormation
233b6cee71dSXin LI!:mime application/x-setupscript
234b6cee71dSXin LI# http://en.wikipedia.org/wiki/Initialization_file	Windows Initialization File or other
235b6cee71dSXin LI#>>>>&0	default				x				Generic INItialization configuration
236b6cee71dSXin LI#!:mime application/x-wine-extension-ini
237b6cee71dSXin LI
238b6cee71dSXin LI# Windows Precompiled INF files *.PNF added by Joerg Jenderek at Mar 2013 of _PNF_HEADER inf.h
239b6cee71dSXin LI# http://read.pudn.com/downloads3/sourcecode/windows/248345/win2k/private/windows/setup/setupapi/inf.h__.htm
240b6cee71dSXin LI# GRR: line below too general as it catches also PDP-11 UNIX/RT ldp
241b6cee71dSXin LI0		leshort&0xFeFe	0x0000
242*9ce06829SXin LI!:strength -5
243b6cee71dSXin LI# test for unused null bits in PNF_FLAGs
244b6cee71dSXin LI>4	ulelong&0xFCffFe00	0x00000000
245b6cee71dSXin LI# only found 58h for Offset of WinDirPath immediately after _PNF_HEADER structure
246b6cee71dSXin LI>>68		ulelong		>0x57
247b6cee71dSXin LI# test for zero high byte of InfValueBlockSize, followed by WinDirPath like
248b6cee71dSXin LI# C:\WINDOWS (ASCII 0x433a5c.. , unicode 0x43003a005c..) or X:\MININT
249b6cee71dSXin LI>>>(68.l-1)	ubelong&0xffE0C519	=0x00400018	Windows Precompiled iNF
250b6cee71dSXin LI!:mime	application/x-pnf
251b6cee71dSXin LI# currently only found Major Version=1 and Minor Version=1
252b6cee71dSXin LI#>>>>0		uleshort	=0x0101
253b6cee71dSXin LI#>>>>>1		ubyte		x		\b, version %u
254b6cee71dSXin LI#>>>>>0		ubyte		x		\b.%u
255b6cee71dSXin LI>>>>0		uleshort	!0x0101
256b6cee71dSXin LI>>>>>1		ubyte		x		\b, version %u
257b6cee71dSXin LI>>>>>0		ubyte		x		\b.%u
258b6cee71dSXin LI# 1 ,2 (windows 98 SE)
259b6cee71dSXin LI#>>>>2		uleshort	=2		\b, InfStyle %u
260b6cee71dSXin LI>>>>2		uleshort	!2		\b, InfStyle %u
261b6cee71dSXin LI#	PNF_FLAG_IS_UNICODE		0x00000001
262b6cee71dSXin LI#	PNF_FLAG_HAS_STRINGS		0x00000002
263b6cee71dSXin LI#	PNF_FLAG_SRCPATH_IS_URL		0x00000004
264b6cee71dSXin LI#	PNF_FLAG_HAS_VOLATILE_DIRIDS	0x00000008
265b6cee71dSXin LI#	PNF_FLAG_INF_VERIFIED		0x00000010
266b6cee71dSXin LI#	PNF_FLAG_INF_DIGITALLY_SIGNED	0x00000020
267b6cee71dSXin LI#	??				0x00000100
268b6cee71dSXin LI#	??				0x01000000
269b6cee71dSXin LI#	??				0x02000000
270b6cee71dSXin LI>>>>4	ulelong&0x00000001	0x00000001	\b, unicoded
271b6cee71dSXin LI>>>>4	ulelong&0x00000020	0x00000020	\b, digitally signed
272b6cee71dSXin LI#>>>>8		ulelong		x		\b, InfSubstValueListOffset 0x%x
273b6cee71dSXin LI# many 0, 1 lmouusb.PNF, 2 linkfx10.PNF , f webfdr16.PNF
274b6cee71dSXin LI#>>>>12		uleshort	x		\b, InfSubstValueCount 0x%x
275b6cee71dSXin LI# only < 9 found
276b6cee71dSXin LI#>>>>14		uleshort	x		\b, InfVersionDatumCount 0x%x
277b6cee71dSXin LI# only found values lower 0x0000ffff
278b6cee71dSXin LI#>>>>16		ulelong		x		\b, InfVersionDataSize 0x%x
279b6cee71dSXin LI# only found positive values lower 0x00ffFFff for InfVersionDataOffset
280b6cee71dSXin LI>>>>20		ulelong		x		\b, at 0x%x
281b6cee71dSXin LI>>>>4	ulelong&0x00000001	=0x00000001
282b6cee71dSXin LI# case independent: CatalogFile Class DriverVer layoutfile LayoutFile SetupClass signature Signature
283b6cee71dSXin LI>>>>>(20.l)	lestring16	x		"%s"
284b6cee71dSXin LI>>>>4	ulelong&0x00000001	!0x00000001
285b6cee71dSXin LI>>>>>(20.l)	string		x		"%s"
286b6cee71dSXin LI# FILETIME is number of 100-nanosecond intervals since 1 January 1601
287b6cee71dSXin LI#>>>>24		ulequad		x		\b, InfVersionLastWriteTime %16.16llx
288b6cee71dSXin LI# only found values lower 0x00ffFFff
289b6cee71dSXin LI#>>>>32		ulelong		x		\b, StringTableBlockOffset 0x%x
290b6cee71dSXin LI#>>>>36		ulelong		x		\b, StringTableBlockSize 0x%x
291b6cee71dSXin LI#>>>>40		ulelong		x		\b, InfSectionCount 0x%x
292b6cee71dSXin LI#>>>>44		ulelong		x		\b, InfSectionBlockOffset 0x%x
293b6cee71dSXin LI#>>>>48		ulelong		x		\b, InfSectionBlockSize 0x%x
294b6cee71dSXin LI#>>>>52		ulelong		x		\b, InfLineBlockOffset 0x%x
295b6cee71dSXin LI#>>>>56		ulelong		x		\b, InfLineBlockSize 0x%x
296b6cee71dSXin LI#>>>>60		ulelong		x		\b, InfValueBlockOffset 0x%x
297b6cee71dSXin LI#>>>>64		ulelong		x		\b, InfValueBlockSize 0x%x
298b6cee71dSXin LI# WinDirPathOffset
299b6cee71dSXin LI#>>>>68		ulelong		x		\b, at 0x%x
300b6cee71dSXin LI>>>>68		ulelong		>0x57
301b6cee71dSXin LI>>>>>4	ulelong&0x00000001	=0x00000001
302b6cee71dSXin LI>>>>>>(68.l)	ubequad		=0x43003a005c005700
303b6cee71dSXin LI# normally unicoded C:\Windows
304b6cee71dSXin LI#>>>>>>>(68.l)	lestring16	x		\b, WinDirPath "%s"
305b6cee71dSXin LI>>>>>>(68.l)	ubequad		!0x43003a005c005700
306b6cee71dSXin LI>>>>>>>(68.l)	lestring16	x		\b, WinDirPath "%s"
307b6cee71dSXin LI>>>>>4	ulelong&0x00000001	!0x00000001
308b6cee71dSXin LI# normally ASCII C:\WINDOWS
309b6cee71dSXin LI#>>>>>>(68.l)	string		=C:\\WINDOWS	\b, WinDirPath "%s"
310b6cee71dSXin LI>>>>>>(68.l)	string		!C:\\WINDOWS	\b, WinDirPath "%s"
311b6cee71dSXin LI# found OsLoaderPathOffset values often 0 , once 70h corelist.PNF, once 68h ASCII machine.PNF
312b6cee71dSXin LI#>>>>72		ulelong		>0		\b, at 0x%x
313b6cee71dSXin LI>>>>72		ulelong		>0		\b,
314b6cee71dSXin LI>>>>>4	ulelong&0x00000001	=0x00000001
315b6cee71dSXin LI>>>>>>(72.l)	lestring16	x		OsLoaderPath "%s"
316b6cee71dSXin LI>>>>>4	ulelong&0x00000001	!0x00000001
317b6cee71dSXin LI# seldom C:\ instead empty
318b6cee71dSXin LI>>>>>>(72.l)	string		x		OsLoaderPath "%s"
319b6cee71dSXin LI# 1fdh
320b6cee71dSXin LI#>>>>76		uleshort	x		\b, StringTableHashBucketCount 0x%x
321b6cee71dSXin LI>>>>78		uleshort	!0x407		\b, LanguageId %x
322b6cee71dSXin LI# only 407h found
323b6cee71dSXin LI#>>>>78		uleshort	=0x407		\b, LanguageId %x
324b6cee71dSXin LI# InfSourcePathOffset often 0
325b6cee71dSXin LI#>>>>80		ulelong		>0		\b, at 0x%x
326b6cee71dSXin LI>>>>80		ulelong		>0		\b,
327b6cee71dSXin LI>>>>>4	ulelong&0x00000001	=0x00000001
328b6cee71dSXin LI>>>>>>(80.l)	lestring16	x		SourcePath "%s"
329b6cee71dSXin LI>>>>>4	ulelong&0x00000001	!0x00000001
330b6cee71dSXin LI>>>>>>(80.l)	string		>\0		SourcePath "%s"
331b6cee71dSXin LI# OriginalInfNameOffset often 0
332b6cee71dSXin LI#>>>>84		ulelong		>0		\b, at 0x%x
333b6cee71dSXin LI>>>>84		ulelong		>0		\b,
334b6cee71dSXin LI>>>>>4	ulelong&0x00000001	=0x00000001
335b6cee71dSXin LI>>>>>>(84.l)	lestring16	x		InfName "%s"
336b6cee71dSXin LI>>>>>4	ulelong&0x00000001	!0x00000001
337b6cee71dSXin LI>>>>>>(84.l)	string		>\0		InfName "%s"
338b6cee71dSXin LI
339