diff --git a/BurnOutSharp/PackerType/MicrosoftCABSFX.cs b/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
index 06f1f75c..e86f32b4 100644
--- a/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
+++ b/BurnOutSharp/PackerType/MicrosoftCABSFX.cs
@@ -7,9 +7,6 @@ namespace BurnOutSharp.PackerType
// TODO: Add extraction, which should be possible with LibMSPackN, but it refuses to extract due to SFX files lacking the typical CAB identifiers.
public class MicrosoftCABSFX : IContentCheck
{
- ///
- public bool ShouldScan(byte[] magic) => true;
-
///
public string CheckContents(string file, byte[] fileContent, bool includePosition = false)
{
@@ -18,11 +15,23 @@ namespace BurnOutSharp.PackerType
string name = fvinfo?.InternalName.Trim();
if (!string.IsNullOrWhiteSpace(name) && name.Equals("Wextract", StringComparison.OrdinalIgnoreCase))
- return $"Microsoft CAB SFX v{Utilities.GetFileVersion(file)}";
+ {
+ string version = GetVersion(file, fileContent, null);
+ if (!string.IsNullOrWhiteSpace(version))
+ return $"Microsoft CAB SFX v{Utilities.GetFileVersion(file)}";
+
+ return "Microsoft CAB SFX";
+ }
name = fvinfo?.OriginalFilename.Trim();
if (!string.IsNullOrWhiteSpace(name) && name.Equals("WEXTRACT.EXE", StringComparison.OrdinalIgnoreCase))
- return $"Microsoft CAB SFX v{Utilities.GetFileVersion(file)}";
+ {
+ string version = GetVersion(file, fileContent, null);
+ if (!string.IsNullOrWhiteSpace(version))
+ return $"Microsoft CAB SFX v{Utilities.GetFileVersion(file)}";
+
+ return "Microsoft CAB SFX";
+ }
var matchers = new List
{