MSI was really CFB all along

This commit is contained in:
Matt Nadareski
2023-01-10 10:51:36 -08:00
parent 661808826a
commit 5ea89eefe8
7 changed files with 119 additions and 103 deletions

View File

@@ -25,6 +25,11 @@
/// </summary>
BZip2,
/// <summary>
/// Compound File Binary
/// </summary>
CFB,
/// <summary>
/// CTR Importable Archive
/// </summary>
@@ -80,11 +85,6 @@
/// </summary>
MPQ,
/// <summary>
/// Microsoft installation package
/// </summary>
MSI,
/// <summary>
/// Nintendo 3DS cart image
/// </summary>

View File

@@ -9,9 +9,9 @@ using static BurnOutSharp.Utilities.Dictionary;
namespace BurnOutSharp.FileType
{
/// <summary>
/// Microsoft installation package
/// Compound File Binary
/// </summary>
public class MSI : IScannable
public class CFB : IScannable
{
/// <inheritdoc/>
public ConcurrentDictionary<string, ConcurrentQueue<string>> Scan(Scanner scanner, string file)

View File

@@ -427,6 +427,14 @@ namespace BurnOutSharp
AppendToDictionary(protections, subProtections);
}
// CFB
if (fileName != null && scannable is CFB)
{
var subProtections = scannable.Scan(this, fileName);
PrependToKeys(subProtections, fileName);
AppendToDictionary(protections, subProtections);
}
// GCF
if (scannable is GCF)
{
@@ -475,14 +483,6 @@ namespace BurnOutSharp
AppendToDictionary(protections, subProtections);
}
// MSI
if (fileName != null && scannable is MSI)
{
var subProtections = scannable.Scan(this, fileName);
PrependToKeys(subProtections, fileName);
AppendToDictionary(protections, subProtections);
}
// MoPaQ archive
if (fileName != null && scannable is MPQ)
{

View File

@@ -43,6 +43,13 @@ namespace BurnOutSharp.Tools
#endregion
#region CFB
if (magic.StartsWith(new byte?[] { 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1 }))
return SupportedFileType.CFB;
#endregion
#region CIA
// No magic checks for CIA
@@ -150,13 +157,6 @@ namespace BurnOutSharp.Tools
#endregion
#region MSI
if (magic.StartsWith(new byte?[] { 0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1 }))
return SupportedFileType.MSI;
#endregion
#region N3DS
// No magic checks for N3DS
@@ -365,6 +365,30 @@ namespace BurnOutSharp.Tools
#endregion
#region CFB
// Installer package
if (extension.Equals("msi", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.CFB;
// Merge module
else if (extension.Equals("msm", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.CFB;
// Patch Package
else if (extension.Equals("msp", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.CFB;
// Transform
else if (extension.Equals("mst", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.CFB;
// Patch Creation Properties
else if (extension.Equals("pcp", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.CFB;
#endregion
#region CIA
if (extension.Equals("cia", StringComparison.OrdinalIgnoreCase))
@@ -433,13 +457,6 @@ namespace BurnOutSharp.Tools
#endregion
#region MSI
if (extension.Equals("msi", StringComparison.OrdinalIgnoreCase))
return SupportedFileType.MSI;
#endregion
#region N3DS
// 3DS cart image
@@ -717,6 +734,7 @@ namespace BurnOutSharp.Tools
case SupportedFileType.BFPK: return new FileType.BFPK();
case SupportedFileType.BSP: return new FileType.BSP();
case SupportedFileType.BZip2: return new FileType.BZip2();
case SupportedFileType.CFB: return new FileType.CFB();
//case SupportedFileType.CIA: return new FileType.CIA();
case SupportedFileType.Executable: return new FileType.Executable();
case SupportedFileType.GCF: return new FileType.GCF();
@@ -728,7 +746,6 @@ namespace BurnOutSharp.Tools
case SupportedFileType.MicrosoftCAB: return new FileType.MicrosoftCAB();
case SupportedFileType.MicrosoftLZ: return new FileType.MicrosoftLZ();
case SupportedFileType.MPQ: return new FileType.MPQ();
case SupportedFileType.MSI: return new FileType.MSI();
//case SupportedFileType.N3DS: return new FileType.N3DS();
//case SupportedFileType.NCF: return new FileType.NCF();
//case SupportedFileType.Nitro: return new FileType.Nitro();