diff --git a/BinaryObjectScanner/Packer/GenteeInstaller.cs b/BinaryObjectScanner/Packer/GenteeInstaller.cs
index 4578b8e4..60513b65 100644
--- a/BinaryObjectScanner/Packer/GenteeInstaller.cs
+++ b/BinaryObjectScanner/Packer/GenteeInstaller.cs
@@ -24,7 +24,7 @@ namespace BinaryObjectScanner.Packer
//
// This was found in a "Create Install 2003"-made installer
string? name = exe.AssemblyName;
- if (name == "Gentee.Installer.Install")
+ if (name.OptionalEquals("Gentee.Installer.Install"))
return "Gentee Installer";
return null;
diff --git a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
index c5468ea5..99a2ad29 100644
--- a/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
+++ b/BinaryObjectScanner/Packer/HyperTechCrackProof.cs
@@ -17,7 +17,7 @@ namespace BinaryObjectScanner.Packer
// This check may be overly limiting, as it excludes the sample provided to DiE (https://github.com/horsicq/Detect-It-Easy/issues/102).
// TODO: Find further samples and invesitgate if the "peC" section is only present on specific versions.
bool importTableMatch = Array.Exists(exe.ImportTable?.ImportDirectoryTable ?? [],
- idte => idte?.Name == "KeRnEl32.dLl");
+ idte => idte.Name == "KeRnEl32.dLl");
if (exe.ContainsSection("peC", exact: true) && importTableMatch)
return "HyperTech CrackProof";
diff --git a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
index 72ba523c..6ab0b19c 100644
--- a/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
+++ b/BinaryObjectScanner/Packer/MicrosoftCABSFX.cs
@@ -4,7 +4,6 @@ using SabreTools.Serialization.Wrappers;
namespace BinaryObjectScanner.Packer
{
- // TODO: Add extraction
// https://raw.githubusercontent.com/wolfram77web/app-peid/master/userdb.txt
public class MicrosoftCABSFX : IExecutableCheck
{
diff --git a/BinaryObjectScanner/Packer/SevenZipSFX.cs b/BinaryObjectScanner/Packer/SevenZipSFX.cs
index 776f798c..1bcae117 100644
--- a/BinaryObjectScanner/Packer/SevenZipSFX.cs
+++ b/BinaryObjectScanner/Packer/SevenZipSFX.cs
@@ -9,25 +9,29 @@ namespace BinaryObjectScanner.Packer
public string? CheckExecutable(string file, PortableExecutable exe, bool includeDebug)
{
// Get the assembly description, if possible
- if (exe.AssemblyDescription.OptionalStartsWith("7-Zip Self-extracting Archive"))
+ string? name = exe.AssemblyDescription;
+ if (name.OptionalStartsWith("7-Zip Self-extracting Archive"))
return $"7-Zip SFX {exe.AssemblyDescription!.Substring("7-Zip Self-extracting Archive ".Length)}";
// Get the file description, if it exists
- if (exe.FileDescription.OptionalEquals("7z SFX"))
+ name = exe.FileDescription;
+ if (name.OptionalEquals("7z SFX"))
return "7-Zip SFX";
- if (exe.FileDescription.OptionalEquals("7z Self-Extract Setup"))
+ if (name.OptionalEquals("7z Self-Extract Setup"))
return "7-Zip SFX";
// Get the original filename, if it exists
- if (exe.OriginalFilename.OptionalEquals("7z.sfx.exe"))
+ name = exe.OriginalFilename;
+ if (name.OptionalEquals("7z.sfx.exe"))
return "7-Zip SFX";
- else if (exe.OriginalFilename.OptionalEquals("7zS.sfx"))
+ else if (name.OptionalEquals("7zS.sfx"))
return "7-Zip SFX";
// Get the internal name, if it exists
- if (exe.InternalName.OptionalEquals("7z.sfx"))
+ name = exe.InternalName;
+ if (name.OptionalEquals("7z.sfx"))
return "7-Zip SFX";
- else if (exe.InternalName.OptionalEquals("7zS.sfx"))
+ else if (name.OptionalEquals("7zS.sfx"))
return "7-Zip SFX";
// If any dialog boxes match
diff --git a/BinaryObjectScanner/Packer/Shrinker.cs b/BinaryObjectScanner/Packer/Shrinker.cs
index e81c84eb..3a7d4bb6 100644
--- a/BinaryObjectScanner/Packer/Shrinker.cs
+++ b/BinaryObjectScanner/Packer/Shrinker.cs
@@ -10,9 +10,12 @@ namespace BinaryObjectScanner.Packer
///
public string? CheckExecutable(string file, PortableExecutable exe, bool includeDebug)
{
- // Get the .shrink0 and .shrink2 sections, if they exist -- TODO: Confirm if both are needed or either/or is fine
- if (exe.ContainsSection(".shrink0", true) || exe.ContainsSection(".shrink2", true))
- return "Shrinker";
+ bool shrink0 = exe.ContainsSection(".shrink0", exact: true);
+ bool shrink2 = exe.ContainsSection(".shrink2", exact: true);
+
+ // TODO: Confirm if both need to be present
+ if (shrink0 || shrink2)
+ return "Shrinker"; // TODO: Figure out how to get version
return null;
}
diff --git a/BinaryObjectScanner/Packer/SpoonInstaller.cs b/BinaryObjectScanner/Packer/SpoonInstaller.cs
index d1896f97..16e11bb4 100644
--- a/BinaryObjectScanner/Packer/SpoonInstaller.cs
+++ b/BinaryObjectScanner/Packer/SpoonInstaller.cs
@@ -19,7 +19,7 @@ namespace BinaryObjectScanner.Packer
//
// This was found in a "Create Install 2003"-made installer
name = exe.AssemblyName;
- if (name == "Illustrate.Spoon.Installer")
+ if (name.OptionalEquals("Illustrate.Spoon.Installer"))
return "Spoon Installer";
return null;