diff --git a/BurnOutSharp/PackerType/WinZipSFX.cs b/BurnOutSharp/PackerType/WinZipSFX.cs
index 09c79dc1..4ef3faef 100644
--- a/BurnOutSharp/PackerType/WinZipSFX.cs
+++ b/BurnOutSharp/PackerType/WinZipSFX.cs
@@ -25,15 +25,25 @@ namespace BurnOutSharp.PackerType
if (nex == null)
return null;
+ // If the resident-name table doesnt exist
+ if (nex.ResidentNameTable == null)
+ return null;
+
+ // Check for the WinZip name string
+ bool winZipNameFound = nex.ResidentNameTable.Where(rnte => rnte?.NameString != null)
+ .Select(rnte => Encoding.ASCII.GetString(rnte.NameString))
+ .Any(s => s.Contains("WZ-SE-01"));
+
+ // If we didn't find it
+ if (!winZipNameFound)
+ return null;
+
+ // Try to get a known version
string version = GetNEHeaderVersion(nex);
if (!string.IsNullOrWhiteSpace(version))
return $"WinZip SFX {version}";
- version = GetNEUnknownHeaderVersion(nex, file, includeDebug);
- if (!string.IsNullOrWhiteSpace(version))
- return $"WinZip SFX {version}";
-
- return null;
+ return $"WinZip SFX Unknown Version (16-bit)";
}
///
@@ -62,7 +72,7 @@ namespace BurnOutSharp.PackerType
version = GetAdjustedManifestVersion(pex);
if (!string.IsNullOrWhiteSpace(version))
return $"WinZip SFX {version}";
-
+
return "WinZip SFX Unknown Version (32-bit)";
}
@@ -85,18 +95,18 @@ namespace BurnOutSharp.PackerType
// WinZip Self-Extractor header corrupt.
new ContentMatchSet(new byte?[]
{
- 0x57, 0x69, 0x6E, 0x5A, 0x69, 0x70, 0x20, 0x53,
- 0x65, 0x6C, 0x66, 0x2D, 0x45, 0x78, 0x74, 0x72,
+ 0x57, 0x69, 0x6E, 0x5A, 0x69, 0x70, 0x20, 0x53,
+ 0x65, 0x6C, 0x66, 0x2D, 0x45, 0x78, 0x74, 0x72,
0x61, 0x63, 0x74, 0x6F, 0x72, 0x20, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x6F, 0x72,
- 0x72, 0x75, 0x70, 0x74, 0x2E,
+ 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x6F, 0x72,
+ 0x72, 0x75, 0x70, 0x74, 0x2E,
}, "Unknown Version (32-bit)"),
// winzip\shell\open\command
new ContentMatchSet(new byte?[]
{
- 0x77, 0x69, 0x6E, 0x7A, 0x69, 0x70, 0x5C, 0x73,
- 0x68, 0x65, 0x6C, 0x6C, 0x5C, 0x6F, 0x70, 0x65,
+ 0x77, 0x69, 0x6E, 0x7A, 0x69, 0x70, 0x5C, 0x73,
+ 0x68, 0x65, 0x6C, 0x6C, 0x5C, 0x6F, 0x70, 0x65,
0x6E, 0x5C, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E,
0x64,
}, "Unknown Version (32-bit)"),
@@ -204,7 +214,7 @@ namespace BurnOutSharp.PackerType
return null;
else if (string.IsNullOrEmpty(version))
return null;
-
+
// Some version strings don't exactly match the public version number
switch (version)
{
@@ -236,7 +246,7 @@ namespace BurnOutSharp.PackerType
return $"(Unknown - internal version {version})";
}
}
-
+
///
/// Get the version from the NE header value combinations
///
@@ -281,7 +291,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "2.0 (MS-DOS/16-bit)";
-
+
// 2.0 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -353,7 +363,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Compact 2.0 (16-bit)";
-
+
// Software Installation 2.0 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -388,11 +398,11 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Software Installation 2.0 (16-bit)";
-
+
#endregion
#region 2.1 RC2 Variants
-
+
// 2.1 RC2 (MS-DOS/16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -499,7 +509,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Compact 2.1 RC2 (16-bit)";
-
+
// Software Installation 2.1 RC2 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -534,7 +544,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Software Installation 2.1 RC2 (16-bit)";
-
+
#endregion
#region 2.1 Variants
@@ -574,7 +584,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "2.1 (MS-DOS/16-bit)";
-
+
// 2.1 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -609,7 +619,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "2.1 (16-bit)";
-
+
// Compact 2.1 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -645,7 +655,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Compact 2.1 (16-bit)";
-
+
// Software Installation 2.1 (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -720,7 +730,7 @@ namespace BurnOutSharp.PackerType
&& nex.WindowsSDKRevision == 0x00
&& nex.WindowsSDKVersion == 0x03)
return "Personal Edition (16-bit)";
-
+
// Personal Edition 32-bit (16-bit)
if (nex.LinkerVersion == 0x11
&& nex.LinkerRevision == 0x20
@@ -796,22 +806,6 @@ namespace BurnOutSharp.PackerType
return null;
}
- ///
- /// Get the unknown version from the NE header value combinations
- ///
- private string GetNEUnknownHeaderVersion(NewExecutable nex, string file, bool includeDebug)
- {
- // If the resident-name table doesnt exist
- if (nex.ResidentNameTable == null)
- return null;
-
- bool found = nex.ResidentNameTable.Where(rnte => rnte?.NameString != null)
- .Select(rnte => Encoding.ASCII.GetString(rnte.NameString))
- .Any(s => s.Contains("WZ-SE-01"));
-
- return found ? "Unknown Version (16-bit)" : null;
- }
-
///
/// Get the version from the PE header value combinations
///
@@ -839,7 +833,7 @@ namespace BurnOutSharp.PackerType
&& pex.OH_BaseOfData == 0x00007000
&& pex.OH_ImageBase == 0x00400000)
return "2.2.3063";
-
+
// 2.2.4003
if (pex.Machine == Models.PortableExecutable.MachineType.IMAGE_FILE_MACHINE_I386
&& pex.NumberOfSections == 0x0005
@@ -860,7 +854,7 @@ namespace BurnOutSharp.PackerType
&& pex.OH_BaseOfData == 0x00006000
&& pex.OH_ImageBase == 0x00400000)
return "2.2.4003";
-
+
// Software Installation 2.2.4003
if (pex.Machine == Models.PortableExecutable.MachineType.IMAGE_FILE_MACHINE_I386
&& pex.NumberOfSections == 0x0005
@@ -904,7 +898,7 @@ namespace BurnOutSharp.PackerType
&& pex.OH_SectionAlignment == 0x00001000
&& pex.OH_FileAlignment == 0x00001000)
return "2.2.4325";
-
+
// 2.2.5196
if (pex.Machine == Models.PortableExecutable.MachineType.IMAGE_FILE_MACHINE_I386
&& pex.NumberOfSections == 0x0005
@@ -927,7 +921,7 @@ namespace BurnOutSharp.PackerType
&& pex.OH_SectionAlignment == 0x00001000
&& pex.OH_FileAlignment == 0x00001000)
return "2.2.5196";
-
+
// 2.2.6202
if (pex.Machine == Models.PortableExecutable.MachineType.IMAGE_FILE_MACHINE_I386
&& pex.NumberOfSections == 0x0005
@@ -951,7 +945,7 @@ namespace BurnOutSharp.PackerType
return null;
}
-
+
///
/// Get the version from the .rdata SFX header data
///
@@ -1041,149 +1035,149 @@ namespace BurnOutSharp.PackerType
// .............ñ½;5....ˆ`..............ˆ`..ˆ`..ˆ`..SI32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xBD, 0x3B,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xBD, 0x3B,
0x35, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
0x00, 0x88, 0x60, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x53, 0x49, 0x33, 0x32, 0x45, 0x2E, 0x53,
- 0x46, 0x58,
+ 0x00, 0x53, 0x49, 0x33, 0x32, 0x45, 0x2E, 0x53,
+ 0x46, 0x58,
}, "Software Installation 2.2.1110 (32-bit)"),
// .............á.^2....ˆP..............ˆP..ˆP..ˆP..VW95LE.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x9D, 0x5E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0x9D, 0x5E,
0x32, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
0x00, 0x88, 0x50, 0x00, 0x00, 0x88, 0x50, 0x00,
- 0x00, 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E,
- 0x53, 0x46, 0x58,
+ 0x00, 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E,
+ 0x53, 0x46, 0x58,
}, "Personal Edition (32-bit)"),
// .............ïAÁ3....ˆP..............ˆP..ˆP..ˆP..VW95LE.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x41, 0xC1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x41, 0xC1,
0x33, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x50, 0x00,
0x00, 0x88, 0x50, 0x00, 0x00, 0x88, 0x50, 0x00,
- 0x00, 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E,
- 0x53, 0x46, 0x58,
+ 0x00, 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E,
+ 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit (32-bit)"),
// .............'..6....ˆ`..............ˆ`..ˆ`..ˆ`..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x0F, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x0F, 0x01,
0x36, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
0x00, 0x88, 0x60, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53,
+ 0x00, 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53,
0x46, 0x58,
}, "Personal Edition 32-bit Build 1260 (32-bit)"),
// .............Ó‘(6....ˆ`..............ˆ`..ˆ`..ˆ`..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x91, 0x28,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x91, 0x28,
0x36, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x60, 0x00,
0x00, 0x88, 0x60, 0x00, 0x00, 0x88, 0x60, 0x00,
- 0x00, 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53,
- 0x46, 0x58,
+ 0x00, 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53,
+ 0x46, 0x58,
}, "Personal Edition 32-bit Build 1285 (32-bit)"),
// ......]ïý8....˜z..............˜z..˜z..˜z..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xEF,
- 0xFD, 0x38, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xEF,
+ 0xFD, 0x38, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7A,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7A,
- 0x00, 0x00, 0x98, 0x7A, 0x00, 0x00, 0x98, 0x7A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x7A,
+ 0x00, 0x00, 0x98, 0x7A, 0x00, 0x00, 0x98, 0x7A,
0x00, 0x00, 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E,
- 0x53, 0x46, 0x58,
+ 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit Build 3063"),
// ...................½û;....ˆj..............ˆj..ˆj..ˆj..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1F, 0xBD, 0xFB, 0x3B, 0x00, 0x00,
- 0x00, 0x00, 0x88, 0x6A, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x88, 0x6A, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x88, 0x6A, 0x00, 0x00, 0x88, 0x6A,
- 0x00, 0x00, 0x88, 0x6A, 0x00, 0x00, 0x50, 0x45,
+ 0x00, 0x00, 0x88, 0x6A, 0x00, 0x00, 0x50, 0x45,
0x33, 0x32, 0x45, 0x2E, 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit Build 4325"),
// ................rS*@....Xƒ..............Xƒ..Xƒ..Xƒ..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x72, 0x53, 0x2A, 0x40, 0x00, 0x00, 0x00, 0x00,
- 0x58, 0x83, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x58, 0x83, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x83, 0x00, 0x00, 0x58, 0x83, 0x00, 0x00,
- 0x58, 0x83, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
- 0x45, 0x2E, 0x53, 0x46, 0x58,
+ 0x58, 0x83, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
+ 0x45, 0x2E, 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit Build 6028"),
// ................±.!A....Xƒ..............Xƒ..Xƒ..Xƒ..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0x1A, 0x21, 0x41, 0x00, 0x00, 0x00, 0x00,
- 0x58, 0x83, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x58, 0x83, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x58, 0x83, 0x00, 0x00, 0x58, 0x83, 0x00, 0x00,
- 0x58, 0x83, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
+ 0x58, 0x83, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
0x45, 0x2E, 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit Build 6224"),
// ................¯D.C....x„..............x„..x„..x„..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xAF, 0x44, 0x0F, 0x43, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0x84, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0x84, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x78, 0x84, 0x00, 0x00, 0x78, 0x84, 0x00, 0x00,
- 0x78, 0x84, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
+ 0x78, 0x84, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
0x45, 0x2E, 0x53, 0x46,
}, "Personal Edition 32-bit Build 6604"),
//................·Å\C....x„..............x„..x„..x„..PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB7, 0xC5, 0x5C, 0x43, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0x84, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0x84, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x78, 0x84, 0x00, 0x00, 0x78, 0x84, 0x00, 0x00,
- 0x78, 0x84, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
- 0x45, 0x2E, 0x53, 0x46, 0x58,
+ 0x78, 0x84, 0x00, 0x00, 0x50, 0x45, 0x33, 0x32,
+ 0x45, 0x2E, 0x53, 0x46, 0x58,
}, "Personal Edition 32-bit Build 6663"),
};
return MatchUtil.GetFirstMatch(file, sectionContent, matchers, includeDebug);
}
-
+
///
/// Get the unknown version from the .rdata SFX header data
///
@@ -1194,29 +1188,29 @@ namespace BurnOutSharp.PackerType
// VW95SE.SFX
new ContentMatchSet(new byte?[]
{
- 0x56, 0x57, 0x39, 0x35, 0x53, 0x45, 0x2E, 0x53,
+ 0x56, 0x57, 0x39, 0x35, 0x53, 0x45, 0x2E, 0x53,
0x46, 0x58,
}, "Unknown Version (32-bit)"),
// VW95SRE.SFX
new ContentMatchSet(new byte?[]
{
- 0x56, 0x57, 0x39, 0x35, 0x53, 0x52, 0x45, 0x2E,
+ 0x56, 0x57, 0x39, 0x35, 0x53, 0x52, 0x45, 0x2E,
0x53, 0x46, 0x58,
}, "Unknown Version Software Installation (32-bit)"),
// VW95LE.SFX
new ContentMatchSet(new byte?[]
{
- 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E, 0x53,
- 0x46, 0x58,
+ 0x56, 0x57, 0x39, 0x35, 0x4C, 0x45, 0x2E, 0x53,
+ 0x46, 0x58,
}, "Unknown Version before build 1285 Personal Edition (32-bit)"),
// PE32E.SFX
new ContentMatchSet(new byte?[]
{
- 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53, 0x46,
- 0x58,
+ 0x50, 0x45, 0x33, 0x32, 0x45, 0x2E, 0x53, 0x46,
+ 0x58,
}, "Unknown Version after 1285 Personal Edition (32-bit)"),
};